[b]Стратегия обработки исходящих вызовов[/b]
Стратегия обработки исходящих вызовов
Сообщений: 17
|
[b]Стратегия обработки исходящих вызовов[/b]
Мне бы принцип понять.. Есть связка Asterisk+Cisco5350<-E1->PSTN. Есть определенная номерная емкость в Е1. Таймслоты в Е1 занимаются при вызовах - как попало.
Грубо говоря, есть номера 6662821..6662850
Хочется:
1) ряду внутренних пользователей разрешить выход в город, чтобы они при этом могли занять не более двух канальных интервалов (КИ, таймслотов), и прикрывались бы номерами 6662821..6662822. Ряду других пользователей разрешить выход в город, чтобы они могли занять не более трех КИ и прикрывались бы тремя другими номерами.. В общем, сделать как на традиционном Panasonic'е, например, KX-TDA100 и подобных. Распределение это, например, по отделам.
2) Ряду пользователей разрешить только локальную связь, другим - то же с выходом в город. Третьим, то же, что и вторым, плюс сотовые этого региона. Четвертым вообще все. Причем это все может быть в пределах каждой группы из предыдущего пункта. Ну, то есть, начальник отдела - может все и везде, замы - поменьше, им межгород не нужен, техничкам - только локальные звонки.
Буду сильно признателен за примерный скелет конфига. Еще раз скажу, что нужно принципально понимание. Да, и очень не хочется описывать каждый extension в отдельности. Может, как-то бы описать какие-то группы, а потом туда добавлять пользователей?
|
Сообщений: 1530
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
Буду сильно признателен за примерный скелет конфига. Еще раз скажу, что нужно принципально понимание. Да, и очень не хочется описывать каждый extension в отдельности. Может, как-то бы описать какие-то группы, а потом туда добавлять пользователей?
Вариантов может быть море.
Рекомендую написать простенький AGI-скрипт, который перед вызовом Dial проверял бы сколько уже текущих звонков.
Или взять готовый биллинг, где это уже все реализовано -- будет проще и быстрее.
|
Сообщений: 17
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
tma:
Буду сильно признателен за примерный скелет конфига. Еще раз скажу, что нужно принципально понимание. Да, и очень не хочется описывать каждый extension в отдельности. Может, как-то бы описать какие-то группы, а потом туда добавлять пользователей?
Вариантов может быть море.
Рекомендую написать простенький AGI-скрипт, который перед вызовом Dial проверял бы сколько уже текущих звонков.
Или взять готовый биллинг, где это уже все реализовано -- будет проще и быстрее.
Пример скрипта можно? Тоже, концептуально? :-)
|
Сообщений: 6521
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
Это всё таки концептуально, и не решается простенькими скриптами.
Весь ТЗ можно обозначить как Комплексное решение созания виртуальных АТС на одной аппаратной платформе.
Каждая АТС должна иметь виртуальную независимость, свои диалпланы, свои группы, разрешительные записи, транки, DID, короче такой Набор юнного Астерискостроителя.
|
Сообщений: 17
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
ded: Это всё таки концептуально, и не решается простенькими скриптами.
Весь ТЗ можно обозначить как Комплексное решение созания виртуальных АТС на одной аппаратной платформе.
Каждая АТС должна иметь виртуальную независимость, свои диалпланы, свои группы, разрешительные записи, транки, DID, короче такой Набор юнного Астерискостроителя.
Выход? Кроме чтения книжек, пожалуй :-) - этим я и так увлечен, уже рябит от смеси английского с русским.
Думаю, что как и большинство людей, меня надо немного подтолкнуть читать в нужном направлении. В этом, собственно, и просьба..
Ну, например:
"Ваша задача, молодой (правда, уже не очень) человек, решается так: callgroup - решает проблему группировки по отделам, как вы и хотели, а контексты - занимаются разрешительной деятельностью в области 8., 89., 810. и так далее" - это до чего я уже дочитался, но главное здесь - смысл - что я понимаю под "концептуальным" толчком "в нужном направлении".
Заранее вам благодарен, друзья, если сэкономите "юному *строителю" время.
|
Сообщений: 6521
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
TrixBox
|
Откуда: Уфа
Сообщений: 5856
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
trixbox+customcontexts
сможете выделять юзеру опреденный транк и направлять строго по определенным контекстам
|
Сообщений: 17
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
Не-е.. ТриксБокс начальство сразу отмело ввиду его платности..
А что если так:
- extension.conf:
[pstn-lines]
exten => detectlinegroup,1,GotoIf($["${CALLERID(num)}" = "148"]?linegroup0|1)
exten => detectlinegroup,2,GotoIf($["${CALLERID(num)}" = "115"]?linegroup0|1)
exten => linegroup0,1,Set(CALLERID(num)=1583070)
exten => linegroup0,2,Dial(SIP/90${DIALED_NUMBER}@80.251.128.71,20)
[pstn-incoming]
exten => 6662823,1,Dial(SIP/eyatsko,3,tT)
exten => 6662823,2,Dial(SIP/eyatsko&SIP/nlagohin,20,tT)
exten => 6662823,3,Hangup
exten => 6662824,1,Dial(SIP/nlagohin,20,tT)
exten => 6662824,2,Hangup
include => ip-phones
[pstn-outgoing-all]
exten => _9X.,1,Set(DIALED_NUMBER=${EXTEN:1})
exten => _9X.,2,Goto(pstn-lines|detectlinegroup|1)
[pstn-outgoing-regional]
exten => _9[0-79]XXXXXX,1,Set(DIALED_NUMBER=${EXTEN:1})
exten => _9[0-79]XXXXXX,2,Goto(pstn-lines|detectlinegroup|1)
exten => _98495XXXXXXX,1,Set(DIALED_NUMBER=${EXTEN:1})
exten => _98495XXXXXXX,2,Goto(pstn-lines|detectlinegroup|1)
exten => _98499XXXXXXX,1,Set(DIALED_NUMBER=${EXTEN:1})
exten => _98499XXXXXXX,2,Goto(pstn-lines|detectlinegroup|1)
[office-all]
include => ip-phones
include => pstn-outgoing-all
[office-regional]
include => ip-phones
include => pstn-outgoing-regional
[office-local]
include => ip-phones
[ip-phones]
exten => 148,1,Dial(SIP/eyatsko,20,tT)
exten => 148,2,Hangup
exten => eyatsko, 1, Goto(148|1)
exten => 115,1,Dial(SIP/nlagohin,20,tT)
exten => 115,2,Hangup
exten => nlagohin, 1, Goto(115|1)
exten => 164,1,Dial(SIP/sdolin,20,tT)
exten => 164,2,Hangup
exten => sdolin, 1, Goto(164|1)
Елинственный узкий момент в этом - DIALED_NUMBER. Как я понял, эта переменная определяется в "экстеншне" во время вызова и для каждого вызова она своя. Это так? Если это не так, то при одновременном (буквально одновременном - например, в 1 сек. 10 человек) вызове с нескольких внутренних номеров пользователи испытают проблемы. ПРОКОНСУЛЬТРУЙТЕ, ЕСЛИ НЕ ТРУДНО?
- sip.conf:
[80.251.128.71]
type=friend
context=pstn-incoming
host=80.251.128.71
dtmfmode=rfc2833
insecure=port,invite
;disallow=all
allow=g729
allow=ulaw
allow=alaw
allow=gsm
allow=g723
allow=g726
[eyatsko]
type=friend
host=dynamic
username=eyatsko
regexten=148
nat=no
;canreinvite=no
context=office-all
callerid="e.yatsko" <148>
;disallow=all
allow=g729
allow=ulaw
allow=alaw
allow=gsm
allow=g723
allow=g726
callgroup=1
pickupgroup=1
[nlagohin]
type=friend
host=dynamic
username=nlagohin
regexten=115
nat=no
;canreinvite=no
context=office-regional
callerid="n.lagohin" <115>
;disallow=all
allow=g729
allow=ulaw
allow=alaw
allow=gsm
allow=g723
allow=g726
callgroup=1
pickupgroup=1
[sdolin]
type=friend
host=dynamic
username=sdolin
regexten=164
nat=no
;canreinvite=no
context=office
callerid="s.dolin" <164>
;disallow=all
allow=g729
allow=ulaw
allow=alaw
allow=gsm
allow=g723
allow=g726
callgroup=2
pickupgroup=1
Таким образом, назначая пользователям соответствующий контекст задаем правила для выхода в горо/межгород. А через какую внешнюю линию это делать определяется на основе внутреннего номера.
Единственный не решенный момент - как сделать так, чтобы только два внутренних пользователя из трех могли занять две городских линии, а третьему, при попытке набора, давался "отбой"? И чтобы это было сделано средствами Asterisk? Был бы признателен, TMA, если б "угостили" ссылочкой (или фразой, или словом направили), по которой я через google уже бы сам "дотумкал".. :-)
|
Сообщений: 17
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
ded: TrixBox
К тому же ОНИ ЖЕ ЭТО КАК-ТО ДЕЛАЮТ??? :-) Неужель в Астериске этого нельзя? Как??
|
Откуда: Москва
Сообщений: 3421
|
Re: [b]Стратегия обработки исходящих вызовов[/b]
А Asterisk'e нет слова нельзя.
Проглядел Ваш диалплан, не увидел использования функции GROUP.
http://www.voip-info.org/wiki/index.php?page=Asterisk+func+group
Тут и примеры есть (читать Example 2)
|
|