Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Дублирование DTMF

Проблемы и их решения Asterisk как такового

Модератор: april22

Re: Дублирование DTMF

Сообщение Zavr2008 » 23 май 2018, 14:39

host=dynamic

Делается когда у ВАС на астере регистрируются абоненты..

Читать Астериск Будущее Телефонии.. Там всего одну главу перечитать надо..
Asterisk-совместимые SIP/E1 шлюзы Alvis. Форумчанам - скидки, Asterisk/FreePBX + TDA/TDE/LDK/Avaya/HiPath/NEC и др. + Bitrix24/AmoCRM!
Аватар пользователя
Zavr2008
 
Сообщений: 1481
Зарегистрирован: 27 янв 2011, 01:35

Re: Дублирование DTMF

Сообщение repp.sv » 28 май 2018, 16:54

Получил ответ от службы поддержки Ростелекома.

Как видно, передача цифр в dtmf одинакова в обоих случаях, за исключением передачи события "dtmf end". В случае вызова на номер-679 все три сообщения "dtmf end" (для каждой цифры!) передаются удаленной стороной практически одновременно. В случае вызова на номер 8800 между сообщениями "dtmf end" видим интервал 20 мс. Никаких нарушений RFC2833 не наблюдается. При этом заметим, что для всех четрыех цифр набора астериск корректно опознает все три соообщения "dtmf end".
В логе астериска видим, что корректно распознались все четыре цифры (астериск начинает вызывать набранный номер 5590):
" -- Executing [5590@ivr-k:1] Dial("SIP/Rostel-00002115", "IAX2/MSK/5590") in new stack".
Однако далее астериск почему-то продолжает обрабатывать оставшиеся события "dtmf end" для последней цифры ("DTMF end '0' received"):
"[2018-05-25 14:28:07] DTMF[21961][C-00002118]: channel.c:4040 __ast_read: DTMF end '0' received on SIP/Rostel-00002115, duration 275 ms
-- Call accepted by 172.19.10.10:4569 (format ulaw)
-- Format for call is (ulaw)
[2018-05-25 14:28:07] DTMF[21961][C-00002118]: channel.c:4040 __ast_read: DTMF end '0' received on SIP/Rostel-00002115, duration 275 ms
[2018-05-25 14:28:07] DTMF[21961][C-00002118]: channel.c:4067 __ast_read: DTMF begin emulation of '0' with duration 275 queued on SIP/Rostel-00002115
-- IAX2/MSK-20082 is ringing
-- IAX2/MSK-20082 is ringing
[2018-05-25 14:28:09] DTMF[21961][C-00002118]: channel.c:4204 __ast_read: DTMF end emulation of '0' queued on SIP/Rostel-00002115"
Почему это происходит - неизвестно. Необходимо проверить диалплан (особенно если он самописный), также можно попробовать изменить настройку в файле конфигурации sip.conf на "relaxdtmf=yes"."


relaxdtmf не помогает.
диалплан элементарный
Код: выделить все
[from-internal]

exten => user12,1,Answer()
exten => user12,n,NoOp(${CDR(src)})
exten => user12,n,NoOp(${CALLERIDNUM})
exten => user12,n,NoOp(${CALLERID(num)})
exten => user12,n,NoOp(${CALLERID(all)})
exten => user12,n,NoOp(${EXTEN})
exten => user12,n,Goto(ivr-k,s,1)

[ivr-k]

exten => s,1,Set(num=0)
exten => s,1,Answer()
exten => s,n,WaitExten(1)
exten => s,n(start),Background(/var/lib/asterisk/sounds/ivr/IVR_K)
exten => s,n,WaitExten(4)
exten => _5[0-4]XX,1,Dial(IAX2/SPB/${EXTEN})
exten => _55XX,1,Dial(IAX2/MSK/${EXTEN})
;exten => _5XXX,1,Set(num=$[${num} + 1])
;exten => _5XXX,n,Dial(SIP/${EXTEN})
;exten => _5XXX,n,Playback(vm-extension)
;exten => _5XXX,n,Playback(vm-isonphone)
;exten => _5XXX,n,Gotoif($[${num} < 2]?s,start)
;exten => _5XXX,n,Dial(IAX2/SPB,,m)
;exten => _XXXX,1,Set(num=$[${num} + 1])
;exten => _XXXX,n,Dial(SIP/${EXTEN})
;exten => _XXXX,n,Playback(privacy-incorrect)
;exten => _XXXX,n,Gotoif($[${num} < 2]?s,start)
;exten => _XXXX,n,Dial(IAX2/SPB,,m)
exten => t,1,Dial(IAX2/SPB,,m)
exten => i,1,Dial(IAX2/SPB/${EXTEN},,m)


Куда копать?
repp.sv
 
