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

определить статус IAX пира, как?

0

*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 определять.

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

спросил 2011-09-06 15:18:58 +0400

aleokos Gravatar aleokos
41 9 3 10

Comments

и что же такого пишет ${DEVICE_STATE(IAX2/peer)} ? что за телефон на таком пире? zzuz ( 2011-09-06 16:20:35 +0400 )редактировать
UNKNOWN пишет на любое состояние. aleokos ( 2011-09-06 16:41:15 +0400 )редактировать
софт модем на этом пире aleokos ( 2011-09-06 16:41:38 +0400 )редактировать
и qualify стоит у пира? zzuz ( 2011-09-06 17:00:37 +0400 )редактировать
'123' => 1. Noop(${DEVICE_STATE(IAX2/line24support)}) . при звонке "originate Local/123@test application noop" получаем NoOp("Local/123@test-90dd;2", "NOT_INUSE"). Нормуль , как впринципе и всегда. zzuz ( 2011-09-06 17:07:02 +0400 )редактировать
same => n,NoOp(IAX2/iaxmodem0 has state ${DEVICE_STATE(IAX2/iaxmodem0)}). получаю NoOp("SIP/1111-00000306", "IAX2/iaxmodem0 has state UNKNOWN"). qualify=yes aleokos ( 2011-09-07 08:11:16 +0400 )редактировать
iax show peers ? zzuz ( 2011-09-07 11:21:46 +0400 )редактировать
iax2 show peers Name/Username Host Mask Port Status iaxmodem0 127.0.0.1 (D) 255.255.255.255 4570 OK (3 ms) 1 iax2 peers [1 online, 0 offline, 0 unmonitored] aleokos ( 2011-09-07 11:26:18 +0400 )редактировать
Есть такое подозрение , что iaxmodem просто не умеет отдавать DEVSTATE . spandsp какой версии при компиллировании использовался (хотя думаю тут мало чем поможет это знание). Как вариант попробывать прописать в host= адрес , вместо dynamic . zzuz ( 2011-09-07 12:36:52 +0400 )редактировать
возможно, потуги с chanisavail также не привели ни к чему хорошему, замечено, что после проверки пира, он еще около 10 секунд занят. т.е. после проверки нужно ждать 10 сек. для совершения звонка, что никуда не годится. Полагаю ничего не остается, как городить огород с обработкой ${DIALSTATUS}. aleokos ( 2011-09-07 15:14:28 +0400 )редактировать
Всё конечно прикольно , а зачем для iaxmodem вообще статус определять? zzuz ( 2011-09-07 15:18:36 +0400 )редактировать
да пул из факсов хочу сделать, с голосом до и после приема, а также с редиректом обратно на екстеншн после приема aleokos ( 2011-09-07 15:26:53 +0400 )редактировать
То есть после приема звонка и трансфера на iaxmodem хотите отправить факс , да еще и вернуть вызов обратно? Оптимистично) Но даже такие цели не раскрывают причин необходимости в qualify . hylafax и так в очередь факсы запихивает. Ведь iaxmodem не факс-машина и не умеет факсы слать, это как бы модем , как никак. zzuz ( 2011-09-07 16:51:03 +0400 )редактировать
рекомендую вместо пула модемов использовать ReceiveFax. проблема отпадет сама собой. но голос после приема т38 в * это фантастика. если добьетесь, выложите код. meral ( 2011-09-07 21:16:02 +0400 )редактировать
а как же параметр 'g' в Dial()? он-то как раз и возвращает вызов обратно в диалплан, а затем ChannelRedirect. Похожее реализовано в astpbx но там на * 1.4, а у меня 1.6 и нет параметра 'j' а без него не отрабатывается переход по "занято". aleokos ( 2011-09-08 07:56:32 +0400 )редактировать

3 Ответа

1

поставить qualify=yes

и должно то что вы используете работать.

а еще есть функция IAXPEER http://voip.rus.net/tiki-index.php?page=Asterisk+func+iaxpeer

но оно тоже работает только с включенным qualify=yes

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

ответил 2011-09-07 05:21:10 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

Comments

да, согласен я так делал, и действительно работает, вот только этот вариант определяет доступность канала, но никак не его статус. aleokos ( 2011-09-07 08:03:25 +0400 )редактировать
ну тогда для начала уточните что вы под статусом понимаете meral ( 2011-09-07 21:15:11 +0400 )редактировать
Человек видимо не до конца понял , что именно выполняет chanisavail zzuz ( 2011-09-08 00:00:17 +0400 )редактировать
потуги с chanisavail также не привели ни к чему хорошему, замечено, что после проверки пира, он еще около 10 секунд занят. т.е. после проверки нужно ждать 10 сек. для совершения звонка, что никуда не годится. aleokos ( 2011-09-08 07:57:36 +0400 )редактировать
0

Вот как-то так получилось, огород конечно, но работает. Возможны косяки, ибо я еще слабоват в *. Тестирую пока, но факс с внешней линии получен успешно и вызов был возвращен. Единственное условие - безусловный перевод нужно использовать.

[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
ссылка удалить спам редактировать

ответил 2011-09-08 10:22:09 +0400

aleokos Gravatar aleokos
41 9 3 10
0

для IAX-пиров я в DEVICE_STATE использую Local/EXTEN@context

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

ответил 2016-05-03 10:00:18 +0400

lsconst Gravatar lsconst
1

Ваш ответ

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-09-06 15:18:58 +0400

Просмотрен: 864 раз

Обновлен: May 03

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