Страница 1 из 3
Распределение звонков по callerID
Добавлено: 25 май 2011, 13:13
OWL
Есть SIP транковая линия с провайдером только для входящих звонков. Необходимо разделить звонки в зависимости от callerid.
От провайдера приходит сообщение такого вида
From: "provider_callerID" <sip:username@x.x.x.x>
где username - имя пользователя выданное провайдером
есть возможность редактировать поле "provider_callerID" на сайте провайдера.
В файле extensions.conf такие настройки
[default]
exten => s,1,GotoIF($["${CALLERID}" = "callerid1"]?dial1)
exten => s,1,GotoIF($["${CALLERID}" = "callerid2"]?dial2)
exten => s,n(dial1),Dial(SIP/7777)
exten => s,n(dial 2),Dial(OOH/5554@Moscow_h323)
Если приходит звонок From: "callerID1" <sip:username@x.x.x.x>
при этом в логах:
VERBOSE[7851] pbx.c: -- Executing [s@default:1] GotoIF("SIP/x.x.x.x:9090-00000000", "0?dial1") in new stack
и звонок уходит на номер 7777 если там его сбросить то уходит на 5554.
Каким образом можно использовать поле From для распределения звонков?
Re: Распределение звонков по callerID
Добавлено: 25 май 2011, 13:24
ded
Каким образом у Вас два противоречивых шага 1?
[default]
exten => s,1,GotoIF($["${CALLERID}" = "callerid1"]?dial1)
exten => s,1,GotoIF($["${CALLERID}" = "callerid2"]?dial2)
exten => s,n(dial1),Dial(SIP/7777)
exten => s,n(dial 2),Dial(OOH/5554@Moscow_h323)
Правильным образом надо Вам регистрировать свой Астериск у провайдеоа так:
register => username - имя пользователя выданное провайдером:password@FQDN_SIP_server_prov/username - имя пользователя выданное провайдером
Тогда звонок будет прибегать не на
exten => s,
а на
exten => username - имя пользователя выданное провайдером,1,Dial(SIP/7777)
Далее, если хотите, чтобы звоним с одного моб. номера прибегал на Dial(SIP/7777) а с другого - на Dial(OOH/5554@Moscow_h323), то достаточно без GotoIF($["${CALLERID}" указать
exten => username - имя пользователя выданное провайдером/9012345678,1,Dial(SIP/7777)
exten => username - имя пользователя выданное провайдером/9876543210,1,Dial(OOH/5554@Moscow_h323)
где 9012345678 - первый CALLERID, а 9876543210 - второй.
Не хотите книжки для начала почитать?
Re: Распределение звонков по callerID
Добавлено: 26 май 2011, 06:11
OWL
Да книжки по Asterisk я не читал, но решение с GotoIF все же не мое, оно взято на каком-то из штудированных мною сайтов.
Регистрацию поправил, добавил \username,
register => 70199:password@FQDN_SIP.com:9090\70199
Распределение такое
[default]
exten => 70199/7777,1,Dial(SIP/7777)
exten => 70199/5554,1,Dial(OOH323/5554@Moscow_h323)
Но теперь звонок вообще никуда не приходит потому, что нет такого extension
From: "5554" <sip:70199@X.X.X.X:9090>;tag=as3795f288
To: <sip:70199@192.168.1.19:5060>;tag=as63ed9f8a
NOTICE[11330] chan_sip.c: Call from '' to extension '70199' rejected because extension not found in context 'default'.
Re: Распределение звонков по callerID
Добавлено: 26 май 2011, 10:18
ded
У Вас не корректно считывается CallerID.
Проверяем?
exten => 70199,1,NoOp(Caller ID is ${CALLERID(all)})
exten => 70199,2,SayDigits(${CALLERID(num)})
exten => 70199,3,Hangup
Re: Распределение звонков по callerID
Добавлено: 26 май 2011, 11:13
SVoy
а если "ничего не вижу, ничего не слышу, ничего не знаю"?
Re: Распределение звонков по callerID
Добавлено: 26 май 2011, 11:48
OWL
ded, спасибо помогла функция NoOp, стало понятно что мне нужна только часть callerID(name), хотя с этой переменной я уже пробовал делать, но мешали, как оказалось, кавычки.
Окончательный рабочий вариант "то что нужно":
exten => 70199,1,GotoIf($[${CALLERID(name)} = 7777]?dial1)
exten => 70199,n,GotoIf($[${CALLERID(name)} = 5554]?dial2)
exten => 70199,n(dial1),Dial(SIP/7777)
exten => 70199,n,Hangup
exten => 70199,n(dial2),Dial(OOH323/5554@Moscow_h323)
exten => 70199,n,Hangup
Все работает, спасибо.
Re: Распределение звонков по callerID
Добавлено: 26 май 2011, 12:02
ded
Может всё таки книжки почитать, чем просто примеры копировать?
Re: Распределение звонков по callerID
Добавлено: 26 май 2011, 12:20
OWL
Уже читаю книжки
Re: Распределение звонков по callerID
Добавлено: 06 июн 2011, 10:27
kapa6ac
Хотел было создавать новую тему, а эта так удачно подвернулась.
А как быть если есть огромная пачка callerID (хранится sql или txt не суть), которых нужно отправить на определенный внутренний номер и таких пачек не мало?
Re: Распределение звонков по callerID
Добавлено: 06 июн 2011, 11:17
ded
Фишка называется CallerID lookup.
Можно набить в поисковике и почитать.