Сообщений: 30
Зарегистрирован: 03 май 2018, 11:53

Re: Дублирование DTMF

Сообщение ded » 28 май 2018, 17:51

Диалплан элементарный, и ошибки элементарные.
Честно говоря, исправлять чужой код (из четырёх строк!) - ужасно, неблагодарно. Рискую нарваться на поношение в мою сторону.
repp.sv писал(а):Получил ответ от службы поддержки Ростелекома.
Почему это происходит - неизвестно. Необходимо проверить диалплан (особенно если он самописный),


1) Согласно этим строчкам вы ждёте ввода внутреннего номера 1 секунду, потом транслируете ему IVR_K и ещё потом ждёте 4 секунды. Объясните зачем?
Код: выделить все
exten => s,1,Set(num=0)
exten => s,1,Answer()
exten => s,n,WaitExten(1)
exten => s,n(start),Background(/var/lib/asterisk/sounds/ivr/IVR_K)
exten => s,n,WaitExten(4)

2) Зачем вы приводите замаркированную часть кода? Которая взрывает мозг? Чтобы всем взорвать мозг?
;exten => _5XXX,1,Set(num=$[${num} + 1])
;exten => _5XXX,n,Dial(SIP/${EXTEN})
;exten => _5XXX,n,Playback(vm-extension)
;exten => _5XXX,n,Playback(vm-isonphone)
;exten => _5XXX,n,Gotoif($[${num} < 2]?s,start)
;exten => _5XXX,n,Dial(IAX2/SPB,,m)
;exten => _XXXX,1,Set(num=$[${num} + 1])
;exten => _XXXX,n,Dial(SIP/${EXTEN})
;exten => _XXXX,n,Playback(privacy-incorrect)
;exten => _XXXX,n,Gotoif($[${num} < 2]?s,start)
;exten => _XXXX,n,Dial(IAX2/SPB,,m)
Последний раз редактировалось ded 28 май 2018, 18:05, всего редактировалось 1 раз.
ded
 
Сообщений: 14203
Зарегистрирован: 26 авг 2010, 19:00

Re: Дублирование DTMF

Сообщение awsswa » 28 май 2018, 18:04

Значит не судьба ... меняйте оператора
платный суппорт по мере возможностей
awsswa
 
Сообщений: 2370
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Дублирование DTMF

Сообщение repp.sv » 28 май 2018, 18:05

ждёте ввода внутреннего номера 1 секунду

согласен мой косяк.
потом транслируете ему IVR_K и ещё потом ждёте 4 секунды

для того что бы клиент мог ввести внутренний номер.
repp.sv
 
Сообщений: 30
Зарегистрирован: 03 май 2018, 11:53

Re: Дублирование DTMF

Сообщение ded » 28 май 2018, 18:07

Сделайте всё правильно, и будет работать всё правильно.
ded
 
Сообщений: 14203
Зарегистрирован: 26 авг 2010, 19:00

Re: Дублирование DTMF

Сообщение repp.sv » 29 май 2018, 09:50

Для теста сделал диалплан.

Код: выделить все
exten => user12,n,Dial(IAX2/SPB,90,r)


цифры все равно дублируются и диалплан здесь не причем.
repp.sv
 
Сообщений: 30
Зарегистрирован: 03 май 2018, 11:53

Re: Дублирование DTMF

Сообщение ddkprog » 29 май 2018, 10:18

если вы поставили dtmf inbound
то тюнте на своей стороне определение цифр https://forum.asterisk.ru/viewtopic.php?f=3&t=6952
mindtmfgap=0
mindtmfduration=0
mindtmfinterval=100
dtmf=relax

патч кстати верните обратно

если ставите info или rfc2833 то теребите ростел, они детектят цифры
вы же как я понял перевели в inbound и теребите ростел, понятно что они к этому не имеют отношения
ddkprog
 

Re: Дублирование DTMF

Сообщение repp.sv » 29 май 2018, 13:08

Я не использую dongle.
У меня только SIP от провайдера.
repp.sv
 
Сообщений: 30
Зарегистрирован: 03 май 2018, 11:53

Re: Дублирование DTMF

Сообщение ddkprog » 29 май 2018, 13:14

а причем здесь донгл ?
у вас в настройках какой тип dtmf на пире ?
судя по логам у вас бежит dtmf inbound
хотя до этого фигурировал rfc2833
логи не полные и подача нужной инфы от вас никакая, разобраться что у вас там происходит может только телепат или вы
тогда вам лучше найти платную поддержку, потому что тратить время на обучения вас затратно

как совет, найдите в гугле какой то обучающий материал о всех видах dtmf и о том как они работают, может разберетесь
ddkprog
 

Пред.След.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

© 2008 — 2019 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH