MTK G/P雙模通話開發概要

1 篇文章 0 订阅
1 篇文章 0 订阅

暮鼓集    行走集

原作于2010年01月14日, 软件部培训稿

1.源文件

\plutommi\mmi\CallManagement\CommonFiles 數據管理及公共接口 \plutommi\mmi\CallManagement\IncomingCallManagement Incoming Call處理 \plutommi\mmi\CallManagement\OutgoingCallManagement Outgoing Call處理 \plutommi\mmi\CallManagement\PhsCallManagement PHS Call處理 plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_CallManagement.c 資源文件

2.參考文檔

  • MMI_DD_CALLMANAGEMENT.pdf
  • Design-Call Management.pdf

3.軟件架構

MTK平台仍然是一種消息驅動的架構,在多任務的Nulceaus系統之上使用一個Task(MMI)實現UI應用,另一個Task(L4)在MMI與底層服務之間提供統一的消息接口界面。

GSM通話管理的實現就是MMI通過與L4的消息交互來完成的。

MMI --- REQUEST_MSG    -->L4C
MMI <-- RESPONSE_MSG  --- L4C
MMI <-- INDICATION_MSG ---L4C  

在此架構下,我們建立一個名為PHSM的Task,它與MMI之間通過系統內消息通信,與PHS模塊之間則是通過基於串口的AT命令通信。

PHS
MMI --- REQUEST_MSG --> PHSM   
MMI <-- RESPONSE_MSG  --- PHSM  
MMI <-- INDICATION_MSG --- PHSM 

PHSM在PHS應用程序和PHS模塊之間架設起一道橋樑。它與XL4處於同一層次,XL4為我們提供了GSM服務的消息界面,而PHSM提共了PHS服務的消息界面。

PHS通話管理正是通過MMI與PHSM的消息交互來實現。

對於UI開發者,你不需要知道PHSM的內部實現,但是必須了解PHSM和MMI之間的消息接口定義,參數及其功能。

4.消息定義

部分重要的消息附我的簡略說明,詳細參考MTK文檔

1) GSM消息 (MMI<->L4C)

Outgoing Call相關消息

MSG_ID_MMI_SS_PARSING_STRING_REQ //撥號請求
MSG_ID_MMI_SS_PARSING_STRING_RSP
MSG_ID_MMI_CC_DIAL_IND // 撥號中指示
MSG_ID_MMI_CC_CALL_CONNECT_IND // 對方接通指示
MSG_ID_MMI_CC_NOTIFY_SS_IND // 補充業務指示 

Incoming Call相關消息

MSG_ID_MMI_CC_CALL_RING_IND  // 來電指示
MSG_ID_MMI_CC_CALL_WAIT_IND // 來電指示(呼叫等待)
MSG_ID_MMI_CC_ATA_REQ // 接聽請求
MSG_ID_MMI_CC_ATA_RSP
MSG_ID_MMI_CC_ATH_REQ //拒接請求
MSG_ID_MMI_CC_ATH_RSP  

其他消息

MSG_ID_MMI_CC_CHLD_REQ // 通話中多用途請求 用于Hold, Retrieve, Swap, Hangup
MSG_ID_MMI_CC_CHLD_RSP
MSG_ID_MMI_CC_CALL_RELEASE_IND // 掛斷指示
MSG_ID_MMI_CC_SPEECH_IND
MSG_ID_MMI_CC_INTERNAL_ALERT_IND
MSG_ID_MMI_CC_GET_CALL_LIST_REQ
MSG_ID_MMI_CC_GET_CALL_LIST_RSP  

DTMF消息

MSG_ID_MMI_CC_START_AUTO_DTMF_IND //確認自動發送DTMF指示
MSG_ID_MMI_CC_START_AUTO_DTMF_REQ 
MSG_ID_MMI_CC_START_DTMF_REQ // 發送DTMF Tone請求
MSG_ID_MMI_CC_START_DTMF_RSP
MSG_ID_MMI_CC_STOP_DTMF_REQ // 停止DTMF Tone
MSG_ID_MMI_CC_STOP_DTMF_RSP  

