AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Полное определение номера звонящего

Newbies/FAQ Forum 15 сообщений 30.08.2010 16:46 - 02.09.2010 06:14
#1 30.08.2010 16:46

Полное определение номера звонящего


Когда приходит внешний звонок с номера мобильного оператора на сервер астериск, то номер абонента определяется не полностью, а точнее не хватает первой цифры. Как заставить сервер астериск полностью определять номер или вручную (принудительно) дописывать нужную цифру в нужном месте???
#2 30.08.2010 16:51

если я не ошибаюсь, у вас это цифра 0?
если так, то только дописывать вручную. у нас то же 0 и все операторы говорят что должно быть без этой цифры.
#3 30.08.2010 17:14

да, 0.
Для исходящих понятно, хоть звонок совершается, в консоле номер определяется без нуля, так как был так набран в клиенте. Но, это и не надо, нуль можно набрать самому. Вопрос больше к входящим звонкам. Не могу понять, как засунуть зиро вот сюда нуль:
Code:
exten => ХХХХХХХ,1,MYSQL(Connect connid localhost asterisk 1 asterisk)
exten => ХХХХХХХ,n,Set(fname=${CDR(dcontext)}-${STRFTIME(${EPOCH},,%d%m%Y.%H:%M)}-${CALLERID(number)}-${EXTEN})
exten => ХХХХХХХ,n,Set(convert=nice -n 19 /usr/bin/lame -b 16 --silent "/usr/local/etc/asterisk/records/${fname}.wav" && rm -f "/usr/local/etc/asterisk/records/${fname}.wav")
exten => ХХХХХХХ,n,MixMonitor(/usr/local/etc/asterisk/records/${fname}.wav|b|${convert})
exten => ХХХХХХХ,n,Dial(SIP/11004)
exten => ХХХХХХХ,n,StopMonitor
exten => h,1,MYSQL(Disconnect ${connid})

ХХХХХХХ - городской, выделенный номер.
Для исходящих, звонок совершается через
Code:
exten => _X.,n,Dial(SIP/ХХХ/0${EXTEN})
и с нулем тут понятно, а вот куда тут нуль
Code:
exten => ХХХХХХХ,n,Dial(SIP/11004)
не ясно Exclamation Question
#4 31.08.2010 00:50

Code:

Set(CALLERID(num)=0${CALLERID(num)})
#5 31.08.2010 08:57

А провайдер у Вас, случаем, не Комстар?
_________________
Asterisk 1.4.30 @ Ubuntu 9.04 + Cisco MC3810 + NEC NEAX 2000IPS + Polycom IP Phones
#6 31.08.2010 16:29

Pavel:
Добавил строку exten => 7632059,n,Set(CALLERID(num)=0${CALLERID(num)}) в контекст входящих звонков. Теперь входящий звонок определется с нулем, но в базу по прежнему пишется без нуля.
Кстати, какая разница между CALLERID(num) и CALLERID(number)?

Samael:
нет. а разве этот вопрос может зависит от провайдера?
#7 01.09.2010 03:05

Покажи весь диалплан...
#8 01.09.2010 07:08

Нужно попробовать
exten => 7632059,1,Set(CALLERID(num)=0${CALLERID(num)})
#9 01.09.2010 07:28

_Pavel_
Code:

exten => 7632059,1,MYSQL(Connect connid localhost asterisk 1 asterisk)
exten => 7632059,n,Set(CALLERID(num)=0${CALLERID(num)})
exten => 7632059,n,Set(fname=${CDR(dcontext)}-${STRFTIME(${EPOCH},,%d%m%Y.%H:%M)}-${CALLERID(number)}-${EXTEN})
exten => 7632059,n,Set(convert=nice -n 19 /usr/bin/lame -b 16 --silent "/usr/local/etc/asterisk/records/${fname}.wav" "/usr/local/etc/asterisk/records/${fname}.mp3 && rm -f "/usr/local/etc/asterisk/records/${fname}.wav")
exten => 7632059,n,MixMonitor(/usr/local/etc/asterisk/records/${fname}.wav|b|${convert})
exten => 7632059,n,Dial(SIP/11004)
exten => 7632059,n,StopMonitor
exten => h,1,MYSQL(Disconnect ${connid})


adt2k
Попробовал, установив exten => 7632059,1,Set(CALLERID(num)=0${CALLERID(num)}) первой строкой, изменив приоритеты, в выше приведенном диалплане. Результат тот же.
#10 02.09.2010 01:25

Проверь...
Code:
exten => 7632059,n,Set(CALLERID(all)=0${CALLERID(num)})

Только я не понял зачем ты к mysql цепляешься если ничего с ним не делаешь...
#11 02.09.2010 05:28

Он так извращённо CDR пишет %)
оказывается можно и так...
#12 02.09.2010 05:48

Это получается только "избранное" пишется?
#13 02.09.2010 05:58

Получается да.
Только я не понял почему не нужно писать логи... и в чем проблема.

А по теме не понятно почему не присваивается новый CallerId. Честно говоря я сталкивался с таким. Посмотрел что сделал - ничего не выяснил, но у меня работает когда 2 раза присваиваешь новый CALLERID(num) и это не выход... Sad

Но как вариант, чисто для проверки:
Code:

exten => 7632059,n,Set(cnum=${CALLERID(num)})
exten => 7632059,n,Set(CALLERID(num)=0${cnum})
exten => 7632059,n,Set(CALLERID(num)=0${cnum})


Last edited by adt2k on Thu Sep 02, 2010 06:15
#14 02.09.2010 06:07

Счас глянул у себя как сделано, так же 2 присвоения.
Но у себя я избавлялся от IP который провайдер в ${CALLERID(name)} пихает.

Code:

exten => 7632059,n,Set(CALLERID(all)=${CALLERID(num)})
exten => 7632059,n,Set(CALLERID(all)=0${CALLERID(num)})
#15 02.09.2010 06:14

Кстати, CALLERID(all) указывает по формату: Имя
а не только номер.
потому присвоение должно быть
Code:
exten => 7632059,n,Set(CALLERID(all)=0${CALLERID(num)})