Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Не передается DTMF в FXO (Dial, SendDTMF)

1

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

удалить закрыть спам изменить тег редактировать

спросил 2011-12-29 16:38:00 +0400

morph26 Gravatar morph26
11 1 3

Comments

Вызов то отвечен?

zzuz ( 2011-12-29 19:25:48 +0400 )редактировать

немного не понял :( поясните пожалуйста.

morph26 ( 2011-12-29 23:38:18 +0400 )редактировать

Поясняю. Отвечен ли вызов ? Куда вы слать dtmf пытаетесь? Ваш шлюз отвечает на вызов при попытке набрать номер , вы шлёте сигналы , когда шлюз только сам начинает набирать ваш ${EXTEN}. Поправьте , если я неправ.

zzuz ( 2011-12-29 23:59:51 +0400 )редактировать

dtmf пытаюсь слать АТСке, чтобы она набрала номер. Т.е. если я вручную набираю 0, (exten => 0,1,Dial(SIP/999/${EXTEN})) слышу гудок аналоговой АТС и набираю dtmfом любой номер аналоговой АТС - дозваниваюсь. А если хочу, чтобы это произошло автоматом - набрал сразу номер (без 0) dtmf не отсылается, после набора я слышу только гудок аналоговой АТС.

morph26 ( 2011-12-30 08:02:24 +0400 )редактировать

чёт я тоже не понимаю проблемы))) я делал похожую связку и не было никаких проблем! exten => _2XXX,1,Dial(SIP/trunkname/${EXTEN}) тут скорее всего проблема не в дтмф а правильном диалплане

DJs3000 ( 2012-01-04 23:21:53 +0400 )редактировать

4 Ответа

0

надо еще сказать в консоли

dtmf debug on
ссылка удалить спам редактировать

ответил 2011-12-29 21:57:57 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

зачем, если этим логгер занимается?

zzuz ( 2011-12-29 22:05:33 +0400 )редактировать

да еще и asterisk 1.8, который на dtmf set debug on, dtmf debug on, core dtmf set debug on ругается что такой команды нет. Хотя cat /var/log/asterisk/messages |grep DTMF дает некий результат, отображается только то,что передает софтверный телефон

morph26 ( 2011-12-29 23:39:32 +0400 )редактировать
0

Разобрался - то ли у шлюза кривой DTMF, то ли АТС хитрая. Включил syslog на шлюзе - смотрю номер на PSTN пытается набирать. Pulse\UK в настройках шлюза помог. Хотя с обычного ТА или софтфоном набирается тоном норм. И пробовал разный DTMF включать на шлюзе, и громкость менял... В общем всем спасибо и новым годом!

ссылка удалить спам редактировать

ответил 2012-01-03 18:26:36 +0400

morph26 Gravatar morph26
11 1 3

обновил 2012-01-03 18:41:42 +0400

0

Может быть, я ошибаюсь, но по моему должно быть так:

Dial(SIP/${EXTEN}@999,60,rt)

ссылка удалить спам редактировать

ответил 2012-01-03 22:50:29 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

Comments

Вы поймете , ошибаетесь или нет , если сами себе ответите на вопрос "А в чем разница?"

zzuz ( 2012-01-04 00:58:34 +0400 )редактировать
  1. Впертом случае «Звоню с X-Lite на 0, добираю нужный номер 2222(например) - все работает.» DTMF rfc-2833 генерит софтфон.
  2. Во втором случае это делает Asterisk. В этом же случае DTMF будет генерировать шлюз. В котором должны быть правильные настройки http://3cx.com.ua/index.php?q=node/289 Или я ошибаюсь???
bolshoy_plohish ( 2012-01-04 12:17:23 +0400 )редактировать

Вы, Уважаемый , ошибаетесь уже на том месте , когда связываете вид строки Dial с посылом DTMF . Читать документацию иногда полезно. Советую.

zzuz ( 2012-01-04 13:53:00 +0400 )редактировать

А выдержкой из документации слабо поделится? ;-)

bolshoy_plohish ( 2012-01-04 14:10:20 +0400 )редактировать

да конечно, extensions.conf.sample

zzuz ( 2012-01-04 14:25:31 +0400 )редактировать

А вот это вы читали? http://ru.wikipedia.org/wiki/SIP Почитайте внимательнее! Номер можно передать в стеке SIP протокола шлюзу, а можно пихать напрямую через RTP по средствам подачи DTMF сигнала!

bolshoy_plohish ( 2012-01-04 14:41:30 +0400 )редактировать

Dial(SIP/${EXTEN}@999,60,rt) - где в этой записи намек на DTMF ? И вообще причем тут DTMF ?

zzuz ( 2012-01-04 14:59:44 +0400 )редактировать

Вот и я про тоже!!! Зачем вообще в данном случае нужен DTMF??? "Dial(SIP/${EXTEN}@999,60,rt) В этом же случае DTMF будет генерировать шлюз. В котором должны быть правильные настройки""- Где здесь поро DTMF в Dial() написано??? Вообще то это стандартная SIP адресация!!

bolshoy_plohish ( 2012-01-04 15:46:41 +0400 )редактировать

А если уж хочется DTMF сунуть , то в SIP транке нужно dtmfmode=rfc2833 прописать. И в Dial() Разрешитьть звонящему пользователю перевести звонок Наверное так: Dial(SIP/999/${EXTEN},T)

bolshoy_plohish ( 2012-01-04 15:48:52 +0400 )редактировать

Пичаль, такая пичаль!

zzuz ( 2012-01-04 21:09:12 +0400 )редактировать
0
ссылка удалить спам редактировать

ответил 2012-01-04 09:59:14 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

обновил 2012-01-04 11:39:19 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-12-29 16:38:00 +0400

Просмотрен: 2,486 раз

Обновлен: Jan 04 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.