проверку после соединения сделать?
exten => X.,1,MYSQL(Connect connid localhost asteriskuser SomePassAster01 asterisk) exten => _X.,n,Gotoif($["${connid}" = ""]?false) exten => _X.,n(false),Playback(error) exten => _X.,n,MYSQL(Query resultid ${connid}SELECT\SUM(billsec)\FROM\cdr\WHERE\src=${CALLERID(num)}) exten => _X.,n,MYSQL(Fetch fetchid ${resultid} billing) exten => _X.,n,MYSQL(Clear ${resultid}) exten => _X.,n,GotoIf($["${fetchid}"="1"]?true:false) exten => _X.,n,GotoIf($["${billing}" < "1"]?call:end) exten => _X.,n(call),Dial(SIP/300) exten => _X.,n,MYSQL(Clear ${resultid}) exten => _X.,n,Hangup() exten => _X.,n(false),Playback(goodbye) exten => _X.,n,Hangup()
Diana92 (Jan 22 '14)editсоединения нет, специально чтоб не путаться поставила другую метку для соединения, и поставила плэйбэк типа ошибка, только потом он проиграл второй плэйбэк гудбай. вот так вот. не пойму в чем проблема. имя пользователя пароль все правильно. или мне ввести имя рут и его пароль?
Diana92 (Jan 22 '14)editto meral: не надо переходить на личности... я показал направление, а что конкретно использовать - AGI или FastAGI, топикстартер, я думаю, разберется. В любом случае, изучать начнет с AGI...
to Diana:
http://www.voip-info.org/wiki/view/Asterisk+AGI
http://www.voip-info.org/wiki/view/Asterisk+FastAGI
Olpag (Jan 23 '14)editmeral: решение должно быть сообразно задаче. по производительности - лучше один asyncagi скрипт (фактически - управление всей АТС через AMI в асинхронном режиме). НО!если asyncagi скрипт упадет то вся АТС грохнется... главное в АТС - это надежность. asyncagi не только сложнее в реализации - он существенно проигрывает в надежности AGI по определению. не всегда можно отследить внешним планировщиком, даже если он очень хорошо написан - висит asyncagi скрипт или просто работает... планировщик например может прибить и перезапустить asyncagi скрипт по-ошибке и все вызовы упадут... можно конечно форкать отдельный процесс на каждый вызов при поступлении - но тогда в чем отличие от простого agi? imho asyncagi нужен для конкретных и весьма специфичных задач, которые нельзя решить в синхронном режиме...fastagi же практически ничем не отличается от простого agi - только по сети (скрипты AGI могут исполнятся на отдельном сервере - особо смысла, если вызовов не тысячи одновременно - скорее случай оператора связи )
octopas (Jan 25 '14)editfastagi скрипты вполне надежны. отличие от простого agi в том, что 1) используется меньше памяти 2) потоки fastagi создаются с запасом и не во время звонка, что убирает пики cpu. 3) не расходуется ресурсы на пересоздание и перекомпиляцию(здраствуй phpagi) каждый раз. у меня количество разных систем с fastagi перевалило за сотню уже. сложность программирования - такая же.
meral (Jan 25 '14)edit
не пытайтесь реализовать алгоритм какого-либо биллинга в диалплане. это - неправильно. правильней звать из диалплана radius и а с самим радиусом использовать биллинговое решение которое имеет с ним сопряжение через libradius, таких очень много, в том числе есть бесплатные. или можно обратиться к профессионалам - все настроят :) любые заплатки и "наколеночные" решения рано или поздно упираются в "потолок" - в данном случае невозможность автоматизированной отладки и много другое...
octopas (Jan 25 '14)edit