VoIPProt.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:34k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *  VoIPProt.h
  40.  *
  41.  * Project:
  42.  * -------- 
  43.  *  MAUI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  This file defines imported prototypes.
  48.  *
  49.  * Author:
  50.  * -------
  51.  * -------
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * removed!
  58.  *
  59.  * removed!
  60.  * removed!
  61.  * removed!
  62.  *
  63.  * removed!
  64.  * removed!
  65.  * removed!
  66.  *
  67.  * removed!
  68.  * removed!
  69.  * removed!
  70.  *
  71.  * removed!
  72.  * removed!
  73.  * removed!
  74.  *
  75.  * removed!
  76.  * removed!
  77.  * removed!
  78.  *
  79.  * removed!
  80.  * removed!
  81.  * removed!
  82.  *
  83.  * removed!
  84.  * removed!
  85.  * removed!
  86.  *
  87.  * removed!
  88.  * removed!
  89.  * removed!
  90.  *
  91.  * removed!
  92.  * removed!
  93.  * removed!
  94.  *
  95.  * removed!
  96.  * removed!
  97.  * removed!
  98.  *
  99.  * removed!
  100.  * removed!
  101.  * removed!
  102.  *
  103.  * removed!
  104.  * removed!
  105.  * removed!
  106.  *
  107.  * removed!
  108.  * removed!
  109.  * removed!
  110.  *
  111.  * removed!
  112.  * removed!
  113.  * removed!
  114.  *
  115.  * removed!
  116.  * removed!
  117.  * removed!
  118.  *
  119.  * removed!
  120.  * removed!
  121.  * removed!
  122.  *
  123.  * removed!
  124.  * removed!
  125.  * removed!
  126.  *
  127.  * removed!
  128.  * removed!
  129.  * removed!
  130.  *
  131.  * removed!
  132.  * removed!
  133.  * removed!
  134.  *
  135.  * removed!
  136.  * removed!
  137.  * removed!
  138.  *
  139.  * removed!
  140.  * removed!
  141.  * removed!
  142.  *
  143.  * removed!
  144.  * removed!
  145.  * removed!
  146.  *
  147.  * removed!
  148.  * removed!
  149.  * removed!
  150.  *
  151.  * removed!
  152.  * removed!
  153.  * removed!
  154.  *
  155.  * removed!
  156.  * removed!
  157.  * removed!
  158.  *
  159.  * removed!
  160.  * removed!
  161.  * removed!
  162.  *
  163.  * removed!
  164.  * removed!
  165.  * removed!
  166.  *
  167.  * removed!
  168.  * removed!
  169.  * removed!
  170.  *
  171.  *------------------------------------------------------------------------------
  172.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  173.  *============================================================================
  174.  ****************************************************************************/
  175. #ifndef VOIP_PROT_H
  176. #define VOIP_PROT_H
  177. #include "mmi2voip_enums.h"
  178. #include "mmi2voip_struct.h"
  179. #include "nvram_common_defs.h"
  180. #include "common_nvram_editor_data_item.h"
  181. #include "DataAccountGProt.h"   /* for MAX_DATA_ACCOUNT_NAME_LEN */
  182. #define MMI_VOIP_MAX_PROFILE_NUM            10
  183. // #define MMI_VOIP_MAX_PROFILE_NAME_LEN    33  /* 32 unicode + 1 null terminator */
  184. #define MMI_VOIP_MAX_PORT_LEN               6   /* 5 digits + 1 null terminator */
  185. // #define MMI_VOIP_MAX_IP_SEG              4
  186. #define MMI_VOIP_MAX_CODEC_NUM              8
  187. #define MMI_VOIP_MAX_CODEC_NAME_LEN         9   /* 8 ascii + 1 null terminator */
  188. #define MMI_VOIP_MAX_ACTIVE_CALL            1
  189. #define MMI_VOIP_MAX_HELD_CALL              3
  190. #define MMI_VOIP_MAX_NUM_CALL               (MMI_VOIP_MAX_ACTIVE_CALL + MMI_VOIP_MAX_HELD_CALL)
  191. #define MMI_VOIP_MAX_NUM_DIGITS             12  /* available DTMF keys */
  192. #define MMI_VOIP_DTMF_LEN                   41
  193. #define MMI_VOIP_MAX_STRING_LEN             129 /* 128 unicode + 1 null terminator */
  194. #define MMI_VOIP_GENERAL_TIMEOUT            2000
  195. #ifdef __MMI_VOIP_OTAP_DMP__
  196. /* under construction !*/
  197. /* under construction !*/
  198. /* under construction !*/
  199. /* under construction !*/
  200. /* under construction !*/
  201. /* under construction !*/
  202. /* under construction !*/
  203. /* under construction !*/
  204. /* under construction !*/
  205. /* under construction !*/
  206. /* under construction !*/
  207. /* under construction !*/
  208. /* under construction !*/
  209. /* under construction !*/
  210. /* under construction !*/
  211. /* under construction !*/
  212. /* under construction !*/
  213. /* under construction !*/
  214. /* under construction !*/
  215. /* under construction !*/
  216. /* under construction !*/
  217. /* under construction !*/
  218. /* under construction !*/
  219. /* under construction !*/
  220. /* under construction !*/
  221. /* under construction !*/
  222. /* under construction !*/
  223. /* under construction !*/
  224. /* under construction !*/
  225. /* under construction !*/
  226. /* under construction !*/
  227. /* under construction !*/
  228. /* under construction !*/
  229. /* under construction !*/
  230. /* under construction !*/
  231. /* under construction !*/
  232. /* under construction !*/
  233. /* under construction !*/
  234. /* under construction !*/
  235. /* under construction !*/
  236. /* under construction !*/
  237. /* under construction !*/
  238. /* under construction !*/
  239. /* under construction !*/
  240. /* under construction !*/
  241. /* under construction !*/
  242. /* under construction !*/
  243. /* under construction !*/
  244. /* under construction !*/
  245. /* under construction !*/
  246. /* under construction !*/
  247. /* under construction !*/
  248. /* under construction !*/
  249. /* under construction !*/
  250. /* under construction !*/
  251. /* under construction !*/
  252. /* under construction !*/
  253. /* under construction !*/
  254. /* under construction !*/
  255. /* under construction !*/
  256. /* under construction !*/
  257. /* under construction !*/
  258. /* under construction !*/
  259. /* under construction !*/
  260. /* under construction !*/
  261. /* under construction !*/
  262. #endif /* __MMI_VOIP_OTAP_DMP__ */
  263. typedef enum
  264. {
  265.     MMI_VOIP_PROF_COMMON_PROFNAME_CAP,
  266.     MMI_VOIP_PROF_COMMON_PROFNAME,
  267.     MMI_VOIP_PROF_COMMON_DATAACCT_CAP,
  268.     MMI_VOIP_PROF_COMMON_DATAACCT,
  269.     MMI_VOIP_PROF_COMMON_AUTOLOGIN_CAP,
  270.     MMI_VOIP_PROF_COMMON_AUTOLOGIN,
  271.     MMI_VOIP_PROF_COMMON_VMSERVER_CAP,
  272.     MMI_VOIP_PROF_COMMON_VMSERVER,
  273.     MMI_VOIP_PROF_COMMON_INLINE_TOTAL
  274. } mmi_voip_prof_common_inline_enum;
  275. typedef enum
  276. {
  277.     MMI_VOIP_PROF_ACCT_SIPSERVER_CAP,
  278.     MMI_VOIP_PROF_ACCT_SIPSERVER,
  279.     MMI_VOIP_PROF_ACCT_SIPPORT_CAP,
  280.     MMI_VOIP_PROF_ACCT_SIPPORT,
  281.     MMI_VOIP_PROF_ACCT_DISPNAME_CAP,
  282.     MMI_VOIP_PROF_ACCT_DISPNAME,
  283.     MMI_VOIP_PROF_ACCT_USERNAME_CAP,
  284.     MMI_VOIP_PROF_ACCT_USERNAME,
  285.     MMI_VOIP_PROF_ACCT_PASSWORD_CAP,
  286.     MMI_VOIP_PROF_ACCT_PASSWORD,
  287.     MMI_VOIP_PROF_ACCT_AUTHNAME_CAP,
  288.     MMI_VOIP_PROF_ACCT_AUTHNAME,
  289.     MMI_VOIP_PROF_ACCT_INLINE_TOTAL
  290. } mmi_voip_prof_acct_inline_enum;
  291. typedef enum
  292. {
  293.     MMI_VOIP_PROF_OUTBOUND_STATUS_CAP,
  294.     MMI_VOIP_PROF_OUTBOUND_STATUS,
  295.     MMI_VOIP_PROF_OUTBOUND_SERVER_CAP,
  296.     MMI_VOIP_PROF_OUTBOUND_SERVER,
  297.     MMI_VOIP_PROF_OUTBOUND_PORT_CAP,
  298.     MMI_VOIP_PROF_OUTBOUND_PORT,
  299.     MMI_VOIP_PROF_OUTBOUND_USERNAME_CAP,
  300.     MMI_VOIP_PROF_OUTBOUND_USERNAME,
  301.     MMI_VOIP_PROF_OUTBOUND_PASSWORD_CAP,
  302.     MMI_VOIP_PROF_OUTBOUND_PASSWORD,
  303.     MMI_VOIP_PROF_OUTBOUND_INLINE_TOTAL
  304. } mmi_voip_prof_outbound_inline_enum;
  305. typedef enum
  306. {
  307.     MMI_VOIP_PROF_REGISTER_STATUS_CAP,
  308.     MMI_VOIP_PROF_REGISTER_STATUS,
  309.     MMI_VOIP_PROF_REGISTER_SERVER_CAP,
  310.     MMI_VOIP_PROF_REGISTER_SERVER,
  311.     MMI_VOIP_PROF_REGISTER_PORT_CAP,
  312.     MMI_VOIP_PROF_REGISTER_PORT,
  313.     MMI_VOIP_PROF_REGISTER_USERNAME_CAP,
  314.     MMI_VOIP_PROF_REGISTER_USERNAME,
  315.     MMI_VOIP_PROF_REGISTER_PASSWORD_CAP,
  316.     MMI_VOIP_PROF_REGISTER_PASSWORD,
  317.     MMI_VOIP_PROF_REGISTER_INLINE_TOTAL
  318. } mmi_voip_prof_register_inline_enum;
  319. typedef enum
  320. {
  321.     MMI_VOIP_PROF_NAT_STATUS_CAP,
  322.     MMI_VOIP_PROF_NAT_STATUS,
  323.     MMI_VOIP_PROF_NAT_FIREWALL_CAP,
  324.     MMI_VOIP_PROF_NAT_FIREWALL,
  325.     MMI_VOIP_PROF_NAT_STUNSERVER_CAP,
  326.     MMI_VOIP_PROF_NAT_STUNSERVER,
  327.     MMI_VOIP_PROF_NAT_STUNPORT_CAP,
  328.     MMI_VOIP_PROF_NAT_STUNPORT,
  329.     MMI_VOIP_PROF_NAT_INTERVAL_CAP,
  330.     MMI_VOIP_PROF_NAT_INTERVAL,
  331.     MMI_VOIP_PROF_NAT_INLINE_TOTAL
  332. } mmi_voip_prof_nat_inline_enum;
  333. typedef enum
  334. {
  335.     MMI_VOIP_IDLE_STATE = 0,
  336.     MMI_VOIP_OUTGOING_STATE,
  337.     MMI_VOIP_INCOMING_STATE,
  338.     MMI_VOIP_ACTIVE_STATE,
  339.     MMI_VOIP_HOLD_STATE,
  340.     MMI_VOIP_TRANSFER_STATE,
  341.     MMI_VOIP_DISCONNECTING_STATE,
  342.     MMI_VOIP_CALL_STATE_TOTAL
  343. } mmi_voip_call_state_enum;
  344. typedef enum
  345. {
  346.     MMI_VOIP_NONE_ORIGIN = 0,
  347.     MMI_VOIP_MO_ORIGIN,
  348.     MMI_VOIP_MT_ORIGIN,
  349.     MMI_VOIP_CALL_ORIGIN_TOTAL
  350. } mmi_voip_call_origin_enum;
  351. typedef enum
  352. {
  353.     MMI_VOIP_PHB = 0x01,
  354.     MMI_VOIP_HISTORY = 0x02,
  355.     MMI_VOIP_SOS = 0x04,
  356.     MMI_VOIP_MO_ORIGIN_TOTAL
  357. } mmi_voip_mo_origin_enum;
  358. typedef struct
  359. {
  360.     S32 errorNo;
  361.     U16 errorStr;
  362. } mmi_voip_error_string_struct;
  363. #if 0 /* define in nvram_user_defs.h */
  364. /* under construction !*/
  365. /* under construction !*/
  366. /* under construction !*/
  367. /* under construction !*/
  368. /* under construction !*/
  369. /* under construction !*/
  370. /* under construction !*/
  371. /* under construction !*/
  372. /* under construction !*/
  373. /* under construction !*/
  374. /* under construction !*/
  375. /* under construction !*/
  376. /* under construction !*/
  377. /* under construction !*/
  378. /* under construction !*/
  379. /* under construction !*/
  380. /* under construction !*/
  381. /* under construction !*/
  382. /* under construction !*/
  383. /* under construction !*/
  384. /* under construction !*/
  385. /* under construction !*/
  386. /* under construction !*/
  387. /* under construction !*/
  388. /* under construction !*/
  389. /* under construction !*/
  390. /* under construction !*/
  391. /* under construction !*/
  392. /* under construction !*/
  393. /* under construction !*/
  394. /* under construction !*/
  395. /* under construction !*/
  396. /* under construction !*/
  397. /* under construction !*/
  398. /* under construction !*/
  399. /* under construction !*/
  400. /* under construction !*/
  401. /* under construction !*/
  402. /* under construction !*/
  403. /* under construction !*/
  404. /* under construction !*/
  405. /* under construction !*/
  406. /* under construction !*/
  407. /* under construction !*/
  408. #endif /* define in nvram_user_defs.h */
  409. typedef struct
  410. {
  411.     S32 dataacctIndex;
  412.     S32 selectionIndex;                                     /* auto login / outbound status / register status / nat status */
  413.     S32 intervalIndex;
  414.     U16 profileName[MMI_VOIP_MAX_PROFILE_NAME_LEN];
  415.     U16 dataacctName[MAX_DATA_ACCOUNT_NAME_LEN + 1];
  416.     U16 displayName[VOIP_DISP_NAME_LEN];
  417.     U8 serverName[VOIP_URI_LEN * ENCODING_LENGTH];           /* voice mail / sip / outbound / register / stun */
  418.     U8 portNumber[MMI_VOIP_MAX_PORT_LEN * ENCODING_LENGTH];  /* sip / outbound / register / stun */
  419.     U8 username[VOIP_USERNAME_LEN * ENCODING_LENGTH];        /* sip / outbound / register */
  420.     U8 password[VOIP_PASSWORD_LEN * ENCODING_LENGTH];        /* sip / outbound / register */
  421.     U8 authName[VOIP_USERNAME_LEN * ENCODING_LENGTH];
  422.     U8 ipAddr[MMI_VOIP_MAX_IP_SEG][MMI_VOIP_MAX_IP_SEG * ENCODING_LENGTH];
  423.     U8 *twoList[2];
  424.     U8 *threeList[3];
  425.     U8 *fiveList[5];
  426. } mmi_voip_prof_disp_struct;
  427. typedef struct
  428. {
  429.     S32 actprofIndex;
  430.     S32 currprofIndex;
  431.     U16 currScr;
  432.     mmi_voip_prof_struct saved_prof[MMI_VOIP_MAX_PROFILE_NUM];
  433.     mmi_voip_prof_disp_struct disp_prof;
  434. } mmi_voip_prof_setting_struct;
  435. typedef struct
  436. {
  437.     U8 autoAnswer;
  438.     U8 autoReject;
  439.     U8 autoRedial;
  440.     U8 hidecallerId;
  441.     U8 dtmf;
  442.     U8 comfortNoise;
  443.     U8 codecOrder[VOIP_MAX_NUM_CODEC][MMI_VOIP_MAX_CODEC_NAME_LEN];
  444. } mmi_voip_setting_struct;
  445. typedef struct
  446. {
  447.     S32 currScr;
  448.     S32 currIndex;
  449.     S32 currPriority;
  450.     S32 numCodec;
  451.     U8 dispCodec[VOIP_MAX_NUM_CODEC][MMI_VOIP_MAX_CODEC_NAME_LEN * ENCODING_LENGTH];
  452.     voip_codec_enum codecEnum[VOIP_MAX_NUM_CODEC];  /* actual enum of codec order for VoIP CC */
  453.     mmi_voip_setting_struct saved_setting;
  454. } mmi_voip_call_setting_struct;
  455. typedef struct
  456. {
  457.     U16 title_string;
  458.     U16 body_string;
  459.     U16 animation_image;
  460.     U16 lsk_string;
  461.     FuncPtr lsk_funcPtr;
  462.     U16 rsk_string;
  463.     FuncPtr rsk_funcPtr;
  464.     FuncPtr send_funcPtr;
  465.     FuncPtr end_funcPtr;
  466. } mmi_voip_proc_scr_struct;
  467. typedef struct
  468. {
  469.     U16 ringtoneId;
  470.     U8 alertType;
  471. } mmi_voip_call_alert_struct;
  472. typedef struct
  473. {
  474.     S32 dialogId;
  475.     S32 rtpHandle;
  476.     U16 appName[VOIP_DISP_NAME_LEN];
  477.     U16 dispName[VOIP_DISP_NAME_LEN];
  478.     U8 remoteUri[VOIP_URI_LEN];
  479.     BOOL isMixer;
  480.     voip_sdp_struct sdp_info;
  481.     mmi_voip_call_origin_enum callOrigin;
  482.     MYTIME startTime;
  483.     MYTIME endTime;
  484. } mmi_voip_dialog_struct;
  485. typedef struct
  486. {
  487.     S32 callId;
  488.     S32 numDialog;
  489.     mmi_voip_call_state_enum currState;
  490.     mmi_voip_dialog_struct dialog_info[VOIP_MAX_NUM_DIALOG];
  491. } mmi_voip_call_struct;
  492. typedef struct
  493. {
  494.     S32 callId;
  495.     U16 appName[VOIP_DISP_NAME_LEN];
  496.     U16 dispName[VOIP_DISP_NAME_LEN];
  497.     U8 remoteUri[VOIP_URI_LEN];
  498.     voip_codec_enum codecList[VOIP_MAX_NUM_CODEC];  /* supported codec list */
  499. } mmi_voip_held_call_struct;
  500. typedef struct
  501. {
  502.     U32 maxnumCall;                     /* max number call that voip cc can allow */
  503.     S32 numHeld;
  504.     S32 numTotal;
  505.     S32 processCId;                     /* current processing call id */
  506.     S32 processDId;                     /* current processing dialog id */
  507.     S32 bkrejCId;                       /* background reject call id */
  508.     S32 bkrejDId;                       /* background reject dialog id */
  509.     BOOL inSession;                     /* in voip critical session flag */
  510.     mmi_voip_call_conn_enum needConn;   /* need to connect what type of call after release action */
  511.     mmi_voip_call_struct call_info[MMI_VOIP_MAX_NUM_CALL];
  512.     mmi_voip_held_call_struct held_call_info[MMI_VOIP_MAX_HELD_CALL];
  513. } mmi_voip_call_list_struct;
  514. typedef struct
  515. {
  516.     S32 maxAttempt;
  517.     S32 currAttempt;
  518.     U16 redialStr[MMI_VOIP_MAX_STRING_LEN];
  519.     U8 redialUri[VOIP_URI_LEN];
  520. } mmi_voip_call_redial_struct;
  521. typedef struct
  522. {
  523.     S32 currhiliteTab;
  524.     S32 currhiliteIndex;
  525.     S32 currfreeTab;
  526.     U8 dispUri[VOIP_URI_LEN * ENCODING_LENGTH];         /* 128 unicode + 2 bytes null terminator. input and display uri for category screen */
  527.     U8 inputUri[VOIP_URI_LEN];                          /* 64 ascii + 1 byte null terminator. actual inputted uri for VoIP CC */
  528.     U8 dispDtmf[MMI_VOIP_DTMF_LEN * ENCODING_LENGTH];   /* 80 unicode + 2 bytes null terminator. input and display dtmf for category screen */
  529.     U8 inputDtmf[MMI_VOIP_DTMF_LEN];                    /* 40 ascii + 1 byte null terminator. actual inputted dtmf for VoIP RTP */
  530.     BOOL isSOS;
  531.     BOOL isAbort;
  532.     BOOL isDtmf;
  533.     BOOL isMute;
  534.     BOOL isLoud;
  535.     mmi_voip_call_origin_enum actualOrigin;             /* temp origin call flag for merge call or split call */
  536.     MYTIME actualTime;                                  /* temp time buffer for merge call or split call */
  537. } mmi_voip_call_misc_struct;
  538. typedef struct
  539. {
  540.     mmi_voip_mo_origin_enum moOrgin;
  541.     U16 dispName[VOIP_DISP_NAME_LEN];
  542.     U8 remoteUri[VOIP_URI_LEN];
  543. } mmi_voip_call_originapp_struct;
  544. typedef struct
  545. {
  546.     U16 mwiType;
  547.     U16 mwiStr[MMI_VOIP_MAX_STRING_LEN];
  548.     U8 mwiAcct[VOIP_URI_LEN];
  549.     BOOL isDisp;
  550.     voip_msg_struct mwiMsg;
  551. } mmi_voip_msg_waiting_struct;
  552. typedef struct
  553. {
  554.     mmi_voip_reg_state_enum reg_state_info;
  555.     mmi_voip_prof_setting_struct prof_setting_info;
  556.     mmi_voip_call_setting_struct call_setting_info;
  557.     mmi_voip_proc_scr_struct proc_scr_info;
  558.     mmi_voip_call_alert_struct call_alert_info;
  559.     mmi_voip_call_list_struct call_list_info;
  560.     mmi_voip_call_redial_struct call_redial_info;
  561.     mmi_voip_call_misc_struct call_misc_info;
  562.     mmi_voip_call_originapp_struct call_originapp_info;
  563.     mmi_voip_call_log_struct call_log_info;
  564.     mmi_voip_msg_waiting_struct msg_waiting_info;
  565. } mmi_voip_cntx_struct;
  566. extern const U8 sipUri[10];
  567. extern const U8 telUri[10];
  568. extern const U8 sos112[8];
  569. extern const U8 sos911[8];
  570. extern const U8 zeroIp[8];
  571. extern const U16 VoIPDTMFDigits[MMI_VOIP_MAX_NUM_DIGITS];
  572. extern mmi_voip_cntx_struct *g_voip_cntx_p;
  573. /* VoIPMain.c */
  574. #ifdef __MMI_WLAN_FEATURES__
  575. extern void mmi_voip_wlan_state_callback(U16 state);
  576. #endif
  577. extern void mmi_voip_init_context(void);
  578. extern void mmi_voip_init_setting_context(void);
  579. extern void mmi_voip_init_call_context(void);
  580. extern void mmi_voip_init_highlight_hdlr(void);
  581. extern void mmi_voip_init_setting_highlight_hdlr(void);
  582. extern void mmi_voip_init_setting_hint_hdlr(void);
  583. extern void mmi_voip_init_call_highlight_hdlr(void);
  584. extern void mmi_voip_init_call_hint_hdlr(void);
  585. extern void mmi_voip_init_protocol_hdlr(void);
  586. extern BOOL mmi_voip_load_profile(S32 profIndex);
  587. extern BOOL mmi_voip_save_profile(S32 profIndex);
  588. extern void mmi_voip_load_profile_active_index(void);
  589. extern void mmi_voip_save_profile_active_index(void);
  590. extern BOOL mmi_voip_load_setting(void);
  591. extern BOOL mmi_voip_save_setting(void);
  592. /* VoIPSetting.c */
  593. extern void mmi_voip_highlight_main_menu(void);
  594. extern void mmi_voip_highlight_status(void);
  595. extern void mmi_voip_highlight_summary(void);
  596. extern void mmi_voip_highlight_prof_setting(void);
  597. extern void mmi_voip_highlight_prof_setting_option_activate(void);
  598. extern void mmi_voip_highlight_prof_setting_option_edit(void);
  599. extern void mmi_voip_highlight_prof_edit_common(void);
  600. extern void mmi_voip_highlight_prof_edit_account(void);
  601. extern void mmi_voip_highlight_prof_edit_outbound(void);
  602. extern void mmi_voip_highlight_prof_edit_register(void);
  603. extern void mmi_voip_highlight_prof_edit_nat(void);
  604. extern void mmi_voip_highlight_full_screen_editor(void);
  605. extern void mmi_voip_highlight_done(void);
  606. extern void mmi_voip_highlight_input_method_in_menu(void);
  607. extern void mmi_voip_highlight_call_setting(void);
  608. extern void mmi_voip_highlight_auto_answer(void);
  609. extern void mmi_voip_highlight_auto_reject(void);
  610. extern void mmi_voip_highlight_auto_redial(void);
  611. extern void mmi_voip_highlight_hide_caller_id(void);
  612. extern void mmi_voip_highlight_dtmf_in_menu(void);
  613. extern void mmi_voip_highlight_comfort_noise(void);
  614. extern void mmi_voip_highlight_set_codec_order(void);
  615. extern void mmi_voip_hint_auto_answer(U16 index);
  616. extern void mmi_voip_hint_auto_reject(U16 index);
  617. extern void mmi_voip_hint_auto_redial(U16 index);
  618. extern void mmi_voip_hint_hide_caller_id(U16 index);
  619. extern void mmi_voip_hint_dtmf_in_menu(U16 index);
  620. extern void mmi_voip_hint_comfort_noise(U16 index);
  621. #ifdef SIP_CONFORMANCE_TEST
  622. extern void mmi_voip_highlight_option_query(void);
  623. #endif
  624. extern void mmi_voip_pre_entry_main_menu(void);
  625. extern void mmi_voip_entry_main_menu(void);
  626. extern void mmi_voip_entry_status(void);
  627. extern void mmi_voip_entry_summary(void);
  628. extern void mmi_voip_entry_abort_login(void);
  629. extern void mmi_voip_entry_abort_login_endkey(void);
  630. extern void mmi_voip_entry_prof_setting(void);
  631. extern void mmi_voip_highlight_prof_setting_item(S32 index);
  632. extern void mmi_voip_entry_prof_setting_option(void);
  633. extern void mmi_voip_entry_prof_activate(void);
  634. extern void mmi_voip_entry_prof_edit(void);
  635. extern void mmi_voip_pre_entry_prof_edit_inlineitems(void);
  636. extern void mmi_voip_entry_prof_edit_inlineitems(void);
  637. extern void mmi_voip_exit_prof_edit_inlineitems(void);
  638. extern void mmi_voip_update_prof_common_cache_to_disp(S32 profIndex);
  639. extern void mmi_voip_update_prof_acct_cache_to_disp(S32 profIndex);
  640. extern void mmi_voip_update_prof_outbound_cache_to_disp(S32 profIndex);
  641. extern void mmi_voip_update_prof_register_cache_to_disp(S32 profIndex);
  642. extern void mmi_voip_update_prof_nat_cache_to_disp(S32 profIndex);
  643. extern void mmi_voip_update_prof_common_disp_to_cache(S32 profIndex);
  644. extern void mmi_voip_update_prof_acct_disp_to_cache(S32 profIndex);
  645. extern void mmi_voip_update_prof_outbound_disp_to_cache(S32 profIndex);
  646. extern void mmi_voip_update_prof_register_disp_to_cache(S32 profIndex);
  647. extern void mmi_voip_update_prof_nat_disp_to_cache(S32 profIndex);
  648. extern S32 mmi_voip_setup_prof_common_inlineitems(void);
  649. extern S32 mmi_voip_setup_prof_acct_inlineitems(void);
  650. extern S32 mmi_voip_setup_prof_outbound_inlineitems(void);
  651. extern S32 mmi_voip_setup_prof_register_inlineitems(void);
  652. extern S32 mmi_voip_setup_prof_nat_inlineitems(void);
  653. extern void mmi_voip_entry_full_screen_editor_option(void);
  654. extern void mmi_voip_entry_prof_data_acct(void);
  655. extern void mmi_voip_prof_data_acct_callback(U16 index);
  656. extern void mmi_voip_prof_ip_addr_convert(U8 *ipStr, U8 *ip1, U8 *ip2, U8 *ip3, U8 *ip4);
  657. extern U16 mmi_voip_prof_validate_activation(S32 profIndex);
  658. extern U16 mmi_voip_prof_validate_inputs(void);
  659. extern void mmi_voip_entry_prof_confirm(void);
  660. extern void mmi_voip_entry_prof_save(void);
  661. extern void mmi_voip_go_back_to_prof_edit(void);
  662. extern void mmi_voip_entry_call_setting(void);
  663. extern void mmi_voip_entry_setting_general(void);
  664. extern void mmi_voip_highlight_setting_general_item(S32 index);
  665. extern void mmi_voip_update_setting_answer_cache_to_disp(void);
  666. extern void mmi_voip_update_setting_reject_cache_to_disp(void);
  667. extern void mmi_voip_update_setting_redial_cache_to_disp(void);
  668. extern void mmi_voip_update_setting_hide_cache_to_disp(void);
  669. extern void mmi_voip_update_setting_dtmf_cache_to_disp(void);
  670. extern void mmi_voip_update_setting_noise_cache_to_disp(void);
  671. extern void mmi_voip_update_setting_codec_cache_to_disp(void);
  672. extern BOOL mmi_voip_update_setting_answer_disp_to_cache(void);
  673. extern BOOL mmi_voip_update_setting_reject_disp_to_cache(void);
  674. extern BOOL mmi_voip_update_setting_redial_disp_to_cache(void);
  675. extern BOOL mmi_voip_update_setting_hide_disp_to_cache(void);
  676. extern BOOL mmi_voip_update_setting_dtmf_disp_to_cache(void);
  677. extern BOOL mmi_voip_update_setting_noise_disp_to_cache(void);
  678. extern BOOL mmi_voip_update_setting_codec_disp_to_cache(void);
  679. extern void mmi_voip_entry_setting_general_confirm(void);
  680. extern void mmi_voip_entry_setting_general_save(void);
  681. extern void mmi_voip_go_back_to_call_setting(void);
  682. extern void mmi_voip_entry_set_codec_order(void);
  683. extern void mmi_voip_highlight_set_codec_order_item(S32 index);
  684. extern void mmi_voip_entry_set_codec_order_option(void);
  685. extern void mmi_voip_entry_setting_codec_confirm(void);
  686. extern void mmi_voip_entry_setting_codec_save(void);
  687. extern void mmi_voip_go_back_to_codec_order(void);
  688. #ifdef SIP_CONFORMANCE_TEST
  689. extern void mmi_voip_entry_option_query(void);
  690. extern void mmi_voip_entry_option_query_result(U8 *asciiData);
  691. #endif /* SIP_CONFORMANCE_TEST */
  692. extern void mmi_voip_go_back_2_history(void);
  693. /* VoIPCall.c */
  694. extern void mmi_voip_highlight_new_call(void);
  695. extern void mmi_voip_highlight_dial(void);
  696. extern void mmi_voip_highlight_save_phonebook(void);
  697. extern void mmi_voip_highlight_input_method_in_call(void);
  698. extern void mmi_voip_highlight_sos(void);
  699. extern void mmi_voip_highlight_hold_single(void);
  700. extern void mmi_voip_highlight_hold_conference(void);
  701. extern void mmi_voip_highlight_retrieve_single(void);
  702. extern void mmi_voip_highlight_retrieve_conference(void);
  703. extern void mmi_voip_highlight_swap(void);
  704. extern void mmi_voip_highlight_conference(void);
  705. extern void mmi_voip_highlight_split(void);
  706. extern void mmi_voip_highlight_end_single(void);
  707. extern void mmi_voip_highlight_end_conference(void);
  708. extern void mmi_voip_highlight_end_all(void);
  709. extern void mmi_voip_highlight_transfer(void);
  710. extern void mmi_voip_highlight_phonebook(void);
  711. extern void mmi_voip_highlight_mute(void);
  712. extern void mmi_voip_highlight_dtmf_in_call(void);
  713. extern void mmi_voip_hint_mute(U16 index);
  714. extern void mmi_voip_hint_dtmf_in_call(U16 index);
  715. extern void mmi_voip_entry_login_confirm(void);
  716. extern void mmi_voip_go_back_to_call_editor(void);
  717. extern void mmi_voip_entry_new_call(void);
  718. extern void mmi_voip_entry_call_editor_option(void);
  719. extern void mmi_voip_entry_outgoing_call(void);
  720. extern void mmi_voip_entry_redialing_call(void);
  721. extern void mmi_voip_entry_incoming_call(void);
  722. extern void mmi_voip_entry_in_call(void);
  723. extern void mmi_voip_exit_in_call(void);
  724. extern void mmi_voip_highlight_in_call_item(S32 index);
  725. extern void mmi_voip_tab_jump(S32 index);
  726. extern void mmi_voip_tab_prev(void);
  727. extern void mmi_voip_tab_next(void);
  728. extern void mmi_voip_tab_highlight(void);
  729. extern void mmi_voip_entry_dtmf_editor(void);
  730. extern void mmi_voip_entry_call_option(void);
  731. extern void mmi_voip_hide_call_option(void);
  732. extern void mmi_voip_entry_transfer(void);
  733. extern void mmi_voip_entry_multi_held_call(void);
  734. extern void mmi_voip_highlight_multi_held_call_item(S32 index);
  735. extern void mmi_voip_set_loud_speaker(void);
  736. extern void mmi_voip_set_mute(void);
  737. extern void mmi_voip_set_dtmf_in_call(void);
  738. extern void mmi_voip_entry_popup(U8 *string, U16 imageId);
  739. extern void mmi_voip_exit_popup(void);
  740. extern void mmi_voip_entry_popup_over(void);
  741. extern void mmi_voip_go_back_screen_check(void);
  742. /* VoIPSignal.c */
  743. #ifdef SIP_CONFORMANCE_TEST
  744. extern void mmi_voip_entry_option_query_check(void);
  745. #endif
  746. extern void mmi_voip_pre_dial(void);
  747. extern void mmi_voip_entry_dial(void);
  748. extern void mmi_voip_entry_redial(void);
  749. extern void mmi_voip_entry_save_phonebook(void);
  750. extern void mmi_voip_entry_sos(void);
  751. extern void mmi_voip_entry_dial_sos(void);
  752. // extern void mmi_voip_entry_abort_call(void);
  753. extern void mmi_voip_entry_abort_redial(void);
  754. extern void mmi_voip_entry_answer_call(void);
  755. extern void mmi_voip_entry_reject_call(void);
  756. extern void mmi_voip_entry_in_call_sendkey(void);
  757. extern void mmi_voip_entry_in_call_endkey(void);
  758. extern void mmi_voip_entry_sidekey(void);
  759. extern void mmi_voip_pre_send_dtmf(void);
  760. extern void mmi_voip_entry_hold_single(void);
  761. extern void mmi_voip_entry_hold_conference(void);
  762. extern void mmi_voip_entry_retrieve_single(void);
  763. extern void mmi_voip_entry_retrieve_conference(void);
  764. extern void mmi_voip_entry_swap(void);
  765. extern void mmi_voip_entry_conference(void);
  766. extern void mmi_voip_entry_split(void);
  767. extern void mmi_voip_entry_end_single(void);
  768. extern void mmi_voip_entry_end_conference(void);
  769. extern void mmi_voip_entry_end_all(void);
  770. extern void mmi_voip_entry_release_call(void);
  771. extern void mmi_voip_entry_force_release(void);
  772. extern void mmi_voip_entry_held_call_selected(void);
  773. extern void mmi_voip_entry_transfer_call_determined(void);
  774. extern S32 mmi_voip_get_active_call_id(void);
  775. extern void mmi_voip_get_held_call_list(BOOL singlecallOnly);
  776. extern S32 mmi_voip_get_call_index(S32 callId);
  777. extern S32 mmi_voip_get_dialog_index(S32 callIndex, S32 dialogId);
  778. extern void mmi_voip_log_call_end_time(S32 callId, S32 dialogId, MYTIME *duration);
  779. extern void mmi_voip_log_call_history(S32 callId, S32 dialogId, mmi_voip_call_origin_enum callOrigin, BOOL isConnect);
  780. extern void mmi_voip_log_call_duration(S32 callId, S32 dialogId, mmi_voip_call_origin_enum callOrigin);
  781. /* VoIPVoice.c */
  782. extern void mmi_voip_switch_session(mmi_voip_call_state_enum currState);
  783. extern S32 mmi_voip_create_rtp(voip_sdp_struct *sdp);
  784. extern void mmi_voip_close_rtp(S32 rtpHandle);
  785. extern void mmi_voip_switch_rtp(BOOL isSuspend, S32 callId, S32 dialogId);
  786. extern void mmi_voip_control_rtp(S32 rtpHandle, S32 rtpDirection);
  787. extern void mmi_voip_remove_mixer_before_close(S32 callIndex);
  788. extern void mmi_voip_send_dtmf_start(void);
  789. extern void mmi_voip_send_dtmf_stop(void);
  790. /* VoIPMsgHdlr.c */
  791. extern void mmi_voip_send_message(
  792.                 module_type moduleSrc,
  793.                 module_type moduleDest,
  794.                 U16 msgId,
  795.                 void *localPara,
  796.                 void *peerBuff);
  797. extern void mmi_voip_register_req(void);
  798. extern void mmi_voip_register_rsp(void *inMsg);
  799. extern void mmi_voip_deregister_req(void);
  800. extern void mmi_voip_deregister_rsp(void *inMsg);
  801. extern void mmi_voip_deregister_ind(void *inMsg);
  802. extern void mmi_voip_setting_req(void);
  803. extern void mmi_voip_setting_rsp(void *inMsg);
  804. extern void mmi_voip_progressing_ind(void *inMsg);
  805. extern void mmi_voip_call_ring_ind(void *inMsg);
  806. extern void mmi_voip_call_end_ind(void *inMsg);
  807. extern void mmi_voip_call_state_ind(void *inMsg);
  808. extern void mmi_voip_msg_waiting_ind(void *inMsg);
  809. extern void mmi_voip_at_call_ctrl_approve_ind(void *inMsg);
  810. extern void mmi_voip_at_call_ctrl_approve_res_req(U8 result, U8 action);
  811. extern void mmi_voip_call_status_req(U8 status);
  812. extern void mmi_voip_call_status_rsp(void *inMsg);
  813. #ifdef SIP_CONFORMANCE_TEST
  814. extern void mmi_voip_option_query_req(void);
  815. extern void mmi_voip_option_query_rsp(void *inMsg);
  816. #endif /* SIP_CONFORMANCE_TEST */
  817. extern void mmi_voip_dispatch_call_act_rsp(void *inMsg);
  818. extern void mmi_voip_dial_req(void);
  819. extern void mmi_voip_dial_rsp(void *inMsg);
  820. extern void mmi_voip_accept_req(S32 callId);
  821. extern void mmi_voip_accept_rsp(void *inMsg);
  822. extern void mmi_voip_hold_req(S32 callId);
  823. extern void mmi_voip_hold_rsp(void *inMsg);
  824. extern void mmi_voip_retrieve_req(S32 callId);
  825. extern void mmi_voip_retrieve_rsp(void *inMsg);
  826. extern void mmi_voip_swap_req(S32 activecallId, S32 heldcallId);
  827. extern void mmi_voip_swap_rsp(void *inMsg);
  828. extern void mmi_voip_merge_req(S32 activecallId, S32 heldcallId);
  829. extern void mmi_voip_merge_rsp(void *inMsg);
  830. extern void mmi_voip_split_req(S32 callId, S32 helddialogId);
  831. extern void mmi_voip_split_rsp(void *inMsg);
  832. extern void mmi_voip_release_req(S32 callId, S32 dialogId);
  833. extern void mmi_voip_release_rsp(void *inMsg);
  834. extern void mmi_voip_force_release_req(S32 callId, S32 dialogId);
  835. extern void mmi_voip_force_release_rsp(void *inMsg);
  836. extern void mmi_voip_background_reject_req(S32 callId, S32 dialogId);
  837. extern void mmi_voip_background_reject_rsp(void *inMsg);
  838. extern void mmi_voip_background_release_all_req(void);
  839. extern void mmi_voip_background_release_all_rsp(void *inMsg);
  840. extern void mmi_voip_transfer_req(S32 callId, S32 dialogId);
  841. extern void mmi_voip_transfer_rsp(void *inMsg);
  842. extern void mmi_voip_dial_sos_req(void);
  843. extern void mmi_voip_dial_sos_rsp(void *inMsg);
  844. extern void mmi_voip_hold_and_dial_req(S32 callId);
  845. extern void mmi_voip_hold_and_dial_rsp(void *inMsg);
  846. extern void mmi_voip_hold_and_accept_req(S32 activecallId, S32 mtcallId);
  847. extern void mmi_voip_hold_and_accept_rsp(void *inMsg);
  848. /* VoIPUtil.c */
  849. extern void mmi_voip_set_processing_parameter(U16 titleStr, U16 bodyStr, U16 animationImg, U16 lskStr, FuncPtr lskFunc, U16 rskStr, FuncPtr rskFunc, FuncPtr sendFunc, FuncPtr endFunc);
  850. extern void mmi_voip_entry_processing_screen(void);
  851. extern BOOL mmi_voip_validate_port(U8 *unicodePort);
  852. extern BOOL mmi_voip_validate_uri(U8 *unicodeUri);
  853. extern BOOL mmi_voip_validate_ip(U8 *ip1, U8 *ip2, U8 *ip3, U8 *ip4);
  854. extern BOOL mmi_voip_validate_dtmf(U16 dtmfKey);
  855. extern void mmi_voip_parse_uri(U8 *unicodeUri);
  856. extern void mmi_voip_convert_uri_lower_case(U8 *unicodeSrc, U8 *unicodeDest);
  857. extern void mmi_voip_append_uri_prefix(U8 *unicodeUri);
  858. extern void mmi_voip_append_uri_domain(U8 *unicodeUri);
  859. extern void mmi_voip_add_to_call_list(U16 *fileName, S32 callId, S32 dialogId, mmi_voip_call_state_enum currState);
  860. extern void mmi_voip_del_from_call_list(S32 callId, S32 dialogId);
  861. extern void mmi_voip_update_call_list(U16 *fileName, BOOL isConf);
  862. extern void mmi_voip_update_to_del_call_list(U16 *fileName, BOOL isConf);
  863. extern void mmi_voip_update_to_add_call_list(U16 *fileName, BOOL isConf);
  864. extern void mmi_voip_get_summary_string(U8 *unicodeStr);
  865. extern mmi_voip_call_state_enum mmi_voip_get_call_state_enum(voip_dlg_state_enum state);
  866. extern void mmi_voip_get_call_end_string(MYTIME *duration, U8 *unicodeStr);
  867. extern rtp_dtmf_code_enum mmi_voip_get_dtmf_keycode_enum(U16 *keyCode);
  868. extern U16 mmi_voip_get_error_cause(U8 result, S32 cause);
  869. extern U16 mmi_voip_get_error_string(S32 cause);
  870. extern BOOL mmi_voip_set_outgoing_origin_app(mmi_voip_mo_origin_enum moOrigin);
  871. extern BOOL mmi_voip_get_outgoing_disp_name(U8 moOrigin, U8 *unicodeSrc, U8 *unicodeDest, U8 destLen);
  872. extern void mmi_voip_get_redial_string(U8 *unicodeStr);
  873. extern U16 mmi_voip_get_mwi_state_enum(voip_mwi_type_enum state);
  874. extern void mmi_voip_get_mwi_string(U8 *unicodeStr);
  875. extern BOOL mmi_voip_is_idle_state(void);
  876. extern BOOL mmi_voip_is_keypad_lock_state(void);
  877. extern BOOL mmi_voip_is_empty_profile(S32 profIndex);
  878. extern BOOL mmi_voip_is_owner_number(U8 *unicodeSrc1, U8 *unicodeSrc2);
  879. extern BOOL mmi_voip_is_codec_compatible(voip_codec_enum *codecList, BOOL firstcodecOnly);
  880. extern BOOL mmi_voip_is_addr_change(voip_sdp_struct *mmiSdp, voip_sdp_struct *voipSdp);
  881. extern void mmi_voip_play_inbandtone(void);
  882. extern void mmi_voip_stop_inbandtone(void);
  883. extern void mmi_voip_play_incoming_tone(void);
  884. extern void mmi_voip_stop_incoming_tone(void);
  885. extern void mmi_voip_play_ringtone(void);
  886. extern void mmi_voip_stop_ringtone(void);
  887. extern void mmi_voip_play_vibration_then_ring(void);
  888. extern void mmi_voip_play_waitingtone(void);
  889. extern void mmi_voip_stop_waitingtone(void);
  890. #endif /* VOIP_PROT_H */