*CLI> core show version
Asterisk 1.6.2.9-2+squeeze2 built by buildd @ murphy on a i686 running Linux
Подскажите как получить статус IAX пира?
с SIP все понятно:
Set(EXT_STATE=${DEVICE_STATE(SIP/${EXTEN})})
а вот с IAX2/${EXTEN} не прокатывает. опцию 'j' из Dial() убрали. Чего-то не соображу как теперь занятость IAX2 определять.
поставить qualify=yes
и должно то что вы используете работать.
а еще есть функция IAXPEER http://voip.rus.net/tiki-index.php?page=Asterisk+func+iaxpeer
но оно тоже работает только с включенным qualify=yes
Вот как-то так получилось, огород конечно, но работает. Возможны косяки, ибо я еще слабоват в *. Тестирую пока, но факс с внешней линии получен успешно и вызов был возвращен. Единственное условие - безусловный перевод нужно использовать.
[macro-fax_in_6301]
exten => s,1,NoOp(Call in channel: ${CHANNEL} from ${ARG1})
exten => s,n,StopPlayTones
exten => s,n,Background(message_25); голос: "Для отправки факса жмите старт"
exten => s,n,Goto(s-try0,1)
exten => s-try0,1,Dial(IAX2/iaxmodem5/${CALLERID(num)},10,g)
exten => s-try0,n,GotoIF($["${DIALSTATUS}" = "ANSWER"]?s-normal,1:s-try1,1)
exten => s-try1,1,Dial(IAX2/iaxmodem4/${CALLERID(num)},10,g)
exten => s-try1,n,GotoIF($["${DIALSTATUS}" = "ANSWER"]?s-normal,1:dialstatus,s-${DIALSTATUS},1)
exten => s-normal,1,Playback(message_27); голос: "Прием факса окончен, спасибо"
;в ${ARG1} передается внутренний номер абонента, сделавшего перевод на факс
exten => s-normal,n,ChannelRedirect(${CHANNEL},dst_local,${ARG1},1)
exten => _s.,n,Hangup
для IAX-пиров я в DEVICE_STATE использую Local/EXTEN@context
Задан: 2011-09-06 15:18:58 +0400
Просмотрен: 1,580 раз
Обновлен: May 03 '16
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.