Это тоже хотел сделать. Спасибо за решение.
Первостепенная задача заставить * работать так как надо.
По сути, нужно оповещение и dial одновременно...
предполагал что return() верну исполнение диалплана в macro-dial-one, но gosub отменяет macro.ded писал(а):как описано кодом, так и выпрыгивает. А куда ему надо? Разве понятно?chardisdze писал(а):Выпрыгивает из macro-dial-one после gosub
Код: Выделить всё
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE | "RINGINUSE""]?Macro(play-and-set),s,1)
[macro-play-and-set]
exten => s,1,Set(__D_OPTIONS=Ttm))
exten => s,n,Playback(custom/V-dannyi-moment-sotrudnik))
Код: Выделить всё
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE | "RINGINUSE""]?Macro(play-and-set),s,1)
[macro-play-and-set]
exten => s,1,Set(__D_OPTIONS=Ttm))
exten => s,n,Playback(custom/V-dannyi-moment-sotrudnik))
exten => s,n,Hangup()
playback и dial одновременно делается вызовом макроса в команде Dial (буква М)вызов - определение статуса девайса - playback и dial одновременно (если условие совпало); если не совпало - просто dial.