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

AGI - порядок выполнения скриптов

1 2>
Сообщений: 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 приходил только на нее ?
2006-08-24 00:08

Сообщений: 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 приходил только на нее ?
2006-08-24 00:09

Сообщений: 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)
2006-08-24 09:34

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

Re: AGI - порядок выполнения скриптов

ded
Команда Dial имеет выход по 0 и 1, т е если исполнилась - переходит не к следующему шагу, а к шагу n + 101.
Это если priorityjumping=yes ;)
Сейчас правильно анализировать DIALSTATUS.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2006-08-24 12:05

Сообщений: 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. про синтаксическую ошибку - это для теста - чтоб менее клавиш набирать ;-)
2006-08-24 18:36

Сообщений: 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 итд ?
2006-08-25 01:11

Сообщений: 6521

Re: AGI - порядок выполнения скриптов

[internal]
exten => _11X,1,Dial(MGCP/aaln/S1/${EXTEN:2}@RASTANNAIA-01-IAD-8-FXS,45,o)
exten => _11X,2,Hangup

Почитай про шаблоны в мануалах.
2006-08-25 01:56

Сообщений: 89

Re: AGI - порядок выполнения скриптов

Еше вопрос, есть ли какая встроенная функция для разделения EXTEN на код страны, код города, номер телефона ?

Если нет, любопытно как решают такой алгоритм малой кровью ?
2006-08-25 02:34

Сообщений: 89

Re: AGI - порядок выполнения скриптов

2006-08-25 02:50

Сообщений: 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

?



2006-08-25 02:51

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