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

AGI Dial

Сообщений: 4

AGI Dial

Доброго дня!
Я недавно начал осваивать asterisk, и вот натолкнулся на следующую проблемку, может кто знает в чем причина, пожалуйста подскажите.
В extensions.conf написана строка вызова скрипта:

exten => s,n,AGI(test.agi,${CALLERID(name)},${CALLERID(num)})

в описании сказано что управление должно передаться скрипту и скрипт должен выполниться полностью но у меня после строчки:

$agi->exec("DIAL ".$dialString."|\"180|gHhmrS(".$mTime.")");

дальше скрипт не выполняется, вернее пробовал раз 40, из них раза два скрипт выполнился, а остальные разы нет. Может кто сталкивался с данной проблемой подскажите как решить или в каком направлении двигаться.
2007-07-30 11:26

Сообщений: 70

Re: AGI Dial

Ситуация в том что после строчки $agi->exec("DIAL....)
управление скрипту передаться не может так как результатом выполнения вышеуказанной строчки будет завершение звонка со статусом ANSWER, BUSY или еще что нибудь и * автоматически остановит выполнение скрипта со всеми его строчками :)

Чтобы иметь возможность выполнять еще разные строчки в скрипте после $agi->exec("DIAL....) то надо вызывать скрипт не такой строчкой:
exten => s,n,AGI(test.agi,${CALLERID(name)},${CALLERID(num)})
а вот такой:
exten => s,n,DeadAGI(test.agi,${CALLERID(name)},${CALLERID(num)})

2007-07-31 14:30

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: AGI Dial

С недавних пор требуется разделение AGI/DeadAGI, даже asterisk ругается. В будущем наверное вообще отключат возможность использования DeadAGI на "живом канале".
Так что правильно отлавливать работу после звонка в h екстене.

http://www.venturevoip.com/news.php?rssid=1793

Some information on the changes in the way AGI and DeadAGI work. Basically you are not supposed to run AGI on a dead channel and not supposed to run DeadAGI on a live channel. However, changes in trunk mean that you will be able to use an AGI on both live and dead channels.

Matthew Nicholson wrote:
> Well, once the SIGHUP is sent, you no longer will be able to get channel
> variables from asterisk. If you did something like 'EXEC Dial Zap/1'
> you may be able to get the DIALSTATUS from asterisk before the SIGHUP if
> the originating channel is still up.
>
> The most straight forward way to do that is just to execute a DeadAGI
> from the 'h' exten.

So to sum up (for 1.4 at least - does this apply to 1.2 also?):

1. Run your AGI which looks up routing details and gets credit level

2. Exec Dial of technology

3. Finish processing of AGI and hand back to Asterisk (setting variables such as the 'provider you used to make the call with' as channel variables - will this work - i.e. will you still be able to access channel variables in the h extension?)

4. In the 'h' extension run a DeadAGI which reads in the variables created in (3), checks dialstatus and deducts credit/creates custom CDR.

[/qote]
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2007-07-31 16:58

Добавить страницу в закладки:  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