Size: a a a

Asterisk Russian Community

2021 April 30

HR

Heliken Roman in Asterisk Russian Community
День добрый! Asterisk 16.9.0. pjsip + транк от провайдера.
Провайдер просит, когда абонент недоступен - отправлять Cause 20 (AST_CAUSE_SUBSCRIBER_ABSENT), однако сейчас, если юзер не зарегистрирован - отправляется Cause 3 (ACT_CAUSE_NO_ROUTE_DESTINATION).  В chan_sip отправлялось то, что надо. Куда копать можно/нужно?
источник

С(

Слон (кродёться)... in Asterisk Russian Community
Hangup(20)?
источник

HR

Heliken Roman in Asterisk Russian Community
не, всё равно отвечает cause 3
источник

Е

Евгений in Asterisk Russian Community
Покажите кусок диалплана, которым вы вызываете абонента
источник

Е

Евгений in Asterisk Russian Community
Хорошо бы пред вызовом endpoint делать DEVIСE_STATE, и если endpoint UNAVAILABLE, то Hangup(20).
Обычно это работает.

А если просто вызывать эндпоинт без проверок, то Asterisk грязно ругается в консоль и остальная часть диалплана может не сработать.
источник

HR

Heliken Roman in Asterisk Russian Community
exten => +375.,1,NoOp(Incoming...)
exten => +375.,n,Dial(PJSIP/Roman)
exten => +375.,n,Hangup(20)
источник

HR

Heliken Roman in Asterisk Russian Community
Самым простым способом :)
источник

Е

Евгений in Asterisk Russian Community
Потому и не работает)
источник

Е

Евгений in Asterisk Russian Community
Он до Hangup просто не доходит
источник

Е

Евгений in Asterisk Russian Community
Попробуйте хотя бы
exten => +375.,n,Dial(PJSIP/Roman,,g)
источник

AD

Andrey Davydov in Asterisk Russian Community
Ну или на exten => h уже с помощью ExecIf статусы выставлять
источник

HR

Heliken Roman in Asterisk Russian Community
Понял, сейчас попробую
источник

Е

Евгений in Asterisk Russian Community
Экстеншн h тоже уже не поможет, ведь соединение УЖЕ завершено. Оператор уже получил код завершения.
источник

HR

Heliken Roman in Asterisk Russian Community
Поставил g, всё равно cause 3
источник

AD

Andrey Davydov in Asterisk Russian Community
А, ну да, точно
источник

Е

Евгений in Asterisk Russian Community
@heliken сейчас пример скину
источник

HR

Heliken Roman in Asterisk Russian Community
res_pjsip.c:3534 ast_sip_create_dialog_uac: Endpoint 'Roman': Could not create dialog to invalid URI 'Roman'.  Is endpoint registered and reachable?
[Apr 30 11:54:39] ERROR[350210]: chan_pjsip.c:2667 request: Failed to create outgoing session to endpoint 'Roman'
[Apr 30 11:54:39] WARNING[350267][C-00000001]: app_dial.c:2576 dial_exec_full: Unable to create channel of type 'PJSIP' (cause 3 - No route to destination)

Вот так доподлинно отвечает
источник

HR

Heliken Roman in Asterisk Russian Community
Будет здорово, спасибо
источник

AD

Andrey Davydov in Asterisk Russian Community
источник

Е

Евгений in Asterisk Russian Community
exten => +375.,1,NoOp(Incoming...)
same => n,ExecIf($[ $[ "${DEVICE_STATE(PJSIP/Roman)}" = "UNKNOWN" ] | $[ "${DEVICE_STATE(PJSIP/Roman)}" = "INVALID" ] | $[ "${DEVICE_STATE(PJSIP/Roman)}" = "UNAVAILABLE" ] ]?Hangup(20))
exten => +375.,n,Dial(PJSIP/Roman)
exten => +375.,n,Hangup()
источник