Астериск 1.4.21.2 под uClinux на ATCOM IP01. (РЕДАКТИРОВАТЬ: между прочим, я не думаю, что возможно обновить Asterisk до более новой версии, чем 1.4 на uClinux, но если кто-нибудь знает способ, мне было бы интересно узнать. Но я не думаю, что проблема зависит от версии.)
Карта функций в features.conf
выглядит следующим образом, но нажатие клавиш во время вызова не имеет никакого эффекта.
[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 показывает, что настроенная карта функций вступила в силу:
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, который является режимом DTMF Asterisk по умолчанию; также попытался явно установить dtmfmode=rfc2833 в sip.conf.
Никакие клавиши, нажатые во время звонка, никогда не получают ответа от Asterisk. Клавиши *
и #
всегда распознаются Asterisk, когда не происходит вызов (в диалплане или во время голосовой почты).
Если ведение журнала DTMF включено с помощью full => verbose,debug,dtmf
или full => verbose,error,warning,dtmf
, в журнале не появляются записи DTMF, несмотря на нажатие множества клавиш во время вызова.
В чем может быть проблема?
РЕДАКТИРОВАТЬ: теперь следует дополнительная информация, показывающая команду Dial, используемую в диалплане.
РЕДАКТИРОВАТЬ: я обнаружил, что проблема все еще возникает без использования этого макроса ael, просто имея exten=261,1,Dial(SIP/261)
в extensions.conf. Поэтому я удалил аэль из вопроса, чтобы не загромождать его.
Теперь я попытался добавить canreinvite = no
и relaxdtmf=yes
в sip.conf, но проблема остается.
Я также обнаружил, что регистрация 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>