если конечно я правильно понял, что ТС отдал нумерацию с 233400 по 233499
renat ( 2012-07-02 19:12:51 +0400 )редактироватьпривет.
отдал абоненту транком нумерацию 2334xx kurks-agro
нужно проверить АОН клиента kursk-agro при звонках в город (отредактировано)
extenesions при выходе в город
[pstn-outbound-bez-8]
exten => _[0-79].,1,Dial(SIP/${EXTEN}@192.168.4.1,120) ; IP address of Cisco gateway
exten => _[0-79].,2,Hangup()
вот extensions при звонках из города к абоненту
exten => _2334XX,1,Dial(SIP/kursk-agro/${EXTEN},120,r)
p.s.
потестил функцию на одном номере gotoif($["${CALLERID(num)}" != "233400"]?reject:)
а как привязать к транку не пойму
а можно проверить входит ли номер в заданный диапазон, если нет то подставить, примерно так
exten => _[0-79].,1,GotoIf($["${CALLERID(num):0:4}" = "2334"]?3)
exten => _[0-79].,2,Set(CALLERID(num)=233400)
exten => _[0-79].,3,Dial(SIP/gateway/${EXTEN})
если конечно я правильно понял, что ТС отдал нумерацию с 233400 по 233499
renat ( 2012-07-02 19:12:51 +0400 )редактироватьБанально забивать Set(CALLERID(num)=233400) перед Dial при исходящих звонках и свой собственный контекст в даилплане для клиента думаю - правильное решение..
тогда неверно будет определяться АОН, ну и в билинге будет неверная информация о звонящих.
voznyaa ( 2012-10-19 11:24:06 +0400 )редактироватьЕсли я правильно Ваш текст понял, то Вам нужно идентифицировать с какого номера пытается совершить звонок Ваш абонент которому
отдал абоненту транком нумерацию 2334xx kurks-agro
Верно?
Тогда нужно просто ставить эту проверку в диалплане перед тем как пускать звонок дальше. Примерно так:
exten => _[0-79].,1,GotoIf($["${CALLERID(num)}" != "233400"]?4)
exten => _[0-79].,2,Dial(SIP/gateway/${EXTEN})
exten => _[0-79].,3,Hangup()
exten => _[0-79].,4,Hangup(52)
в ответах не надо задавать вопросы - пишите в камент нужного ответа =)
Zavr2008 ( 2012-07-02 20:44:48 +0400 )редактировать2artefakt А что такое Hangup(52) ?
сделал вот такой dialplan для trunk клиента с выделенной нумерацией 233400-233426
exten [pstn-incoming]
include => kurskagrophone
[kurskagrolocal]
include => kurskagrophone
include => lan-phones
include => pstn-outbound-kursk
[kurskagrophone]
exten => _2334[0-1]X,1,Dial(SIP/kursk-agro/${EXTEN},120,r)
exten => _23342[0-6],2,Dial(SIP/kursk-agro/${EXTEN},120,r)
exten => _2334[0-1]X,3,Hangup()
exten => _23342[0-6],4,Hangup()
[pstn-outbound-kursk]
exten => _X.,1,GotoIf($["${CALLERID(num):0:5}" = "23340"]?5:6)
exten => _X.,2,GotoIf($["${CALLERID(num):0:5}" = "23341"]?5:6)
exten => _X.,3,GotoIf($["${CALLERID(num):0:5}" = "23342"]?4:6)
exten => _X.,4,GotoIf($["${CALLERID(num):5:1}" = "[0-6]"]?5:6)
exten => _X.,5,Dial(SIP/${EXTEN}@192.168.4.1,120)
exten => _X.,6,Hangup()
sip
[kursk-agro]
insecure = port,invite
host = 172.28.64.2 ; IP address of gateway
context = kurskagrolocal
voznyaa ( 2012-10-19 09:43:11 +0400 )редактироватьHangup(52) это код причины окончания связи. 52 код обозначает что "исходящие звонки запрещены". (http://voip.rus.net/tiki-index.php?page=Asterisk+variable+hangupcause) Насчет диалплана.
Звонки на номера _2334[0-1]X пойдут по указаному правилу. Звонки на номера _23342[0-6] не пойдут по указаному правилу, так как для них не существует первого приоритета. Нужно писать например так:
exten => _2334[0-1]X,1,Dial(SIP/kursk-agro/${EXTEN},120,r)
exten => _2334[0-1]X,2,Hangup()
exten => _23342[0-6],1,Dial(SIP/kursk-agro/${EXTEN},120,r)
exten => _23342[0-6],2,Hangup()
в исходящих будет работать только первое правило, т.к. если ${CALLERID(num):0:5} не будет равен 23340 то звонок уйдет на 6-й приоритет.
Надо написать первые два без ":6":
(exten => _X.,1,GotoIf($["${CALLERID(num):0:5}" = "23340"]?5))
artefackt ( 2012-11-05 00:11:11 +0400 )редактироватьда все верно звонки на _23342[0-6] не пошли , сделал как у вас указано (но уже давно )
[kurskagrophone] exten => _23342[0-6],1,Dial(SIP/kursk-agro/${EXTEN},120,r) exten => _23342[0-6],2,Hangup()
exten => _2334[0-1]X,1,Dial(SIP/kursk-agro/${EXTEN},120,r) exten => _2334[0-1]X,2,Hangup()
(правда не понял почему нельзя написать приоритетами 1,2,3,4 )
вместо hangup(52) сделал exten => playback(pbx-invalid)
по поводу обработки :0:5 неверно понял функционал, уже переписал
_23342[0-6] и _23342[0-6] это маски для екстеншинов, после которых указывается приоритет. Приоритет, это последовательность обработки екстеншинов. Т.е. если звонок пришел на номер кторый указан в маске, то сначала будет выполнятся то что написано для этого екстеншина в приоритете 1, затем в следующем, который больше чем 1. Если для екстеншина (маски) не указано правило с приоритетом "1", то такого екстеншина как-бы и нет вовсе. Для наглядности можете прописать екстеншин без первого приоритета и посмотреть в CLI есть ли этот екстеншин.
вместо hangup(52) сделал exten => playback(pbx-invalid)
если так сделали, то для абонента, который пытается позвонить, звонок будет считаться как "отвечен", т.к. Playback делает Answer. Это так, к сведению.
artefackt ( 2012-11-08 19:21:17 +0400 )редактироватьЗадан: 2012-06-28 18:10:14 +0400
Просмотрен: 5,554 раз
Обновлен: Jul 02 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Еще бы понять , что это за набор слов. Особенно улыбнуло "проверить АОН транк-клиента". Что это , куда это?
zzuz ( 2012-06-28 19:39:18 +0400 )редактировать