line source
+ − /*
+ − +--------------------------------------------------------------------+
+ − | 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 */
+ − #else
+ − typedef 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 */
+ − #endif
+ −
+ −
+ −
+ −
+ − typedef 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 padding
+ − typedef 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 padding
+ − typedef 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 padding
+ − typedef 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