VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Распределение звонков по callerID

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

OWL
Сообщения: 7
Зарегистрирован: 25 май 2011, 12:37

Распределение звонков по callerID

Сообщение 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 для распределения звонков?
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Распределение звонков по callerID

Сообщение 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 - второй.


Не хотите книжки для начала почитать?
OWL
Сообщения: 7
Зарегистрирован: 25 май 2011, 12:37

Re: Распределение звонков по callerID

Сообщение 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'.
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Распределение звонков по callerID

Сообщение ded »

У Вас не корректно считывается CallerID.
Проверяем?


exten => 70199,1,NoOp(Caller ID is ${CALLERID(all)})
exten => 70199,2,SayDigits(${CALLERID(num)})
exten => 70199,3,Hangup
SVoy
Сообщения: 953
Зарегистрирован: 31 авг 2010, 10:24

Re: Распределение звонков по callerID

Сообщение SVoy »

а если "ничего не вижу, ничего не слышу, ничего не знаю"? ;)
Изображение
Готов к труду и обороне!
http://svoy.in.ua - для своих
OWL
Сообщения: 7
Зарегистрирован: 25 май 2011, 12:37

Re: Распределение звонков по callerID

Сообщение 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

Все работает, спасибо.
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Распределение звонков по callerID

Сообщение ded »

Может всё таки книжки почитать, чем просто примеры копировать?
OWL
Сообщения: 7
Зарегистрирован: 25 май 2011, 12:37

Re: Распределение звонков по callerID

Сообщение OWL »

Уже читаю книжки :)
kapa6ac
Сообщения: 12
Зарегистрирован: 23 май 2011, 11:53

Re: Распределение звонков по callerID

Сообщение kapa6ac »

Хотел было создавать новую тему, а эта так удачно подвернулась.
А как быть если есть огромная пачка callerID (хранится sql или txt не суть), которых нужно отправить на определенный внутренний номер и таких пачек не мало?
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Распределение звонков по callerID

Сообщение ded »

Фишка называется CallerID lookup.
Можно набить в поисковике и почитать.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH