Roman_R Опубликовано 18 марта, 2015 · Жалоба Здравствуйте! Столкнулся с такими проблемами при настройке связки Goip+Asterisk. Goip регистрируется на сервере Asterisk. Я звоню на шлюз по GSM. Он кидает на IVR, где осуществляется донабор номера. Так вот сигналы DTMF цифр 4 и 5 (да только эти ))) не распознаются сервером. Что за..? Наткнулся на кучу статей и рекомендаций в гугле. Вот одна из них: http://subnets.ru/blog/?p=1278 Перепробовал все что можно. за исключением инструкций по смене частот кодов и перекомпиляции сервера (Asterisk работает на NAS Synology). Склоняюсь к мысли, что дело все-таки в несогласованности используемых кодеков. Т.к. с очень древнего мобильного телефона все отлично работает) Поэтому было принято решение отправлять набираемый номер смсками, но и тут возникли проблемы, о которых я написал в соседней ветке. Может есть еще у кого идеи? Кстати вот так Сервер собирает и обрабатывает DTMF: [dtmf-analys] exten => s,1,SayDigits(0) [0-чтобы знать что мы в нужном контексте] ; exten => s,n,Answer() exten => s,n,Wait(1) exten => s,n(collect),Read(digito,,9) exten => s,n,SayDigits(${digito}) exten => s,n,GoTo(collect) exten => s,n,Hangup ; exten => t,1,Goto(s,1) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_uznik_ Опубликовано 19 марта, 2015 · Жалоба Добрый день, в * разрешили донабор? кодеки согласованы? Дебаг в студию... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Roman_R Опубликовано 22 марта, 2015 · Жалоба Настройки на сервере: [users](!) type=friend host=dynamic nat=yes canreinvite=no transport=udp qualify=yes disallow=all allow=alaw allow=ulaw callgroup=1 pickupgroup=1 deny=0.0.0.0/0.0.0.0 permit=172.126.0.0/255.255.255.0 [230](users) username=230 secret=1234 fromuser=230 insecure=port,invite context=default dtmfmode=rfc2833 Вот что происходит: == CDR updated on SIP/230-00000078 -- Executing [0@menu:1] Goto("SIP/230-00000078", "dtmf-analys,s,1") in new stack -- Goto (dtmf-analys,s,1) -- Executing [s@dtmf-analys:1] SayDigits("SIP/230-00000078", "0") in new stack -- <SIP/230-00000078> Playing 'digits/0.alaw' (language 'en') -- Executing [s@dtmf-analys:2] Answer("SIP/230-00000078", "") in new stack -- Executing [s@dtmf-analys:3] BackGround("SIP/230-00000078", "beep") in new stack -- <SIP/230-00000078> Playing 'beep.alaw' (language 'en') -- Executing [s@dtmf-analys:4] Wait("SIP/230-00000078", "1") in new stack -- Executing [s@dtmf-analys:5] Read("SIP/230-00000078", "digito,,9") in new stack -- Accepting a maximum of 9 digits. [Mar 22 16:33:41] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '1' received on SIP/230-00000078 [Mar 22 16:33:41] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '1' on SIP/230-00000078 [Mar 22 16:33:41] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '1' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:41] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '1' on SIP/230-00000078 [Mar 22 16:33:42] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '2' received on SIP/230-00000078 [Mar 22 16:33:42] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '2' on SIP/230-00000078 [Mar 22 16:33:42] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '2' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:42] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '2' on SIP/230-00000078 [Mar 22 16:33:43] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '3' received on SIP/230-00000078 [Mar 22 16:33:43] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '3' on SIP/230-00000078 [Mar 22 16:33:43] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '3' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:43] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '3' on SIP/230-00000078 [Mar 22 16:33:47] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '6' received on SIP/230-00000078 [Mar 22 16:33:47] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '6' on SIP/230-00000078 [Mar 22 16:33:47] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '6' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:47] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '6' on SIP/230-00000078 [Mar 22 16:33:51] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '7' received on SIP/230-00000078 [Mar 22 16:33:51] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '7' on SIP/230-00000078 [Mar 22 16:33:51] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '7' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:51] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '7' on SIP/230-00000078 [Mar 22 16:33:52] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '8' received on SIP/230-00000078 [Mar 22 16:33:52] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '8' on SIP/230-00000078 [Mar 22 16:33:52] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '8' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:52] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '8' on SIP/230-00000078 [Mar 22 16:33:56] DTMF[20485]: channel.c:4151 __ast_read: DTMF begin '9' received on SIP/230-00000078 [Mar 22 16:33:56] DTMF[20485]: channel.c:4155 __ast_read: DTMF begin ignored '9' on SIP/230-00000078 [Mar 22 16:33:56] DTMF[20485]: channel.c:4066 __ast_read: DTMF end '9' received on SIP/230-00000078, duration 100 ms [Mar 22 16:33:56] DTMF[20485]: channel.c:4135 __ast_read: DTMF end passthrough '9' on SIP/230-00000078 -- User entered '1236789' -- Executing [s@dtmf-analys:6] SayDigits("SIP/230-00000078", "1236789") in new stack -- <SIP/230-00000078> Playing 'digits/1.alaw' (language 'en') -- <SIP/230-00000078> Playing 'digits/2.alaw' (language 'en') -- <SIP/230-00000078> Playing 'digits/3.alaw' (language 'en') -- <SIP/230-00000078> Playing 'digits/6.alaw' (language 'en') -- <SIP/230-00000078> Playing 'digits/7.alaw' (language 'en') -- <SIP/230-00000078> Playing 'digits/8.alaw' (language 'en') -- <SIP/230-00000078> Playing 'digits/9.alaw' (language 'en') -- Executing [s@dtmf-analys:7] Goto("SIP/230-00000078", "collect") in new stack -- Goto (dtmf-analys,s,5) -- Executing [s@dtmf-analys:5] Read("SIP/230-00000078", "digito,,9") in new stack -- Accepting a maximum of 9 digits. -- User entered nothing. -- Executing [s@dtmf-analys:6] SayDigits("SIP/230-00000078", "") in new stack -- Executing [s@dtmf-analys:7] Goto("SIP/230-00000078", "collect") in new stack -- Goto (dtmf-analys,s,5) -- Executing [s@dtmf-analys:5] Read("SIP/230-00000078", "digito,,9") in new stack -- Accepting a maximum of 9 digits. -- User entered nothing. -- Executing [s@dtmf-analys:6] SayDigits("SIP/230-00000078", "") in new stack -- Executing [s@dtmf-analys:7] Goto("SIP/230-00000078", "collect") in new stack -- Goto (dtmf-analys,s,5) -- Executing [s@dtmf-analys:5] Read("SIP/230-00000078", "digito,,9") in new stack -- Accepting a maximum of 9 digits. Повторюсь: если звонить с очень древнего мобильного телефона, все корректно работает. Также если звонить со софтфонов. Проблема только при звонке с мобильного на Goip. Пробовал разные типы DTMF - не помогло. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SUrov_IBM Опубликовано 26 марта, 2015 · Жалоба Доброго времени суток. Никогда не работал с "Goip". Могу лишь предположить, что при звонке со "старенького" мобильного ТА передача DTMF происходит в голосовом канале (dtmf in band), "прозрачно" пробегая на Asterisk в кодеке G711. Это приводит к успешной обработке звукового сигнала IVR'ом. Современные мобильные ТА, возможно отдают DTMF в телефонной сигнализации (dtmf out of band), не генерируя звукового сигнала. При этом Ваш "Goip шлюз" не может корректно распознать сигнализацию оператора и передаёт на Asterisk (в dtmfmode=rfc2833), что ему почудилось. Для эксперимента: 1. Между "Goip шлюз" и Asterisk оставьте только голосовой кодек G711 (A-Law). 2. В файле конфигурации Asterisk "sip.conf" установите значение "dtmfmode=auto" (см. "General" конфигурацию). 3. После этого переберите DTMF параметры на "Goip шлюз" с совершением звонка (мобильный ТА современного поколения). Если не помогает, соедините "Goip шлюз" вместо Asterisk с какие-нибудь VoIP шлюзом (AddPac или D-Link (в режиме dtmf in band)) вывод на аналоговый ТА, терминируя на него звонок. Ответьте на звонок, далее наберите (мобильный ТА современного поколения) DTMF - Вы должны услышать характерный зуммер цифры. Если Вы его не слышите, а слышите шелест или треск, попробуйте поменять прошивку на "Goip шлюз". Вы должны услышать набор цифры, что решить проблему. Либо же будет корректно обрабатываться сигнализация (dtmf out of band), но это Вы поймете, только вернув соединение "Goip шлюз" и Asterisk. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Beetec Опубликовано 26 марта, 2021 · Жалоба В GoIP измени параметр в разделе Configurations/Advance VoIP/ DTMF Signaling = Outband и Outband DTMF type = RFC2833 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
andrsharov Опубликовано 29 марта, 2021 · Жалоба Здравствуйте, коллеги. Тоже есть GOIP-4 в хозяйстве. Тоже долго не мог настроить передачу DTMF . У меня заработало только dtmf=inband с разрешенными кодеками alaw&ulaw . По-другому не заработало, время дебажить не было. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...