Пользуемся оповещением о занятости абонента в таком виде:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[macro-dialout-one-predial-hook]
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,MacroExit()
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,MacroExit()
Требует доработки по использованию двух аргументов - сделаю
Кривовато конечно, но... Работает.
Проблемка в том, что если во время проигрывания файла звонящему, звонящий положит трубку до окончания файла, то у абонента которому звонили не отобразиться пропущенный вызов.
Собственно вопрос: можно ли в execif запускать два приложения одновременно?
типа
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[macro-dialout-one-predial-hook]
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))|Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))exten => s,n,MacroExit()
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))|Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))exten => s,n,MacroExit()
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[macro-dialout-one-predial-hook]
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))&Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))exten => s,n,MacroExit()
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/V-dannyi-moment-sotrudnik))&Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))exten => s,n,MacroExit()
Или нужно скрипт мастрячить?
Не кидайтесь тапками!!! Направьте в нужном направлении, плиз