icfans

电话接通前发送 DTMF

0
阅读(37) 评论(0)

[DESCRIPTION]
按照 Spec 要求,电话在接通之后才可以发送 DTMF。但是有些运营商要求电话接通前就要可以发送 DTMF。
比如中国移动 10086 服务电话,就需要使用 DTMF 来做回复,而此时电话是没有接通的。
目前 Neptune 项目完全按照 Spec 来做,不支持电话接通前发送 DTMF。
[SOLUTION]来自半导体社区
1、 确认项目是否是 Neptune MMI:
在 [Project].mak 中查找 MMI_VERSION. 如果是 NEPTUNE_MMI 则,该项目是 Neptune MMI
2、 修改代码使电话接通前可以发送 DTMF
void EntryScr1001OutgoingCall(void)
{
...
#if 0
if (GetTotalCallCount() > 1)
{
wgui_auto_setup_softkeys(EntryScrOutgoingMultipleOptions, DropRequest);
wgui_set_key_handler(DropRequest, KEY_END);
SetGroupKeyHandler(
EnterScreenAndHandleDigit,
(PU16) CMIdleScreenDigits,
MAX_CM_SCREEN_DIGITS - 1,
KEY_EVENT_DOWN);
}
else
{
wgui_set_right_softkey_handler(DropRequest);
wgui_set_key_handler(DropRequest, KEY_END);
}
#else
wgui_auto_setup_softkeys(EntryScrOutgoingMultipleOptions, DropRequest);
wgui_set_key_handler(DropRequest, KEY_END);
SetGroupKeyHandler(
EnterScreenAndHandleDigit,
(PU16) CMIdleScreenDigits,
MAX_CM_SCREEN_DIGITS - 1,
KEY_EVENT_DOWN);
#endif
...
}