Доброго времени суток. Столкнулся с такого рода проблемой: Нужно дозвониться с городской линии на городскую и после приветствия со стороны вызываемого абонента донабрать добавочный. Вроде бы все просто но... Создал экстеншен такого плана:
exten = _555,1,Dial(SIP/1111/212212,,M(dop^{EXTEN}))
exten = _555,n,Hangup()
[macro-dop]
exten => s,1,Wait(2)
exten => s,n,SendDTMF(${ARG1})
где:
555 - номер, который я набираю со своего телефона и он же является добавночным, который мне нужно набрать
SIP/1111 - городская лини подключенная через гранстрим
212212 - городской номер вызываемого абонента
Что происходит:
Астер звонит абоненту, ждет 2 секунды, шлет через DTMF добавочный и только после этого дозванивается, то есть на той стороне поднимают трубку только после того, как на моем астере отработал полностью экстеншен с макросом. Соответственно, дозвонившись, я слышу приветствие, но DTMF уже отработал до этого. Что бы было понятнее - если поставить Wait(30) то я слушаю гудки 30 сек, далее астер сразу же отправляет добавочный и только после этого я слышу приветствие. Не могу понять почему так происходит.
Заранее приношу свои извинения за сумбурное описание проблемы. Заранее благодарен за помощь!
Перебирая различные конструкции нашел рабочую:
exten = _555,1,Dial(SIP/1111/212212,,rTM(dop^{EXTEN}))
exten = _555,n,Hangup()
Всем спасибо!
Задан: 2013-05-17 15:59:15 +0400
Просмотрен: 705 раз
Обновлен: May 17 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
как шлюз догадается что на вызов ответили?
switch ( 2013-05-17 17:11:59 +0400 )редактироватьНа том "конце провода" многоканальная АТС, занято там не бывает и трубку бот берет сразу. Даю 2 секунды после набора номера подождать и набираю добавочный. Если бы можно было получить статус снятия трубки на том конце - было бы очень здорово, но на сколько мне известно астериск пока этого не умеет.
Egor ( 2013-05-17 17:59:13 +0400 )редактировать