VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Контекст голосовой почты внутри макроса

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
newuser
Сообщения: 52
Зарегистрирован: 23 сен 2014, 15:29

Контекст голосовой почты внутри макроса

Сообщение newuser »

Есть стандартный макрос звонка:
[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.
Или для каждой группы писать свой макрос, где жестко прописывать эти экстеншены?
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Контекст голосовой почты внутри макроса

Сообщение zzuz »

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

exten => 1234,1,Macro(stdexten,1234,sip/7960,ooopostavka)

exten => s-BUSY,1,ExecIF($[${EXISTS(${ARG3})}]?Voicemail(b${ARG1}@${ARG3}):Voicemail(b${ARG1})
Линия24 - Системы Массового Телефонного Обслуживания
newuser
Сообщения: 52
Зарегистрирован: 23 сен 2014, 15:29

Re: Контекст голосовой почты внутри макроса

Сообщение newuser »

Пока так и сделал, точнее уже немного переделал и разнес всех по разным контекстам и назвал их как в голосовой почте и третим аргументом передаю ${CONTEXT}.
Проблема при звонках между ними - из другого контекста. Инклюдом получается неверный контекст, сделал через exten => _1XX,1,Coto(ooopostavka,${EXTEN},1}.
Только намудрил где-то и при звонке во вне у меня в консоли начинается куча звонков мелькает.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Контекст голосовой почты внутри макроса

Сообщение zzuz »

Сочувствуем.
Линия24 - Системы Массового Телефонного Обслуживания
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH