Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / отдать IVR вызываемой стороне

отдать IVR вызываемой стороне

Способы отдачи IVR вызываемой стороне
1 2>
Откуда: UA
Сообщений: 11

отдать IVR вызываемой стороне

Возникла задача когда необходимо передать IVR вызываемому абоненту. И если с управлением конференцией звонящим абонентов все понятно, то здесь не понятно совсем.

Как работает сейчас

ш1-отрабатывает CallBack на мобильный и входит чел. который впоследствии будет вызывающей стороной
ш2-с помощью IVR он указывает группу менагеров которая его интересует
ш3-отрабатывает скрипт который выдает номер мобилы менагера
ш4-идет дозвон этому менагеру (если звонок неудачен, то за счет выходов их скрипта на екстеншен s c другими аргументами, подставляется другой менагер)
ш5-Происходит беседа которая заканчивается разрывом соединения

"Без воды" так:
[looking-for-menager]

exten => s,1,AGI(ref-menager.so, ${scancodeID}, ${statNUMBER}, ${daytime})
exten => call,n(lbl_looking-for-menager_1),Dial(${OPSOS}/${DIALEDID})
exten => call,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?lbl_looking-for-menager_2:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?lbl_looking-for-menager_3:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?lbl_looking-for-menager_4:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?lbl_looking-for-menager_5:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?lbl_looking-for-menager_6:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "DONTCALL"]?lbl_looking-for-menager_7:)
exten => call,n,GotoIf($["${PLAYBACKSTATUS}" = "SUCCESS"]?:lbl_looking-for-menager_3)
exten => call,n(lbl_looking-for-menager_2),Log(DEBUG,)
exten => call,n(lbl_looking-for-menager_3),Hangup()
exten => call,n(lbl_looking-for-menager_4),AGI(menager-no-menager.so)
exten => call,n(lbl_looking-for-menager_5),AGI(menager-l-order.so)
exten => call,n(lbl_looking-for-menager_6),AGI(menager-contact-t-order.so)
exten => call,n(lbl_looking-for-menager_7),Hangup()
exten => call,n,Hangup()



Как без костылей дополнить схему следующими шагами?

ш6-во время беседы у менагера есть возможность закрепить за собой вызывающего или не закрепить (IVR->скриптAGI-> оповещением звуковым файлом в канал)
ш7-безусловный разрыв соединения людой стороной возможен только если менагером был сделан выбор(закрепить за собой вызывающего или не закрепить) впротивном случаи на него подсовывается CallBack/Callfile/Dial.





2010-09-11 00:12

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: отдать IVR вызываемой стороне

в команде dial есть опция М, которая указывает на макрос, который выполнится в момент соединения с вызываемым и для вызываемого. В него-то и можно поместить IVR
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-09-11 09:46

Откуда: UA
Сообщений: 11

Re: отдать IVR вызываемой стороне

Спасибо за отличный совет. А то я это сделал через конференцию (вышло с кучей костылей, условий, план растянулся почти на 260 строк), а оказывается можно лекго и просто.
2010-09-11 10:40

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: отдать IVR вызываемой стороне

да на здоровье!
Пользуйтесь простым принципом:
Вероятность того, что люди сделали до вас то, что делаете вы, около 98%.
Ищите и найдете!
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-09-11 11:50

Откуда: UA
Сообщений: 11

Re: отдать IVR вызываемой стороне

Чет не получается.
Чесгря не могу понять философию соединения каналов и как результат как правильно это сделать.

Судя по информации CLI переход на макрос осушествляется и начинается запись с помошью миксмонитора, но реакции на нажатие кнопок не происходит, хотя обе стороны слышат тон кнопок.

Результат одинаков при применении М и при Gosub
exten => call,n(lbl_looking-for-seller_1),Dial(${OPSOS}/${DIALEDID},,S(120))
exten => call,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?lbl_looking-for-seller_2:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?lbl_looking-for-seller_3:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?lbl_looking-for-seller_4:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?lbl_looking-for-seller_5:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "DONTCALL"]?lbl_looking-for-seller_6:)
exten => call,n,Gosub(getignororder,s,1)

Вар2
exten => call,n(lbl_looking-for-seller_1),Dial(${OPSOS}/${DIALEDID},,M(getignororder)S(120))

При макросе
[macro-getignororder]

exten => s,1,MixMonitor(/var/log/asterisk/mixmon.wav)
exten => s,n(lbl_macro-getignororder_0),NoOp()
exten => s,n(lbl_macro-getignororder_1),WaitExten(1)
exten => s,n,Goto(lbl_macro-getignororder_0)
exten => #,1,AGI(ignor.so)
exten => #,n,Playback(2)
exten => #,n,GotoIf($["${PLAYBACKSTATUS}" = "SUCCESS"]?:lbl_macro-getignororder_2)
exten => #,n,StopMixMonitor()
exten => #,n(lbl_macro-getignororder_2),Congestion()
exten => h,1,DeadAGI(call-confirm.so)
exten => h,n,StopMixMonitor()
exten => h,n,Hangup()
exten => i,1,AGI(get-order.so)
exten => i,n,Playback(1)
exten => i,n,Goto(s,lbl_macro-getignororder_1)


Может нужно диал засунуть в макрос?
2010-09-11 19:51

Откуда: UA
Сообщений: 11

Re: отдать IVR вызываемой стороне

Диал засовывал в макрос - не помогло!
2010-09-11 21:07

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: отдать IVR вызываемой стороне

макрос по опции "М" отработает в тот момент, когда вызываемый абонент возьмет трубку.
у тебя в макрос чего-то понапихано непонятного, начни с простого.
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-09-11 21:40

Откуда: UA
Сообщений: 11

Re: отдать IVR вызываемой стороне

Так я так и делал когда пробовал по второму варианту.
КАжись проблема в том что мне не нужен бэкгроунд, а без него WaitExten не работает. А раз WaitExten не работает -то IVR-ра просто не существует.
АВ миксмонитором я пытался подменить бекгроунд.

С другой стороны задача не изменилась - при разговоре две кнопки должны реагировать на тон.
2010-09-11 22:09

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: отдать IVR вызываемой стороне

как можно заменить миксмонитором бекграунд, если он предназначен для ЗАПИСИ разговора, а не для воспроизведения?
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-09-11 22:20

Откуда: UA
Сообщений: 11

Re: отдать IVR вызываемой стороне

Ну это я уже за соломинку цеплялся
2010-09-11 22:27

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru