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

Как узнать статус extansion на другом сервере asterisk

0

Всем добрый день.

Имеется два сервера asterisk(Elastix), соединенные между собой IAX транком. Если звоним внутри одного сервера, то при вызове проверяем статус extansion с помощью DEVICE_STATE:

[macro-check-number]
exten => s,1,NoOp(check status on-line for number ${ARG1})
exten => s,n,Set(devst=${DEVICE_STATE(SIP/${ARG1})})
exten => s,n,ExecIf($["${devst}" = "INUSE"]?Playback(custom/1))
exten => s,n,NoOp(Exit from macro-check-number)

Если абонент занят (INUSE), то говорим что абонент занят и дальше идет гудок. Сделано специально т.к. у абонентов на аппаратах несолько линий (включен Call Waiting).

Но если я звоню на соседний asterisk, то почему то в поле DEVICE_STATE всегда прилетает INVALID:

-- Executing [133@from-internal:1] Macro("SIP/299-00000062", "check-number,133") in new stack
    -- Executing [s@macro-check-number:1] NoOp("SIP/299-00000062", "check status on-line for number 133") in new stack
    -- Executing [s@macro-check-number:2] Set("SIP/299-00000062", "devst=INVALID") in new stack
    -- Executing [s@macro-check-number:3] ExecIf("SIP/299-00000062", "0?Playback(custom/SP)") in new stack
    -- Executing [s@macro-check-number:4] NoOp("SIP/299-00000062", "Exit from macro-check-number") in new stack

Как мне сделать, что бы прилетал реальный статус?

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

спросил 2015-08-22 20:48:12 +0400

Chelovechegggggg Gravatar Chelovechegggggg
1 2 1

Comments

Идея с передачей инфы в Sip header звучит заманчиво. Может кто-нибудь порадует парочкой примеров?

Chelovechegggggg ( 2015-08-25 20:17:49 +0400 )редактировать

3 Ответа

0

В качестве простого костыля можно с одного астера на другой передавать инфу в Sip header, например в виде доп звонка :)

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

ответил 2015-08-24 12:57:20 +0400

Zavr2008 Gravatar Zavr2008 flag of Russian Federation
2685 11 9 37
http://mh.otx.ru/

обновил 2015-08-24 13:40:57 +0400

Comments

sip header в направлении ingress не работает. ему то надо с другого астериска получить инфу.

meral ( 2015-08-24 13:30:24 +0400 )редактировать

Dial перед основным звонком на какой-либо виртульный экстен с LOCAL, там и добавить. Мы делали разок уже подобное..

Zavr2008 ( 2015-08-24 13:42:13 +0400 )редактировать

в другую сторну sipheader не идет. или вы предлагаете завернуть звонок обратно чтоб получить инфу? ну тогда вы очень большие извращенцы

meral ( 2015-08-24 13:44:16 +0400 )редактировать

зачем это все если можно просто в том звонке который вы используете для sipheader сразу соединить с екстеншеном если он там есть?

meral ( 2015-08-24 13:45:08 +0400 )редактировать

meral, задачи разные есть. Что в 1.4, что в 1.6 - нет distributed presense..

Zavr2008 ( 2015-08-31 13:00:14 +0400 )редактировать

есть, через джаббер.

meral ( 2015-08-31 13:00:39 +0400 )редактировать
0
ссылка удалить спам редактировать

ответил 2015-08-23 12:16:57 +0400

virus_net Gravatar virus_net flag of Russian Federation
277 1 5
http://www.mega-net.ru/
0

самый простой вариант - позвонить.

также можно написать свой dev_state или использовать джабер и его стейт.

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

ответил 2015-08-23 11:21:45 +0400

meral Gravatar meral flag of Ukraine
21228 24 19 169
http://pro-sip.net/

Ваш ответ

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 ленту новостей

Статистика

Задан: 2015-08-22 20:48:12 +0400

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

Обновлен: Aug 24 '15

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