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

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

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

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

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

den68Еше вопрос, есть ли какая встроенная функция для разделения EXTEN на код страны, код города, номер телефона ?
Это шутка? Разве любой номер можно разделить на код страны, области и города? Это нужна база данных со всеми кодами.

den68теперь второй вопрос, какой переменной можно передать время прошедшего разговора в DeadAGI(my-test.agi) ?
излазив все этого я ненашел ;(

${DIALSTATUS}, ${ANSWERTIME}, ${DIALEDTIME}
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2006-08-25 14:30

Сообщений: 89

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

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

Это шутка? Разве любой номер можно разделить на код страны, области и города? Это нужна база данных со всеми кодами.

Нет, не шутка, я в общем-то и имел в виду наиболее полную таблицу кодов стран и городов, в плане где взять. И еще хотел посоветоваться, кто-как-каим парсером эту проблему решает (чтоб не изобретать велосипед). Может есть готовый перловый модуль под это, например ?

P.S. а в * есть встроенные функции: StripLSD() и StripMSD() - но они без анализа как правило бесполезны.
2006-08-26 01:02

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

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

База кодов стоит денег.
А про парсер... Ты думаешь что в инете полно самых распространенных баз кодов и лучших парсеров для них? А вообще искать в инете парсер базы кодов это фан, я быстрее напишу его чем найду.
Ну да ладно, вот тебе мой:


import sys
data = open(sys.argv[1]).readlines()
f = open(sys.argv[1] + '.out','w')
for line in data:
try:
dst,desc,rate = line.split('|')
rate = '%.2f' % float(rate)
f.write('*\t%(dst)s\t%(desc)s\t1\t%(rate)s\t0.0\t1\t0\t6\t0:00:00\t23:59:59\t1\t0\t1\t60\n' % vars())
except:
raise
f.close()

Подходит?
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2006-08-26 01:17

Сообщений: 89

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

litnimaxБаза кодов стоит денег.
А про парсер... Ты думаешь что в инете полно самых распространенных баз кодов и лучших парсеров для них? А вообще искать в инете парсер базы кодов это фан, я быстрее напишу его чем найду.
Ну да ладно, вот тебе мой:


import sys
data = open(sys.argv[1]).readlines()
...поскипано
f.close()

Подходит?
Сенькс, изучу. Хочеться сделать выборку кодов на sql, текстовой файл - больно геморно...

Прилагаю файл список стран и кодов, плз. освятите - это далеко не полный ? и сколько % там нехватает на ваш взгляд ? ;-)
2006-08-28 05:31

Сообщений: 89

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

Вот процедура которая у меня получилась на perle, неоптимизированна еще, сырец так сказать, работает с преведенной выше таблицей кодов, может кому сгодиться как возможный образец ;-)

sub get_kod()
{
my ($dbc,$dialexten) = @_;
my $i=1;
my $tmpkod="";
my $ret_cena="",$ret_kod="";
my $rr_cena="",$rr_kod="";

while ($i > 0)
{
$tmpkod = substr($dialexten,0,$i);
my $sth = $dbc->query("SELECT kod_country,kod_cena_minuta FROM billing_kod WHERE kod_country LIKE '$tmpkod%' ORDER BY kod_country DESC");
$i++;
if (!$sth) { print STDERR "get_kod(STH) -!! No balance Updated !!-\n"; exit; }
if (!$sth->execute) { print STDERR "get_kod(STH-EXEC) -!! No balance Updated !!-\n"; exit; }
if ( $sth->numrows == 0 )
{
$i = 0;
} else {
($rr_kod,$rr_cena) = $sth->fetchrow;
if(!$rr_cena)
{} else {
$ret_cena = $rr_cena;
$ret_kod = $rr_kod;
}
}

}

return ($ret_kod,$ret_cena);
}
2006-08-29 03:01

<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