Добрый всем день! На данный момент от провайдера приходят номера в формате 9261234567 (без кода страны) если звонок из России и в формате 447712345678, если звонок из мира, т.е. с кодом страны. Вопрос: как производить проверку на гражданство номера и, если он российский, то подставлять код страны 7 в начало номера? Если номер международный, то проблем нет, все хорошо.
Провайдер отказался подставлять 7, если звонок из России.
Идея в том, что ко всем десятизначным номерам подставить "7"
exten => s/XXXXXXXXXX,1,Set(CALLERID(num)=7${CALLERID(num):0})
так не подойдет?
exten => s/XXXXXXXXXX,1,Set(CALLERID(num)=${CALLERID(num)})
exten => s/XXXXXXXXXX,n,Gotoif($[${CALLERID(num):0:3} = 495] || $[${CALLERID(num):0:3} = 499])?true:false
exten => s/XXXXXXXXXX,n(true),Set(CALLERID(num)=8${CALLERID(num)})
.
.
.
exten => s/XXXXXXXXXX,n(false),Set(CALLERID(num)=${CALLERID(num)})
.
.
.
slevinkelevra,
exten => s/9XXXXXXXXX,1,Set(CALLERID(num)=7${CALLERID(num):0})
exten => s/499XXXXXXX,2,Set(CALLERID(num)=7${CALLERID(num):0})
exten => s/495XXXXXXX,3,Set(CALLERID(num)=7${CALLERID(num):0})
или через регексп можно и в одну строку, но мне не нра.
у меня сейчас так: от провайдера получаю звонок
[FROM_WORLD]
exten => 495XXXXXXX,1,NoOp(${CALLERID(num)})
exten => 495XXXXXXX,n,Goto(FROM_WORLD_CHECK,s,1)
exten => 495XXXXXXX,n(cont),Dial(SIP/mobile_01@TRUNK-XXX,,tT)
....
[FROM_WORLD_CHECK]
exten => s,1,NoOp(${CALLERID(num)})
exten => s,n,Set(CALLERID(num)=${CALLERID(num)})
exten => s,n,Gotoif($[${CALLERID(num):0:3} = 495] , $[${CALLERID(num):0:3} = 499] , $[${CALLERID(num):0:3} = 909])?true:false
exten => s,n(true),Set(CALLERID(num)=7${CALLERID(num)})
exten => s,n,Goto(FROM_WORLD,495XXXXXXX,cont)
exten => s,n(false),Set(CALLERID(num)=${CALLERID(num)})
exten => s,n,Goto(FROM_WORLD,495XXXXXXX,cont)
Задан: 2011-06-01 15:49:28 +0400
Просмотрен: 2,252 раз
Обновлен: Jun 01 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.