FreeCalypso > hg > fc-magnetite
diff src/aci2/aci/cphs.h @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/aci2/aci/cphs.h Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,260 @@ +/* ++--------------------------------------------------------------------+ +| PROJECT: $Workfile:: cphs.h $| +| $Author:: $Revision:: $| +| CREATED: $Modtime:: $| +| STATE : code | ++--------------------------------------------------------------------+ + + MODULE : CPHS + + PURPOSE : header file for CPHS functionalities. +*/ + +#ifndef CPHS_H +#define CPHS_H + +/* CPHS functions return type */ +typedef enum +{ + CPHS_FAIL = -1, + CPHS_OK, + CPHS_EXEC, + CPHS_BUSY, + CPHS_NOT_INIT +} T_CPHS_RET; + +/* Definition of parameter LINES */ +#define T_CPHS_LINES USHORT + +#define CPHS_LINE_NULL (0x0000) +#define CPHS_LINE1 (0x0001) +#define CPHS_LINE_DATA (0x0002) +#define CPHS_LINE_FAX (0x0004) +#define CPHS_LINE2 (0x0100) + +/* Definition of max length for operator name */ +#define CPHS_MAX_OPER_LONG (30) +#define CPHS_MAX_OPER_SHORT (10) + +/* Definition for customer service profile */ +#define CPHS_MAX_CSP (18) /* Phase 2: field should be always 18 bytes long */ +#define CPHS_MAX_CSP2 (22) /* Phase 2: field should be always 22 bytes long (RFU = 2 bytes)*/ + +//#define CPHS_SERVICE_CSP (1) +//#define CPHS_SERVICE_SST (2) +//#define CPHS_SERVICE_MB (3) +//#define CPHS_SERVICE_OPNS (4) +//#define CPHS_SERVICE_NUMS (5) +#define CPHS_SERVICE_CSP (5) +#define CPHS_SERVICE_SST (6) +#define CPHS_SERVICE_MB (7) +#define CPHS_SERVICE_OPNS (8) +#define CPHS_SERVICE_NUMS (1) +#define CPHS_SERVICE_ALLOCATED (1) +#define CPHS_SERVICE_ACTIVATED (2) +#define CPHS_CHECK_SST(sst,service,attribute) \ + ((UBYTE) ((sst) >> ((service-1)*2)) & (attribute)) + +/* Definition for mailbox numbers */ +#define CPHS_MIN_MB_ENTRIES (1) +#define CPHS_MAX_MB_ENTRIES (4) +#define CPHS_MAX_MB_NUMBER_LEN (40) +#define CPHS_MAX_MB_ALPHA_LEN (22) +#define CPHS_MIN_MB_LEN (14) + +#define CPHS_MAX_MB_NUMBER_BYTES (10) + +#define CPHS_MAX_INF_ALPHA_TAG (16) +#define CPHS_MAX_INF_NUMBER (12) + +/* Definition of flag status for voice message waiting */ +#define CPHS_ERASE_WAITING_FLAG (0) +#define CPHS_SET_WAITING_FLAG (1) +#define CPHS_QUERY_WAITING_FLAG (2) + +/* Definition of flag status for CFU */ +#define CPHS_ERASE_CFU_FLAG (0) +#define CPHS_SET_CFU_FLAG (1) +#define CPHS_QUERY_CFU_FLAG (2) + +#define CPHS_FLAG_DEACTIVATED (0) +#define CPHS_FLAG_ACTIVATED (1) +#define CPHS_FLAG_NOT_PRESENT (2) +#define CPHS_FLAG_ERROR (3) + +/* CPROAM related parameters */ +#define CPHS_ROAMING_ON (1) +#define CPHS_ROAMING_OFF (0) + +/* Information numbers feature related parameter */ +typedef enum +{ + CPNUMS_MODE_EXPLORE = 1, // should apply to a folder to be explored + CPNUMS_MODE_QUERY = 2 // queries information related to an entry +} T_CPHS_CPNUMS_MODE; + +/* structure used to hold information numbers entry */ +typedef struct +{ + UBYTE element_index; // index of element described in this structure + UBYTE index_level; + CHAR alpha_tag[CPHS_MAX_INF_ALPHA_TAG]; + CHAR number[CPHS_MAX_INF_NUMBER]; + UBYTE type_of_address; + BOOL premium_flag; // should it be charged with premium price? + BOOL network_flag; // is it network specific ? +} T_CPHS_INF_NUM; + +/* structure used to hold cphs information */ +typedef struct +{ + UBYTE phase; + USHORT sst; /* same format as on the SIM: field 6F16 */ +} T_CPHS_CINF; + +/* structure used to hold mailbox number entries */ +typedef struct +{ + T_CPHS_LINES line; + CHAR number[CPHS_MAX_MB_NUMBER_LEN]; + UBYTE toa; + CHAR alpha_id[CPHS_MAX_MB_ALPHA_LEN]; +} T_CPHS_MB; + +/* Callback types */ +typedef enum +{ + CPHS_INIT_RES = 1, + CPHS_ROAM_IND, + CPHS_VOICE_MAIL_IND, + CPHS_VOICE_MAIL_RES, + CPHS_CFU_RES +} T_CPHS_CB; + +/* Callback parameters */ +typedef struct +{ + T_CPHS_CB cb_type; + T_CPHS_RET operation_result; + UBYTE set_flag; + T_CPHS_LINES line; +} T_CPHS_PARAMS; + +/* data buffer for phonebook alpha */ +typedef struct +{ + UBYTE data[CPHS_MAX_MB_ALPHA_LEN]; + UBYTE len; +} T_CPHS_PB_TEXT; + +/* Callback general prototype */ +typedef void T_CPHS_USER_CB( T_CPHS_PARAMS *params ); + + +/* user interface functions */ +EXTERN T_CPHS_RET cphs_start (T_CPHS_USER_CB *cphs_user_cb); +EXTERN T_CPHS_RET cphs_refresh_data (void); +EXTERN T_CPHS_RET cphs_stop (void); +EXTERN T_CPHS_RET cphs_check_status(void); +EXTERN T_CPHS_RET cphs_explore_info_nbs (UBYTE element_idx, + UBYTE *inf_num_indexes, + UBYTE *max_elmts); +EXTERN T_CPHS_RET cphs_read_info_nb (UBYTE element_idx, + T_CPHS_INF_NUM *inf_num); +EXTERN T_CPHS_RET cphs_info_num_get_max(UBYTE *max_index); +EXTERN T_CPHS_RET cphs_get_line(UBYTE srcId, + UBYTE call_id, + T_CPHS_LINES *line, + CHAR *line_desc, + UBYTE *max_line_desc); +EXTERN T_CPHS_RET cphs_get_fwd_flag(UBYTE *cfu_set, + T_CPHS_LINES line); +EXTERN T_CPHS_RET cphs_set_waiting_flag(UBYTE flag_set, T_CPHS_LINES lines); +EXTERN T_CPHS_RET cphs_get_waiting_flag(UBYTE *flag_set, T_CPHS_LINES line); +EXTERN T_CPHS_RET cphs_get_opn (CHAR *longname, UBYTE *max_longname, + CHAR *shortname, UBYTE *max_shortname); +EXTERN T_CPHS_RET cphs_get_cphs_info (UBYTE *phase, USHORT *sst); +EXTERN T_CPHS_RET cphs_get_csprof (CHAR *csp, + CHAR *csp2, + UBYTE *max_csp_length, + UBYTE *max_csp2_length); +EXTERN T_CPHS_RET cphs_read_mb_number (BYTE rec_id, T_CPHS_MB *mailbox_entry); +EXTERN SHORT cphs_state_indication (UBYTE psaStatus, SHORT cmeError); +EXTERN void cphs_write_mb_number_cb (SHORT table_id); +GLOBAL T_CPHS_RET cphs_write_mb_number (UBYTE srcId, + UBYTE rec_id, + UBYTE *tag, + UBYTE tag_len, + UBYTE bcd_len, + UBYTE *number, + UBYTE ton_npi); +EXTERN T_CPHS_RET cphs_first_free (UBYTE *first_free); +GLOBAL T_CPHS_RET cphs_get_mb_parameter ( SHORT* firstIdx, + SHORT* lastIdx, + UBYTE* nlength, + UBYTE* tlength ); + + +EXTERN BOOL cphs_line_makes_sense(T_CPHS_LINES line); +EXTERN void cphs_write_csp_cb (SHORT table_id); +EXTERN T_CPHS_RET cphs_set_csp_value(UBYTE srcId, + UBYTE *csp, + UBYTE csp_len); + +/* control interface functions */ +EXTERN void cphs_voice_mail_ind (UBYTE flag_set, USHORT line); +EXTERN void cphs_roaming_ind (UBYTE roaming_status); +EXTERN T_CPHS_RET cphs_set_cfu_flag(UBYTE cfu_set, T_CPHS_LINES lines); + + +/* ACI/CPHS adapter layer */ +EXTERN void cphs_sim_access_data(UBYTE cphs_sim_operation, + UBYTE cphs_sim_field, + UBYTE record, + UBYTE *data_buffer, + UBYTE data_buffer_size); +EXTERN void cphs_bcd2number(CHAR *number, + UBYTE *bcd, + UBYTE bcd_size); +EXTERN T_CPHS_RET cphs_get_als_active_line(UBYTE srcId, T_CPHS_LINES *line); + +EXTERN T_CPHS_LINES als_get_call_info(SHORT call_id); + + + + +EXTERN void cphs_abort_current_action(void); +EXTERN void cphs_sim_data_accessed(UBYTE max_records, UBYTE data_len); +EXTERN void cphs_sim_data_failure(void); + + +/* structure containing internal parameters of CPHS */ +/* describes SIM operation in progress */ +#define CPHS_SIM_NO_ACTION (0) +#define CPHS_SIM_READ_TRANSP_EF (1) +#define CPHS_SIM_WRITE_TRANSP_EF (2) +#define CPHS_SIM_READ_RECORD (3) +#define CPHS_SIM_WRITE_RECORD (4) + +/* describes SIM updating operation status */ +#define CPHS_SIM_NOT_UPDATING (0) +#define CPHS_SIM_CFU (1) +#define CPHS_SIM_INFO_NUMS (2) +#define CPHS_SIM_INFO_NUMS_EA01 (3) +#define CPHS_SIM_CSP (4) +#define CPHS_SIM_VWI (5) /* when updating SIM user initiated */ +#define CPHS_SIM_OPNLONG (6) +#define CPHS_SIM_OPNSHORT (7) +#define CPHS_SIM_ALSNAMES (8) +#define CPHS_SIM_CINF (9) +#define CPHS_SIM_MB (10) +#define CPHS_SIM_STOP_INIT (11) +/* Add support for Orange SIM's */ +#define CPHS_SIM_ORANGE_CSP (12) + +/* decribes SIM write failures */ +#define CPHS_SIM_WRITE_FAIL (0) +#define CPHS_SIM_WRITE_OK (1) + +#endif /* CPHS_H */