AGI - порядок выполнения скриптов
|
Сообщений: 89
|
AGI - порядок выполнения скриптов
Имееться следующие правила:
exten => _93,1,Answer
exten => _93,2,Wait,1
exten => _93,3,AGI(my-test.agi)
exten => _93,4,Dial(SIP/8812xxxxxxx@sip,60,rT)
exten => _93,5,AGI(my-test.agi)
Первый скрипт my-test.agi выполняеться (правило №3), а вот следующий my-test.agi (правило №5) - нет.
Где я неправ ? или после звонка ничего не выполняеться ?
Второй вопрос, как в конфиге описать городские ВХОДЯШИЕ номера и привязать их к конкретным пользователям, чтобы у FXS линии был местный номер, например 206 и городской звонок на 555-44-33 приходил только на нее ?
|
|
Сообщений: 89
|
Re: AGI - порядок выполнения скриптов
Имееться следующие правила:
exten => _93,1,Answer
exten => _93,2,Wait,1
exten => _93,3,AGI(my-test.agi)
exten => _93,4,Dial(SIP/8812xxxxxxx@sip,60,rT)
exten => _93,5,AGI(my-test.agi)
Первый скрипт my-test.agi выполняеться (правило №3), а вот следующий my-test.agi (правило №5) - нет.
Где я неправ ? или после звонка ничего не выполняеться ?
Второй вопрос, как в конфиге описать городские ВХОДЯШИЕ номера и привязать их к конкретным пользователям, чтобы у FXS линии был местный номер, например 206 и городской звонок на 555-44-33 приходил только на нее ?
|
|
Сообщений: 6521
|
Re: AGI - порядок выполнения скриптов
Синтаксическая ошибка - набор _93 говорит, что это шаблон номера, начинающийся с 93, дальше должно быть или что-то типа _93ХХХХХХХ или _93. В первом случае указывается скольки значные номера на 93, а если точка - то с любой значностью. Исходя из указанного
exten => _93.,1,Answer
exten => _93.,2,Wait,1
exten => _93.,3,AGI(my-test.agi)
exten => _93.,4,Dial(SIP/8812xxxxxxx@sip,60,rT)
Если хочешь чтобы просто на номер 93 исполнялось задуманное, то просто
exten => 93,1,Answer
exten => 93,2,Wait,1
exten => 93,3,AGI(my-test.agi)
exten => 93,4,Dial(SIP/8812xxxxxxx@sip,60,rT)
Команда Dial имеет выход по 0 и 1, т е если исполнилась - переходит не к следующему шагу, а к шагу n + 101. То есть если бы тел 8812xxxxxxx был занят, или канал SIP недоступен, то твой шаг №5 исполняется.
По второму вопросу:
exten => 5554433,1,Dial(SIP/206)
|
|
Откуда: Москва
Сообщений: 3421
|
Re: AGI - порядок выполнения скриптов
ded
Команда Dial имеет выход по 0 и 1, т е если исполнилась - переходит не к следующему шагу, а к шагу n + 101.
Это если priorityjumping=yes ;)
Сейчас правильно анализировать DIALSTATUS.
|
|
Сообщений: 89
|
Re: AGI - порядок выполнения скриптов
Спвсибо ded, вопрос выполнения скрипта _всегда_ после диал был решен следующим образом:
exten => 93,4,Dial(SIP/8812xxxxxxx@sip,60,rg)
exten => 93,5,HangUp
exten => h,1,DeadAGI(my-test.agi)
exten => h,2,HangUp
теперь второй вопрос, какой переменной можно передать время прошедшего разговора в DeadAGI(my-test.agi) ?
излазив все этого я ненашел ;(
При этом в CDR такая информация присутствует, или она калькулируеться только после прохождения всех правил extension ?
P.S. про синтаксическую ошибку - это для теста - чтоб менее клавиш набирать ;-)
|
|
Сообщений: 89
|
Re: AGI - порядок выполнения скриптов
Вот что в результате получилось:
[gorod]
exten => _9X.,1,Answer
exten => _9X.,2,Wait,1
exten => _9X.,3,SetLanguage(ru)
exten => _9X.,4,Set(EXTPREFIX=${EXTEN:1})
exten => _9X.,5,DeadAGI(my-test2.agi)
; проверяет положительный ли у юзера баланс, если нет то переходит к метке 101
exten => _9X.,6,Dial(SIP/8${EXTEN:1}@sipnet,60,rg)
exten => _9X.,7,Hangup
exten => h,1,DeadAGI(my-test2.agi,${ANSWEREDTIME},${EXTPREFIX})
; обновляет баланс через разлмчные манипуляции с sql
exten => _9X.,101,Playback(testrecord)
exten => _9X.,102,Hangup
[internal]
exten => 111,1,Dial(MGCP/aaln/S1/1@RASTANNAIA-01-IAD-8-FXS,45,o)
exten => 111,2,Hangup
exten => 112,1,Dial(MGCP/aaln/S1/2@RASTANNAIA-01-IAD-8-FXS,45,o)
exten => 112,2,Hangup
.......... итд
include => gorod
Вот такая схема черевата, или я где чего просмотрел ?
И как бы вынести с 4 по 7 сроку в общее правило (макрос?), который можно вызывать из различных планов набораб типа _9XXXXXXX, _98. _XXX итд ?
|
|
Сообщений: 6521
|
Re: AGI - порядок выполнения скриптов
[internal]
exten => _11X,1,Dial(MGCP/aaln/S1/${EXTEN:2}@RASTANNAIA-01-IAD-8-FXS,45,o)
exten => _11X,2,Hangup
Почитай про шаблоны в мануалах.
|
|
Сообщений: 89
|
Re: AGI - порядок выполнения скриптов
Еше вопрос, есть ли какая встроенная функция для разделения EXTEN на код страны, код города, номер телефона ?
Если нет, любопытно как решают такой алгоритм малой кровью ?
|
|
Сообщений: 89
|
Re: AGI - порядок выполнения скриптов
|
|
Сообщений: 89
|
Re: AGI - порядок выполнения скриптов
ded[internal]
exten => _11X,1,Dial(MGCP/aaln/S1/${EXTEN:2}@RASTANNAIA-01-IAD-8-FXS,45,o)
exten => _11X,2,Hangup
Ну да, а как быть напрмер с номером 119 ?
1. первая циска 8 портов: 111-118@RASTANNAIA-01-IAD-8-FXS
2. вторая циска 8 портов: 119-126@RASTANNAIA-02-IAD-8-FXS
3. третья циска 16 портов: 126-142@RASTANNAIA-03-IAD-16-FXS
?
|
|