Asterisk 1.8.8.0-1digium1~squeeze. SIP телефоны X-Lite. Шлюз DLink DVG-7111. FXO подключен к ведомственной АТС. АТС поддерживает тональный набор.
Работает вручную:
exten => 0,1,Dial(SIP/999/${EXTEN})
exten => 0,n,Hangup()
Звоню с X-Lite на 0, добираю нужный номер 2222(например) - все работает.
Не работает автоматом, звоню 2222(например) - слышу гудок АТС: Пробовал так:
exten => _2XXX,1,Dial(SIP/999/${EXTEN},,D(${EXTEN}))
exten => _2XXX,n,Hangup()
И вот так:
[macro-sendnum]
exten => s,1,Wait(3) ; ждет 3 сек, чтобы донабрать внутренний номер
exten => s,n,SendDTMF(${ARG1})
[dp1]
exten => _2XXX,1,Dial(SIP/999/${EXTEN},,M(sendnum^${EXTEN}))
exten => _2XXX,n,Hangup()
Игрался с dtmfmode = rfc2833 relaxdtmf = yes не помогает, такое ощущение, что D или SendDTMF не передаются ничего или передают лабуду.
Лог макро:
-- Executing [s@macro-sendnum:1] Wait("SIP/999-00000001", "3") in new stack
[Dec 29 16:31:37] DEBUG[4920]: app_macro.c:435 _macro_exec: Executed application: Wait
[Dec 29 16:31:37] DEBUG[4920]: pbx.c:4100 pbx_extension_helper: Launching 'SendDTMF'
-- Executing [s@macro-sendnum:2] SendDTMF("SIP/999-00000001", "2335") in new stack
[Dec 29 16:31:38] DEBUG[4920]: app_macro.c:435 _macro_exec: Executed application: SendDTMF
[Dec 29 16:31:38] DEBUG[4920]: app_dial.c:2595 dial_exec_full: Macro exited with status 0
А вот про DTMF не слово в логах, хоть и console => notice,warning,error,debug,verbose,dtmf
надо еще сказать в консоли
dtmf debug on
Разобрался - то ли у шлюза кривой DTMF, то ли АТС хитрая. Включил syslog на шлюзе - смотрю номер на PSTN пытается набирать. Pulse\UK в настройках шлюза помог. Хотя с обычного ТА или софтфоном набирается тоном норм. И пробовал разный DTMF включать на шлюзе, и громкость менял... В общем всем спасибо и новым годом!
Попробуй dtmfmode=rfc2833 Параметр конфигурации SIP клиентов: DTMFmode
Может быть, я ошибаюсь, но по моему должно быть так:
Dial(SIP/${EXTEN}@999,60,rt)
А вот это вы читали? http://ru.wikipedia.org/wiki/SIP Почитайте внимательнее! Номер можно передать в стеке SIP протокола шлюзу, а можно пихать напрямую через RTP по средствам подачи DTMF сигнала!
bolshoy_plohish (Jan 4 '12)editВот и я про тоже!!! Зачем вообще в данном случае нужен DTMF??? "Dial(SIP/${EXTEN}@999,60,rt) В этом же случае DTMF будет генерировать шлюз. В котором должны быть правильные настройки""- Где здесь поро DTMF в Dial() написано??? Вообще то это стандартная SIP адресация!!
bolshoy_plohish (Jan 4 '12)editА если уж хочется DTMF сунуть , то в SIP транке нужно dtmfmode=rfc2833 прописать. И в Dial() Разрешитьть звонящему пользователю перевести звонок Наверное так: Dial(SIP/999/${EXTEN},T)
bolshoy_plohish (Jan 4 '12)editЗадан: Dec 29 '11
Просмотрен: 2,532 раз
Обновлен: Jan 04 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Вызов то отвечен?
zzuz (Dec 29 '11)editнемного не понял :( поясните пожалуйста.
morph26 (Dec 29 '11)editПоясняю. Отвечен ли вызов ? Куда вы слать dtmf пытаетесь? Ваш шлюз отвечает на вызов при попытке набрать номер , вы шлёте сигналы , когда шлюз только сам начинает набирать ваш ${EXTEN}. Поправьте , если я неправ.
zzuz (Dec 29 '11)editdtmf пытаюсь слать АТСке, чтобы она набрала номер. Т.е. если я вручную набираю 0, (exten => 0,1,Dial(SIP/999/${EXTEN})) слышу гудок аналоговой АТС и набираю dtmfом любой номер аналоговой АТС - дозваниваюсь. А если хочу, чтобы это произошло автоматом - набрал сразу номер (без 0) dtmf не отсылается, после набора я слышу только гудок аналоговой АТС.
morph26 (Dec 30 '11)editчёт я тоже не понимаю проблемы))) я делал похожую связку и не было никаких проблем! exten => _2XXX,1,Dial(SIP/trunkname/${EXTEN}) тут скорее всего проблема не в дтмф а правильном диалплане
DJs3000 (Jan 4 '12)edit