[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
Код:
Код: Выделить всё
1704@ext-local : PJSIP/1704&Custom:DN State:Ringing Presence: Watchers 0