Страница 1 из 1

Статус абонента по PJSIP

Добавлено: 29 дек 2014, 19:46
Alexey_Astashov
Существует конекст
[macro-dialout-one-predial-hook]
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(abonent-razgovarivaet&zhdite-soedineniya))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Playback(abonent-razgovarivaet&zhdite-soedineniya))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Set(D_OPTIONS=Ttm))

идеально работает при использовании chan_sip, но если используется chan_pjsip - Asterisk не возвращает текущий статус абонента
как выяснять состояние PJSIP абонентов, ибо теперь для PJSIP абонентов идет ответ:

Код: Выделить всё

-- Executing [s@macro-dialout-one-predial-hook:1] NoOp("SIP/011002-000000a4", "DEVICE STATE - INVALID") in new stack
хотя собственно core show hints показывает:
Код:

Код: Выделить всё

1704@ext-local      : PJSIP/1704&Custom:DN  State:Ringing         Presence:                Watchers  0