USSD消息

MSG_ID_MMI_SS_USSD_RSP // 收到USSD回應
MSG_ID_MMI_SS_USSN_IND // 收到USSN指示
MSG_ID_MMI_SS_USSR_IND //收到USSR指示 

2) PHS消息 (MMI<->PHSM)

Outgoing Call相關消息

MSG_ID_MMI_PHS_PARSING_STRING_REQ //PHS撥號請求
MSG_ID_PHS_MMI_PARSING_STRING_RSP
MSG_ID_PHS_MMI_CALL_CONNECT_IND //PHS接通指示 

Incoming Call相關消息

MSG_ID_MMI_PHS_CALL_RING_IND // PHS來電指示
MSG_ID_MMI_PHS_ATA_REQ // 接聽來電
MSG_ID_MMI_PHS_ATA_RSP 
MSG_ID_MMI_PHS_ATH_REQ // 拒接來電
MSG_ID_MMI_PHS_ATH_RSP

Homebox消息

MSG_ID_PHS_MMI_CLIP_UNSOLICITED_IND // 號碼指示
MSG_ID_PHS_MMI_PINFO_UNSOLICITED_IND
MSG_ID_PHS_MMI_PROUTE_UNSOLICITED_IND
MSG_ID_PHS_MMI_STOP_RING_IND //停止來電提示  

其他消息

MSG_ID_MMI_PHS_CHLD_REQ // 掛斷請求
MSG_ID_MMI_PHS_CHLD_RSP
MSG_ID_PHS_MMI_CALL_RELEASE_IND // 掛斷指示
MSG_ID_PHS_MMI_CALL_DISCONNECT_IND  // 通話終止指示 

DTMF消息

MSG_ID_MMI_PHS_START_DTMF_REQ // 發送DTMF Tone請求
MSG_ID_PHS_MMI_START_DTMF_RSP
MSG_ID_PHS_MMI_START_AUTO_DTMF_IND // 確認自動發送DTMF指示
MSG_ID_MMI_PHS_START_AUTO_DTMF_REQ

5.狀態

通話管理定義了五種狀態

IDLE OUTGOING INCOMING ACTIVE HOLD

(MTK6217新版本中增加了DISCONNECT狀態的定義)

這些狀態用于兩種實體

1) 系統狀態

系統狀態反映了當前UI狀態,g_CallManagement_cntxt.state_info.CurrentMode記錄了這個狀態。我們通過函數SetCurrentState來設置這個狀態,其他應用程序可以通過GetCurrentState來取得當前的狀態。

2) 某路通話狀態

每一路通話也有自己的狀態,這個狀態記錄在state_info.AllCalls[xx].curr_state。這個狀態主要在通話管理的內部邏輯使用。

PHS和GSM對於狀態的定義是一樣的。

關于系統狀態的遷移請參考MTK文檔MMI_DD_CALLMANAGEMENT.pdf中的狀態圖。

6.核心數據結構

typedef struct {
 cm_state_struct state_info;
 cm_redial_struct  redial_info;
 cm_alert_struct alert_info;
 cm_history_struct history_info;
} cm_context_struct;
static cm_context_struct g_CallManagement_cntxt;
cm_context_struct *cm_p = &g_CallManagement_cntxt; 

7.GSM通話UI處理過程

請參考文檔MMI_DD_CALLMANAGEMENT.pdf

8.PHS通話UI處理過程

對PHS通話的處理我們參考了GSM的方法,並與GSM使用共同的數據管理與公共接口。

要了解的是為了區分GSM Call ID(值1~7),我們定義PHS Call ID為0x80。

對於諸如ATA,ATH等等的消息,處理過程與GSM類似,這裡不贅述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值