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

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

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

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

Сообщение Zavr2008 »

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

Читать Астериск Будущее Телефонии.. Там всего одну главу перечитать надо..
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
repp.sv
Сообщения: 30
Зарегистрирован: 03 май 2018, 10:53

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

Сообщение repp.sv »

Получил ответ от службы поддержки Ростелекома.
Как видно, передача цифр в 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)
Куда копать?
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Диалплан элементарный, и ошибки элементарные.
Честно говоря, исправлять чужой код (из четырёх строк!) - ужасно, неблагодарно. Рискую нарваться на поношение в мою сторону.
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, 17:05, всего редактировалось 1 раз.
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

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

Сообщение awsswa »

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

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

Сообщение repp.sv »

ждёте ввода внутреннего номера 1 секунду
согласен мой косяк.
потом транслируете ему IVR_K и ещё потом ждёте 4 секунды
для того что бы клиент мог ввести внутренний номер.
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Сделайте всё правильно, и будет работать всё правильно.
repp.sv
Сообщения: 30
Зарегистрирован: 03 май 2018, 10:53

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

Сообщение repp.sv »

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

Код: Выделить всё

exten => user12,n,Dial(IAX2/SPB,90,r)
цифры все равно дублируются и диалплан здесь не причем.
ddkprog

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

Сообщение ddkprog »

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

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

если ставите info или rfc2833 то теребите ростел, они детектят цифры
вы же как я понял перевели в inbound и теребите ростел, понятно что они к этому не имеют отношения
repp.sv
Сообщения: 30
Зарегистрирован: 03 май 2018, 10:53

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

Сообщение repp.sv »

Я не использую dongle.
У меня только SIP от провайдера.
ddkprog

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

Сообщение ddkprog »

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

как совет, найдите в гугле какой то обучающий материал о всех видах dtmf и о том как они работают, может разберетесь
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH