【发布时间】:2014-05-20 06:43:52
【问题描述】:
ATCOM IP01 上 uClinux 下的 Asterisk 1.4.21.2。 (编辑:顺便说一句,我认为不可能在 uClinux 上将 Asterisk 升级到 1.4 的更新版本,但如果有人知道方法,我很想知道。但我认为问题不在于特定于版本。)
features.conf中的featuremap如下,通话中按键无效。
[featuremap]
blindxfer => *# ; Blind transfer (default is #)
disconnect => ***0 ; Disconnect (default is *)
;automon => *1 ; One Touch Record a.k.a. Touch Monitor
atxfer => *0 ; Attended transfer
;parkcall => #72 ; Park call (one step parking)
CLI显示配置的featuremap已经生效:
IP0x*CLI> feature show channels
No feature channels in use
IP0x*CLI> feature show
Builtin Feature Default Current
--------------- ------- -------
Pickup *8 *8
Blind Transfer # *#
Attended Transfer *0
One Touch Monitor
Disconnect Call * ***0
Park Call
Dynamic Feature Default Current
--------------- ------- -------
(none)
Call parking
------------
Parking extension : 700
Parking context : parkedcalls
Parked call extensions: 701-750
使用各种不同的手机(Grandstream BT-200、Panasonic KX-TGP500、X-Lite 4),但总是同样的问题。所有电话配置为使用 rfc2833,这是 Asterisk 的默认 DTMF 模式;还尝试在 sip.conf 中显式设置 dtmfmode=rfc2833。
在通话过程中按下的任何键都不会得到 Asterisk 的任何响应。 * 和 # 键在不在通话中(在拨号方案中或在语音邮件中)时总是被 Asterisk 识别。
如果使用full => verbose,debug,dtmf 或full => verbose,error,warning,dtmf 开启DTMF 记录,则尽管在通话过程中按了许多键,但日志中不会出现DTMF 条目。
问题可能是什么?
编辑:现在有附加信息,显示拨号计划中使用的拨号命令。
编辑:我发现在不使用 ael 宏的情况下问题仍然存在,只需在 extensions.conf 中添加 exten=261,1,Dial(SIP/261)。所以我已经从问题中删除了 ael 来整理它。
我现在尝试在 sip.conf 中添加 canreinvite = no 和 relaxdtmf=yes,但问题仍然存在。
我现在还发现 DTMF 记录确实发生在 ZAP 频道(与我之前尝试的 SIP 频道相反)上的通话期间。但是 DTMF 仍然不会触发这些功能。示例 DTMF 日志如下。
[May 22 08:25:46] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '*' received on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '*' on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2116 __ast_read: DTMF end '*' received on SIP/251-01354004, duration 180 ms
[May 22 08:25:46] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '*' on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '*' on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '*' received on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '*' on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2116 __ast_read: DTMF end '*' received on SIP/251-01354004, duration 160 ms
[May 22 08:25:46] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '*' on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '*' on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '*' received on SIP/251-01354004
[May 22 08:25:46] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '*' on SIP/251-01354004
[May 22 08:25:47] DTMF[474]: channel.c:2116 __ast_read: DTMF end '*' received on SIP/251-01354004, duration 140 ms
[May 22 08:25:47] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '*' on SIP/251-01354004
[May 22 08:25:47] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '*' on SIP/251-01354004
[May 22 08:25:47] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '0' received on SIP/251-01354004
[May 22 08:25:47] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '0' on SIP/251-01354004
[May 22 08:25:47] DTMF[474]: channel.c:2116 __ast_read: DTMF end '0' received on SIP/251-01354004, duration 280 ms
[May 22 08:25:47] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '0' on SIP/251-01354004
[May 22 08:25:47] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '0' on SIP/251-01354004
IP0x*CLI>
【问题讨论】:
-
您在拨号方案中使用的 Dial 命令是什么?
-
我已编辑问题以包含详细信息。
-
升级是不可能的吗? 1.4 是 2012 年的 EOL,wiki.asterisk.org/wiki/display/AST/Asterisk+Versions - 没有很多 1.4 安装可以与之比较。
-
@dougBTV 升级会很好,但我认为在 uClinux 下无法升级到高于 1.4 的版本?我已经编辑了问题以提及这一点。
-
@RegEdit 我建议从源代码安装它。它实际上相当简单,并且有一个不错的 ncurses 界面用于选择您想要的模块。查看规范指令@wiki.asterisk.org/wiki/display/AST/…
标签: asterisk transfer phone-call dtmf uclinux