Size: a a a

Asterisk Russian Community

2021 May 02

Е

Евгений in Asterisk Russian Community
Посоветуйте, как проверить статус пира на удалённом сервере Asterisk из диаплана другого Asterisk?
Пока сделал так, и это работает, но хотелось бы более красивого решения. Вызовов не много.

same=> n,Set(status_exten=${SHELL(curl --digest -u asterisk:password "http://192.168.88.13:8088/asterisk/arawman?action=ExtensionState&Exten=${EXTEN}&Context=dialout"  2>&1 | grep "StatusText:" | cut -d " " -f 2 |  tr -s '\r\n' ' ')})
источник

DQ

Dmitriy Q in Asterisk Russian Community
а если через хинты? в пжсип вроде стало возможным, но пока не тестил
http://atsip.ru/pomoshch/nastrojka-asterisk/362-udalennye-blf-s-ispolzovaniem-pjsip
источник

Е

Евгений in Asterisk Russian Community
Там старые станции, Asterisk 11.
источник
2021 May 03

HR

Heliken Roman in Asterisk Russian Community
День добрый! Возник вопрос :) Поставил экзес, вроде всё работало, ошибка отдавалась, но перестали идти входящие. В консоле стал видеть следующее:
 Setting global variable 'SIPDOMAIN' to '10.179.202.16'
   -- Executing [+375@from-btk:1] NoOp("PJSIP/beltelecom-00000000", "Incoming to 016") in new stack
   -- Executing [+375@from-btk:2] ExecIf("PJSIP/beltelecom-00000000", "INVALID?Hangup(20)") in new stack
 == Spawn extension (from-btk, +375, 2) exited non-zero on 'PJSIP/beltelecom-00000000'
Подумал, что раз в правиле есть инвалид - убрал, сделал строчку такой:
same => n,ExecIf($[ $[ "${DEVICE_STATE(PJSIP/Roman" = "UNKNOWN")} ] | $[ "${DEVICE_STATE(PJSIP/Roman" = "UNAVAILABLE")} ] ]?Hangup(20))
Ребутнул астериск, и всё равно, при попытке входящего вызова
 Setting global variable 'SIPDOMAIN' to '10.179.202.16'
   -- Executing [+375@from-btk:1] NoOp("PJSIP/beltelecom-00000000", "Incoming to 016") in new stack
   -- Executing [+375@from-btk:2] ExecIf("PJSIP/beltelecom-00000000", "INVALID?Hangup(20)") in new stack
 == Spawn extension (from-btk, +375, 2) exited non-zero on 'PJSIP/beltelecom-00000001'
Может где-то какие-то кэши есть у астериска? останавливал и через killall навсякий, не помогло)
Полный набор выглядит так:
exten => +375,1,NoOp(Incoming to 016)
same => n,ExecIf($[ $[ "${DEVICE_STATE(PJSIP/Roman" = "UNKNOWN")} ] | $[ "${DEVICE_STATE(PJSIP/Roman" = "UNAVAILABLE")} ] ]?Hangup(20))
same => n,Dial(PJSIP/Roman,,g)
same => n,Hangup()
источник

O

Oleg in Asterisk Russian Community
А зачем вообще hangup 20?
источник

Е

Евгений in Asterisk Russian Community
@heliken скобки потеряли.
Я изменённое высылал, да и вы сказали, нашли их)
источник

HR

Heliken Roman in Asterisk Russian Community
Требование оператора
источник

HR

Heliken Roman in Asterisk Russian Community
Да, это сюда скобки не те вставились :) облажался, именно копипастой щас на всякий проверил)
источник

O

Oleg in Asterisk Russian Community
Я не буду утверждать, но вроде бы лучше после dial проверить код выхода и если он CONGESTION и , CHANUNAVAIL, то hangup 20


https://www.voip-info.org/asterisk-variable-dialstatus/
источник

Е

Евгений in Asterisk Russian Community
Вы вызываете внутренний номер Roman?
источник

N

Nick in Asterisk Russian Community
А почему у вас exten => +375,1... а не exten => +375.,1... ?
источник

HR

Heliken Roman in Asterisk Russian Community
exten => +375,1,NoOp(Incoming to 016)
same => n,ExecIf($[ $[ "${DEVICE_STATE(PJSIP/Roman)}" = "UNKNOWN" ] | $[ "${DEVICE_STATE(PJSIP/Roman)}" = "INVALID" ] | $[ "${DEVICE_STATE(PJSIP/Roman)}" = "UNAVAILABLE" ] ]?Hangup(20))
same => n,Dial(PJSIP/Roman,,g)
same => n,Hangup
вот. Всё так же на execif hangup делает и всё. Убираю инвалид - hangup
источник

N

Nick in Asterisk Russian Community
Вызываете номер +375?
источник

HR

Heliken Roman in Asterisk Russian Community
Вхоядщий номер +375
источник

Е

Евгений in Asterisk Russian Community
Подчёркивание
источник

HR

Heliken Roman in Asterisk Russian Community
Да,
источник

HR

Heliken Roman in Asterisk Russian Community
Если закоментить правило - входящие сразу идут
источник

O

Oleg in Asterisk Russian Community
^^^
источник

HR

Heliken Roman in Asterisk Russian Community
Да, читаю
источник

O

Oleg in Asterisk Russian Community
Ну и busy вероятно тоже соответствующий код надо передать
источник