Контекст голосовой почты внутри макроса
Добавлено: 25 сен 2014, 20:02
Есть стандартный макрос звонка:
[macro-stdexten];
; ${ARG1} - Екстеншен (мы можем использовать также значение переменной ${MACRO_EXTEN} )
; ${ARG2} - Устройство (устройства) для совершения вызова
;
; Вызов через заданный интерфейс, ждем максимум 20 секунд
exten => s,1,Dial(${ARG2},20)
; Совершение перехода в зависимости от результата вызова (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s,2,Goto(s-${DIALSTATUS},1)
; Если абонент недоступен, перенаправляем вызывающего в голосовую почту с анонсом о недоступности абонента
exten => s-NOANSWER,1,Voicemail(u${ARG1})
; Если вызывающий абонент нажал #, возвращаемся в начало
exten => s-NOANSWER,2,Goto(default,s,1)
; Если абонент занят, перенаправляем вызывающего в голосовую почту с анонсом о занятости абонента
exten => s-BUSY,1,Voicemail(b${ARG1})
; Если вызывающий абонент нажал #, возвращаемся в начало
exten => s-BUSY,2,Goto(default,s,1)
; Обрабатываем все остальные ситуации, как ситуацию, когда абонент не отвечает
exten => _s-.,1,Goto(s-NOANSWER,1)
; Если вызывающий абонент нажал *, перенаправляем вызывающего в систему прослушивания голосовых сообщений
exten => a,1,VoicemailMain(${ARG1})
Для вызова этого макроса, Вам необходимо сделать примерно такое:
exten => 1234,1,Macro(stdexten,1234,sip/7960)
Вопрос:
Как подставить экстеншен голосовой почты в VoiceMail, т. к. аргумент ARG1 естественно передает только, например 101 и если номер в default, то конечно находит,
а если ящик в другом экстеншене, то, логично - не находит. как получить 101@default, 201@ooopostavka, 301@oaopokupka.
Или для каждой группы писать свой макрос, где жестко прописывать эти экстеншены?
[macro-stdexten];
; ${ARG1} - Екстеншен (мы можем использовать также значение переменной ${MACRO_EXTEN} )
; ${ARG2} - Устройство (устройства) для совершения вызова
;
; Вызов через заданный интерфейс, ждем максимум 20 секунд
exten => s,1,Dial(${ARG2},20)
; Совершение перехода в зависимости от результата вызова (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s,2,Goto(s-${DIALSTATUS},1)
; Если абонент недоступен, перенаправляем вызывающего в голосовую почту с анонсом о недоступности абонента
exten => s-NOANSWER,1,Voicemail(u${ARG1})
; Если вызывающий абонент нажал #, возвращаемся в начало
exten => s-NOANSWER,2,Goto(default,s,1)
; Если абонент занят, перенаправляем вызывающего в голосовую почту с анонсом о занятости абонента
exten => s-BUSY,1,Voicemail(b${ARG1})
; Если вызывающий абонент нажал #, возвращаемся в начало
exten => s-BUSY,2,Goto(default,s,1)
; Обрабатываем все остальные ситуации, как ситуацию, когда абонент не отвечает
exten => _s-.,1,Goto(s-NOANSWER,1)
; Если вызывающий абонент нажал *, перенаправляем вызывающего в систему прослушивания голосовых сообщений
exten => a,1,VoicemailMain(${ARG1})
Для вызова этого макроса, Вам необходимо сделать примерно такое:
exten => 1234,1,Macro(stdexten,1234,sip/7960)
Вопрос:
Как подставить экстеншен голосовой почты в VoiceMail, т. к. аргумент ARG1 естественно передает только, например 101 и если номер в default, то конечно находит,
а если ящик в другом экстеншене, то, логично - не находит. как получить 101@default, 201@ooopostavka, 301@oaopokupka.
Или для каждой группы писать свой макрос, где жестко прописывать эти экстеншены?