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

Несколько аккаунтов у одного провайдера.

Несколько аккаунтов у одного провайдера.
1 2>
Сообщений: 11

Несколько аккаунтов у одного провайдера.

Возможно данный вопрос здесь уже поднимался. Но я ответов пока найти не смог.

Имеем:
провайдер выдал несколько логинов 200, 201, 202, 203 со своими паролями.
каждый логин имеет свой номер в городской телефонной сети XXXXXX0, XXXXXX1, XXXXXX2, XXXXXX3.

Имеем телефонную станцию на базе * с внутренними телефонами порядка 50 абонентов с номерами 1XXX.

Задача:

Внутренний абонент набирая прямой городской номер XXXXXXX (без 0 и 9 перед номером), попадал бы в город, притом, чтобы следующий абонент в случае занятости первой линии попадал бы в город через следующую линию (а еще лучше как нибудь рандомно выбирать линию), а набирая внутренний номер абонента (четырехзначный) попадал бы на внутреннего абонента.

Благодарен буду также за ссылки на похожие темы в данном или других форумах.
2010-10-15 20:16

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: Несколько аккаунтов у одного провайдера.

exten => _XXXXXXX,1,dial(SIP/prov200/${EXTEN})
exten => _XXXXXXX,n,dial(SIP/prov201/${EXTEN})
exten => _XXXXXXX,n,dial(SIP/prov202/${EXTEN})
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-10-15 21:20

Сообщений: 11

Re: Несколько аккаунтов у одного провайдера.

switch:

exten => _XXXXXXX,1,dial(SIP/prov200/${EXTEN})
exten => _XXXXXXX,n,dial(SIP/prov201/${EXTEN})
exten => _XXXXXXX,n,dial(SIP/prov202/${EXTEN})
В этом случае если заканчивается неудачей первый разговор (типа BUSY) то начинает звонить следующий prov201. И пока не переберет все линии или пока не дозвонится.....
2010-10-15 22:37

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: Несколько аккаунтов у одного провайдера.

анализировать статус никто не запрещал, дерзайте!
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-10-15 22:49

Сообщений: 11

Re: Несколько аккаунтов у одного провайдера.

switch:

анализировать статус никто не запрещал, дерзайте!
А может есть способ рандомно их выбрать? Иначе на первом аккаунте всегда будут быстро заканчиваться деньги.
Может можно их все объединить в группу, а потом как-то из группы выбрать случайным образом?
2010-10-16 00:30

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: Несколько аккаунтов у одного провайдера.

Можно и рандомно
можно вообще отслеживать кол-во минут и равномерно загружать. Но это все нужно реализовывать самостоятельно.
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-10-16 08:30

Сообщений: 11

Re: Несколько аккаунтов у одного провайдера.

switch:

Можно и рандомно
можно вообще отслеживать кол-во минут и равномерно загружать. Но это все нужно реализовывать самостоятельно.
Естественно самостоятельно.

А можно пример как в предыдущем случае?
2010-10-16 11:49

Откуда: AST
Сообщений: 280

Re: Несколько аккаунтов у одного провайдера.

http://support.freepbx.org/forum/freepbx/users/new-trunk-balancing-module-for-freepbx
или
*CLI> core show function RAND
*CLI>
-= Info about function 'RAND' =-

[Synopsis]
Choose a random number in a range.

[Description]
Choose a random number between <min> and <max>. <min> defaults to '0', if
not specified, while <max> defaults to 'RAND_MAX' (2147483647 on many
systems).
Example: Set(junky=${RAND(1,8)}); Sets junky to a random number between
1 and 8, inclusive.

[Syntax]
RAND([min][,max])

2010-10-16 12:08

Сообщений: 80

Re: Несколько аккаунтов у одного провайдера.

первый аргумент это строка типа XXX-YYY-ZZZ
где XXX, YYY и ZZZ это разные аккаунты
второй аргумент это номер на который нужно звонить

[macro-outbound-group1]
exten => s,1,Set(trunks=${ARG1})
exten => s,n,Set(called_number=${ARG2})
exten => s,n,Set(index=1)
exten => s,n,Set(nb_trunks=${FIELDQTY(trunks|-)}) ; count number of trunks in "trunks" string
exten => s,n,GotoIf($[${nb_trunks} < 1]?done) ; if trunks is incorrecte, end macro
exten => s,n,While($[${index} <= ${nb_trunks}]) ; else, start while
exten => s,n,Set(curr_trunk=${CUT(trunks,-,${RAND(1,nb_trunks)})}) ; rand trunk
exten => s,n,Dial(Sip/${curr_trunk}/${called_number}) ; try to call via this trunk
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]:done) ; stop if busy
exten => s,n,Set(index=$[${index} + 1])
exten => s,n,EndWhile
exten => s,n(done),Congestion
2010-10-16 13:30

Сообщений: 11

Re: Несколько аккаунтов у одного провайдера.

mbyte:

первый аргумент это строка типа XXX-YYY-ZZZ
где XXX, YYY и ZZZ это разные аккаунты
второй аргумент это номер на который нужно звонить

[macro-outbound-group1]
exten => s,1,Set(trunks=${ARG1})
exten => s,n,Set(called_number=${ARG2})
exten => s,n,Set(index=1)
exten => s,n,Set(nb_trunks=${FIELDQTY(trunks|-)}) ; count number of trunks in "trunks" string
exten => s,n,GotoIf($[${nb_trunks} < 1]?done) ; if trunks is incorrecte, end macro
exten => s,n,While($[${index} <= ${nb_trunks}]) ; else, start while
exten => s,n,Set(curr_trunk=${CUT(trunks,-,${RAND(1,nb_trunks)})}) ; rand trunk
exten => s,n,Dial(Sip/${curr_trunk}/${called_number}) ; try to call via this trunk
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]:done) ; stop if busy
exten => s,n,Set(index=$[${index} + 1])
exten => s,n,EndWhile
exten => s,n(done),Congestion
Я думаю мне это подойдет.

А нельзя это организовать с помощью очередей?
2010-10-16 22:43

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