/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) $Workfile:: mfw_cm.h $|| $Author:: Vo $Revision:: 1 $|| CREATED: 3.11.98 $Modtime:: 21.03.00 19:26 $|| STATE : code |+--------------------------------------------------------------------+ MODULE : MFW_CM PURPOSE : This modul contains the definition for call management. $History:: mfw_cm.h $ Feb 03, 200 REF: CRR 25960 x0012850 Description: Call Hold: While one call in Active and other in Held by swapping either of phone is not audible Solution: swapping action results in one of the calls getting muted. We attach user connection again. Oct 04, 2004 REF: CRR 25519 Deepa M.D Bug:Re-align structure members in MFW Fix:Structure elements have been realigned to avoid the structure padding// Jul 2, 2004 REF: CRR 21421 xvilliva// Bug: ALS:Action on the other line when change is locked. // Fix: A new error code is defined for handling error returned by ACI. * * ***************** Version 42 ***************** * User: Vo Date: 24.03.00 Time: 10:23 * Updated in $/GSM/Condat/MS/SRC/MFW * chang define value * * ***************** Version 41 ***************** * User: Vo Date: 15.03.00 Time: 18:17 * Updated in $/GSM/Condat/MS/SRC/MFW * New: Remote call control and Abort CM command * * ***************** Version 40 ***************** * User: Vo Date: 22.02.00 Time: 14:03 * Updated in $/GSM/Condat/MS/SRC/MFW * * ***************** Version 39 ***************** * User: Vo Date: 17.02.00 Time: 19:06 * Updated in $/GSM/Condat/MS/SRC/MFW * * ***************** Version 38 ***************** * User: Vo Date: 20.01.00 Time: 13:01 * Updated in $/GSM/Condat/MS/SRC/MFW * New: Manage fax/data/combinated call * New: New event CM_REDIAL_STOP to indicate that the reason of * failed connection is outside of defined category. * * ***************** Version 37 ***************** * User: Le Date: 13.12.99 Time: 8:50 * Updated in $/GSM/Condat/MS/SRC/MFW * * ***************** Version 36 ***************** * User: Vo Date: 11.11.99 Time: 14:22 * Updated in $/GSM/Condat/MS/SRC/MFW * New event and command define for DTMF tone * New prototype for requesting of autoredial mode * * ***************** Version 35 ***************** * User: Vo Date: 10.09.99 Time: 18:36 * Updated in $/GSM/DEV/MS/SRC/MFW * new prototype * * ***************** Version 34 ***************** * User: Vo Date: 30.08.99 Time: 13:53 * Updated in $/GSM/DEV/MS/SRC/MFW * new event, parameter for setting of AoC value * * ***************** Version 33 ***************** * User: Vo Date: 9.08.99 Time: 12:00 * Updated in $/GSM/DEV/MS/SRC/MFW * change definition (length of number (161 to 41)) * new return value "CM_CTRL_STR" * new cm command: "CM_SWAP_MULTIPARTY" * * ***************** Version 32 ***************** * User: Vo Date: 21.07.99 Time: 14:39 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 31 ***************** * User: Vo Date: 16.07.99 Time: 10:32 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 30 ***************** * User: Vo Date: 9.07.99 Time: 14:31 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 29 ***************** * User: Vo Date: 2.07.99 Time: 18:25 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 28 ***************** * User: Vo Date: 22.06.99 Time: 8:54 * Updated in $/GSM/DEV/MS/SRC/MFW * * * ***************** Version 1 ***************** * User: Vo Date: 20.11.98 Time: 13:40 * Created in $/GSM/DEV/MS/SRC/MFW * Call Management*/#ifndef DEF_MFW_CM_HEADER#define DEF_MFW_CM_HEADER/* #include "phb.h" RSA 20/12/01 - Removed */#include"mfw_phb.h"#define MFW_STRING_LEN 161#define MFW_NUM_LEN 41#define MFW_TAG_LEN 21#define MFW_SUBADR_LEN 21#define MAX_LEN 21#define MAX_CURRENCY 5/* * events are organised as bitmaps */#define E_CM_OK 0x0001#define E_CM_CW 0x0002#define E_CM_CONNECT 0x0004#define E_CM_CONNECT_ACK 0x0008#define E_CM_DISCONNECT 0x0010#define E_CM_COMMAND 0x0020#define E_CM_NOTIFY 0x0040#define E_CM_REDIAL 0x0080#define E_CM_COLP 0x0100#define E_CM_RING_OFF 0x0200#define E_CM_MO_RES 0x0400#define E_CM_CPI 0x0800#define E_CM_TIMER_EVERY_SECOND 0x1000#define E_CM_AOC 0x2000#define E_CM_AOC_CNF 0x4000#define E_CM_DTMF 0x8000#define E_CM_WAP_CALL_CONNECTED 0x10000#define E_CM_CTYI 0x20000 /* SPR#1352 - SH *//* Marcus: CCBS: 14/11/2002: Start */#define E_CM_CCBS 0x40000/* Marcus: CCBS: 14/11/2002: End */#define E_CM_CALL_DEFLECT_STATUS 0x80000 /*SPR 1392*/#define E_CM_DISCONNECT_ALL 0x100000#define E_CM_ALL_SERVICES 0xFFFFFF/* Possible service code for a call number */#define CM_OK 1 /* A mobile originated call attempt has been started. */#define CM_EC 2 /* A mobile originated emergency call has been started. */#define CM_SIM 3 /* The number has started a SIM control procedure. */#define CM_SS 4 /* The number has started a supplementary service. */#define CM_USSD 5 /* The number has started an unstructured SS. */#define CM_MMI 6 /* The number define a MMI specific procedure. */#define CM_ERROR 7 /* The number can not procedured. */#define CM_BLACKLIST 8 /* The number is blacklisted. */#define CM_NO_REG 9 /* The network is not registered. */#define CM_NO_SERVICE 10 /* The service type of network is NO_SERVICE. */#define CM_NO_CARRIER 11 /* No connection because of no carrier */#define CM_NO_AOC 12 /* NO advice of charge information available */#define CM_BUSY 13 /* No connection because of user busy */#define CM_NO_ANSWER 14 /* No connection because of no answering */#define CM_CTRL_STR 15 /* control string */#define CM_ACM_MAX 16 /* ACM reachs maximal value */#define CM_CFDN_ERR 17 /* check FDN number error */#define CM_CBDN_ERR 18 /* check BDN number error */#define CM_2CALLS_ALREADY_ERR 19/* 2 calls already, we can not perform a third outgoing call */#define CM_CLI 20 /* CLI command complete */#define CM_ALS_ERR 21//xvilliva 21421 - Handling err code returned by ACI./* Definition for advice of charge */#define CM_AOC_UNKNOWN 0#define CM_AOC_INFO 20 /* AoC information from the network. */#define CM_AOC_PUCT 21 /* PUCT is requested by MMI logic. */#define CM_AOC_ACMMAX 22 /* ACM max is requested by MMI logic. */#define CM_AOC_ACM 23 /* ACM is requested by MMI logic. */#define CM_AOC_CCM 24 /* CCM is requested by MMI logic. */#define CM_AOC_TIMERS 25 /* AoC timer values are requested. */#define CM_AOC_CCM_PUCT 26 /* CCM using PUCT */#define CM_AOC_ACM_PUCT 27 /* ACM using PUCT */#define CM_AOC_RAW_PUCT 28 /* RAW PUCT *//* Definition for redialing */#define CM_REDIAL_OFF 0 /* no redialing */#define CM_REDIAL_AUTO 1 /* automatic redialing */#define CM_REDIAL_MANU 2 /* manual redialing */#define CM_REDIAL_BLACKLIST 33 /* reset blacklist */#define CM_REDIAL_NO_SERVICE 34 /* mobile out the cell */#define CM_REDIAL_INCOMING 35 /* redial abort because of incoming call */#define CM_REDIAL_ABORTED 36 /* abort redial fromm MMI */#define CM_REDIAL_STARTED 37 /* start autoredial */#define CM_REDIAL_ATTEMPT 38 /* start redial call */#define CM_REDIAL_BLACKLISTED 39 /* Redialing number is blacklisted */#define CM_REDIAL_OUTGOING 40 /* redial abort because of outgoing call */#define CM_REDIAL_SUCCESS 41 /* Redialing is successful */#define CM_REDIAL_STOP 42 /* Stop redialing (outside of category) *//* definition of commands for call related supplementary service */#define CM_COMMAND_UNKNOWN 0#define CM_HOLD 1 /* initiate call hold */#define CM_RETRIEVE 2 /* initiate call retrieve */#define CM_BUILD_MULTIPARTY 3 /* build a multiparty */#define CM_HOLD_MULTIPARTY 4 /* set multiparty on hold */#define CM_RETRIEVE_MULTIPARTY 5 /* set multiparty on active */#define CM_SPLIT_MULTIPARTY 6 /* split a multiparty */#define CM_ETC 7 /* enable explicit call transfer */#define CM_CALL_DEFLECTION 8 /* redirection of incomming call */#define CM_CCBS 9 /* completion on call busy subscriber */#define CM_MODIFY 10 /* initiate in-call modification */#define CM_DTMF_ACTIVE 11 /* enable DTMF signalling */#define CM_DTMF_INACTIVE 12 /* disable DTMF signalling */#define CM_SWAP 13 /* swap of two calls */#define CM_SWAP_MULTIPARTY 14#define CM_DTMF_AUTO 15 /* DTMF signalling with defined length of tones */#define CM_DISCONNECT_ALL_RESULT_ERROR 0#define CM_DISCONNECT_ALL_RESULT_OK 1#define MIN_DURATION_1 7000 /* time of the 1th redialing */#define MIN_DURATION_2_4 70000 /* time of the 2th to 4st redialing */#define MIN_DURATION_5 200000 /* time of the 5th or over redialing */typedef enum /* definition of the result */{ CM_AOC_CONF_UNKNOWN, CM_AOC_CONF_OK, CM_AOC_CONF_SIMPIN2REQ, CM_AOC_CONF_WRONGPASSWD, CM_AOC_CONF_OPNOTALLOW, CM_AOC_CONF_ACMRESETNEEDED} T_MFW_AOC_CNF_RES;typedef enum /* type of call progress information */{ CPI_TYPE_UNKNOWN = -1, CPI_TYPE_SETUP, /* call setup */ CPI_TYPE_DISC, /* call disconnect */ CPI_TYPE_ALERT, /* call alerting */ CPI_TYPE_PROC, /* call proceeding */ CPI_TYPE_SYNC, /* TCH assigment */ CPI_TYPE_CONN, CPI_TYPE_RELEASE, /* Call released cq111676 17-02-04 */ CPI_TYPE_REJECT /* Call rejected cq11676 17-02-04 */} T_MFW_CPI_TYPE;typedef enum /* inband tone */{ CPI_IBT_UNKNOWN = -1, CPI_IBT_FALSE, CPI_IBT_TRUE} T_MFW_CPI_IBT;typedef enum /* TCH */{ CPI_TCH_UNKNOWN = -1, CPI_TCH_FALSE, CPI_TCH_TRUE} T_MFW_CPI_TCH;typedef enum /* type of call */{ NONE_TYPE, VOICE_CALL, AuxVOICE_CALL, DATA_CALL, FAX_CALL, VFD_VOICE, /* voice followed data, voice mode */ VAD_VOICE, /* voice alternating data, voice mode */ VAF_VOICE, /* voice alternating fax, voice mode */ VFD_DATA, /* voice followed data, data mode */ VAD_DATA, /* voice alternating data, data mode */ VAF_FAX /* voice alternating fax, fax mode */} T_MFW_CM_CALL_TYPE;typedef enum /* direction of call */{ MFW_CM_INV_DIR = -1, MFW_CM_MOC, MFW_CM_MTC} T_MFW_CM_CALL_DIR;/* Result of operation */typedef enum{ NotPresent, Present} T_MFW_CM_RESULT;/* Call status */typedef enum{ NOT_PRESENT, CALL_HELD, CALL_ACTIVE, CALL_DEACTIVE, CALL_WAIT, CALL_DIAL, CALL_ALERT} T_MFW_CM_CALL_STAT;/* Bearer parameter */typedef enum /* data rate */{ SPEED_300, SPEED_1200, SPEED_2400, SPEED_4800, SPEED_9600, SPEED_14400} T_MFW_CM_DATA_SPEED;typedef enum /* bearer service */{ Asynch, Synch} T_MFW_CM_BS;typedef enum /* connection element */{ Transparent, NonTransparent} T_MFW_CM_CE;typedef enum /* connection element */{ Linear, Circular} T_MFW_CM_RI;typedef enum /* SS notification result code */{ MFW_CM_NOTIFY_UNKNOWN, MFW_CM_HOLD, /* call has been put on hold */ MFW_CM_RETRIEVED /* call has been retrieved */} T_MFW_CM_NOTIFY_CODES;typedef enum /* connection element */{ MFW_MPTY_NotPresent = -1, MFW_NO_MTPY_MEMBER, MFW_MTPY_MEMBER} T_MFW_MTPY_MEMBER;typedef UBYTE T_CM_CLI;typedef struct{ SHORT call_number; UBYTE cause;} T_MFW_CM_DISCONNECT;typedef struct{ UBYTE result; UBYTE cause;} T_MFW_CM_DISCONNECT_ALL;typedef struct{ UBYTE rate; /* used baud rate */ UBYTE bearer_serv; /* used bearer service */ UBYTE conn_elem; /* used connect_element */ UBYTE stop_bits; /* used stop bits */ UBYTE data_bits; /* used data bits */ UBYTE parity; /* used parity */ UBYTE flow_control; /* used flow control */} T_MFW_CM_BC_PARA;#ifdef NO_ASCIIZ typedef struct { SHORT call_id; /* call identify */ UBYTE number[MFW_NUM_LEN]; /* call number */ UBYTE ton; /* type of number */ UBYTE type; T_MFW_PHB_TEXT name; /* alpha identfier */ UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */} T_MFW_CM_MO_INFO; /* type definition for E_CM_COLP event */#elsetypedef struct { SHORT call_id; /* call identify */ UBYTE number[MFW_NUM_LEN]; /* call number */ UBYTE ton; /* type of number */ UBYTE type; UBYTE name[MFW_TAG_LEN]; /* alpha identfier */ UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */} T_MFW_CM_MO_INFO; /* type definition for E_CM_COLP event */#endiftypedef struct { UBYTE result; /* result of operation */ SHORT call_number; /* call index */ UBYTE number[MFW_NUM_LEN]; /* call number */ UBYTE ton; /* type of number */ T_MFW_CM_CALL_TYPE type; /* type of this call */#ifdef NO_ASCIIZ T_MFW_PHB_TEXT name; /* alpha identfier */#else UBYTE name[MFW_TAG_LEN]; /* alpha identfier */#endif UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */ UBYTE ri; /* repeat indicator */ T_MFW_CM_BC_PARA bc1; /* bearer parameter 1 */ T_MFW_CM_BC_PARA bc2; /* bearer parameter 2 */} T_MFW_CM_CW_INFO; /* type definition for E_CM_CW (indicator a new incomming call) event *//* Marcus: CCBS: 14/11/2002: Start *//* Type definitions for E_CM_CCBS events */typedef enum{ CM_CCBS_NONE, /* Used to indicate no CCBS operation in progress */ CM_CCBS_DELETE_ALL, /* Response to cm_ccbs_delete_all */ CM_CCBS_DELETE, /* Response to cm_ccbs_delete */ CM_CCBS_LIST, /* Response to cm_ccbs_list */ CM_CCBS_ACCEPT_REGISTRATION, /* Response to cm_ccbs_accept_registration */ CM_CCBS_REJECT_REGISTRATION, /* Response to cm_ccbs_reject_registration */ CM_CCBS_ACCEPT_RECALL, /* Response to cm_ccbs_accept_recall */ CM_CCBS_REJECT_RECALL, /* Response to cm_ccbs_reject_recall */ CM_CCBS_ASYNC /* An asynchronous event not related to an operation */} T_MFW_CM_CCBS_OP; /* Type definition for the operation associated E_CM_CCBS event */typedef enum{ CM_CCBS_INFO, /* rAT_PercentCCBS information */ CM_CCBS_OK, /* OK completion of a CCBS operation */ CM_CCBS_ERROR /* ERROR completion of a CCBS operation */} T_MFW_CM_CCBS_TYPE; /* Type definition for the type of E_CM_CCBS event */typedef struct{ T_MFW_CM_CCBS_OP operation; /* CCBS operation in progress */ T_MFW_CM_CCBS_TYPE type; /* type of E_CM_CCBS event */ T_ACI_CCBS_IND indct; /* Type of CM_CCBS_INFO indication */ T_ACI_CCBS_STAT status; /* Status of CM_CCBS_INFO indication */ SHORT idx; /* Index to specific CCBS (1..5), else 0 */ UBYTE number[MFW_NUM_LEN]; /* call number */ UBYTE ton; /* type of number */ T_MFW_CM_CALL_TYPE call_type; /* type of this call */ UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */ T_ACI_ALRT_PTRN alrtPtn; /* Alerting pattern */} T_MFW_CM_CCBS_INFO; /* type definition for E_CM_CCBS event *//* Marcus: CCBS: 14/11/2002: End */typedef struct{ SHORT call_number; /* number of call */ UBYTE command; /* requested command */ UBYTE result; /* result of operation */} T_MFW_CM_COMMAND; /* type definition for E_CM_COMMAND (ss command) event *//***************************Go-lite Optimization changes Start***********************/// PATCH TB Add 10 to acm_puct & acm_puct avoid buffer override//Oct 04, 2004 REF: CRR 25519 Deepa M.D//Structure elements (T_MFW_CM_AOC_INFO)are realigned to avoid the structure paddingtypedef struct{ LONG actual_call_timer; /* time of actual call */ LONG ccm; /* current call meter */ LONG acm; /* accumulated call meter */ LONG acm_max; /* accumulated call meter maximum PUCT */ ULONG eppu; /* elementary price per unit */ ULONG exp; /* decimal logarithm */ UBYTE ccm_puct[MAX_LEN+10]; /* current call meter using PUCT */ UBYTE acm_puct[MAX_LEN+10]; /* accumulated call meter using PUCT */ UBYTE ppu[MAX_LEN]; /* price per unit */ UBYTE cur[MAX_CURRENCY]; /* currency table */ ULONG sexp; /* sign of decimal logarithm */ UBYTE requested_type; /* requested type */} T_MFW_CM_AOC_INFO; /* type definition for E_CM_AOC event. *//***************************Go-lite Optimization changes end***********************/typedef struct{ UBYTE requested_type; T_MFW_AOC_CNF_RES result; } T_MFW_CM_AOC_CNF; /* type definition for E_CM_AOC_CONF event *//***************************Go-lite Optimization changes Start***********************///Oct 04, 2004 REF: CRR 25519 Deepa M.D//Structure elements (T_MFW_CM_REDIAL)are realigned to avoid the structure paddingtypedef struct{#ifdef NO_ASCIIZ T_MFW_PHB_TEXT name; /* alpha identfier */#else UBYTE name[MFW_TAG_LEN]; /* alpha identfier */#endif UBYTE number[MFW_NUM_LEN]; /* called number */ UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */ SHORT call_id; /* call identify */ UBYTE ton; /* type of number */ UBYTE type; UBYTE left_attempts; /* redialing left attempts */ UBYTE redial_mode; /* redial mode */} T_MFW_CM_REDIAL; /* type definition for E_CM_REDIAL event. *//***************************Go-lite Optimization changes end***********************//* Call status information */typedef struct{ SHORT call_number; UBYTE stat; /* T_MFW_CM_CALL_STAT */ UBYTE number[MFW_NUM_LEN]; /* called number */ UBYTE ton; /* type of number */ T_MFW_CM_CALL_TYPE type; /* type of call */#ifdef NO_ASCIIZ T_MFW_PHB_TEXT name; /* alpha identfier */#else UBYTE name[MFW_TAG_LEN]; /* alpha identfier */#endif T_MFW_MTPY_MEMBER mtpy; T_MFW_CM_CALL_DIR call_direction;} T_MFW_CM_STATUS;/* Notify message */typedef struct{ SHORT call_number; T_MFW_CM_NOTIFY_CODES notification;} T_MFW_CM_NOTIFY;/***************************Go-lite Optimization changes Start***********************//* call progress information *///Oct 04, 2004 REF: CRR 25519 Deepa M.D//Structure elements (T_MFW_CM_CPI)are realigned to avoid the structure paddingtypedef struct{ T_MFW_CPI_TYPE type; T_MFW_CPI_IBT inband; T_MFW_CPI_TCH tch; SHORT call_number; USHORT cause; /* cq11676 Add the CPI cause element 17-02-04 MZ */} T_MFW_CM_CPI;/***************************Go-lite Optimization changes end***********************//* SPR#1352 - SH - TTY information *//* This structure passes TTY status to the MMI */typedef struct{ UBYTE neg; /* Status of TTY request - possible values below*/} T_MFW_CM_CTYI;/* Possible values from CTYI callback - indicates TTY status*/enum{ CTYI_NONE, CTYI_REQUEST, CTYI_REJECT, CTYI_GRANT};/* end SH *//* * CM Parameter */typedef union{ T_MFW_CM_DISCONNECT disconnect; T_MFW_CM_DISCONNECT_ALL disconnect_all; T_MFW_CM_CW_INFO cw_info; T_MFW_CM_COMMAND command; T_MFW_CM_AOC_INFO aoc_info; T_MFW_CM_REDIAL rdl; T_MFW_CM_NOTIFY notify; T_MFW_CM_CPI cm_cpi; SHORT call_id; T_MFW_CM_AOC_CNF aoc_cnf; UBYTE dtmf_tone;// PATCH - add new parameter T_MFW_CM_MO_INFO mo_data; T_MFW_CM_CCBS_INFO ccbs; // Marcus: CCBS: 14/11/2002// END PATCH/*MC, SPR 1392, added call deflection status param*/ BOOL call_deflect_status; /* SPR#1352 - SH - Add parameter for TTY */ T_MFW_CM_CTYI ctyi; /* end SH*/} T_MFW_CM_PARA;EXTERN void cm_init (void);EXTERN T_MFW_HND cm_create (T_MFW_HND hWin, T_MFW_EVENT event, T_MFW_CB cbfunc);EXTERN T_MFW_RES cm_delete (T_MFW_HND h);EXTERN T_MFW cm_check_emergency (UBYTE *number);EXTERN T_MFW cm_mo_call (UBYTE *number, T_MFW_CM_CALL_TYPE type);EXTERN void cm_mt_reject (void);EXTERN void cm_mt_accept (void);EXTERN void cm_end_all (void);EXTERN T_MFW cm_disconnect (SHORT call_number);EXTERN T_MFW cm_command (SHORT call_number, UBYTE command, UBYTE crss_string);EXTERN T_MFW cm_get_aoc_value (UBYTE request_type, T_MFW_CM_AOC_INFO *aoc_info);EXTERN T_MFW cm_set_aoc_value (UBYTE request_type, T_MFW_CM_AOC_INFO *aoc_info, UBYTE *pwd);EXTERN void cm_set_bc_para (T_MFW_CM_BC_PARA * bc, UBYTE ti);EXTERN void cm_set_redial (UBYTE redial_mode);EXTERN void cm_redial (void);EXTERN void cm_autoredial_start (void);EXTERN void cm_redial_abort (void);EXTERN UBYTE cm_redial_get_count (void);EXTERN int cm_status (SHORT call_number, T_MFW_CM_STATUS *status, UBYTE num);EXTERN void cm_exit (void);EXTERN T_CM_CLI cm_mo_prefix (T_CM_CLI prefix);EXTERN T_MFW cm_get_redial_mode (void);EXTERN T_MFW cm_command_abort (UBYTE command);/*MC, SPR 1392*/T_MFW cm_deflect_incoming_call(char* number);void cm_ok_CTFR(void);void cm_error_CTFR(void);/* Marcus: CCBS: 13/11/2002: Start */EXTERN T_MFW cm_ccbs_delete_all(void);EXTERN T_MFW cm_ccbs_delete(SHORT idx);EXTERN T_MFW cm_ccbs_list(void);EXTERN T_MFW cm_ccbs_accept_registration(void);EXTERN T_MFW cm_ccbs_reject_registration(void);EXTERN T_MFW cm_ccbs_accept_recall(UBYTE *number, T_MFW_CM_CALL_TYPE type);EXTERN T_MFW cm_ccbs_reject_recall(void);EXTERN void cm_ccbs_ok(void);EXTERN void cm_ccbs_error(void);/* Marcus: CCBS: 13/11/2002: End *//* SPR#1985 - SH - TTY */void cm_tty_enable(UBYTE enable);void cm_tty_query(void);// Feb 03, 200 REF: CRR 25960 x0012850// Description: Call Hold: While one call in Active and other in Held by swapping either of phone is not audible// Prototype for function cm_setSpeechMode()EXTERN void cm_setSpeechMode(void);EXTERN void cm_force_disconnect(void);#endif