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

преобразование callerid

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

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

Ответить
val2k
Сообщения: 1
Зарегистрирован: 11 апр 2016, 16:51

преобразование callerid

Сообщение val2k »

В продакшене стоит связка freepbx на debian7 (asterisk 1.8) и bitrix24(crm).
Freepbx в этой ситуации выступает как бы прокси для битрикса, то есть часть номеров подключены из мультифона, часть на voip-to-gsm шлюзах и все они заведены в битрикс, который выполняет функции маршрутизации звонков. Сейчас все настроено и работает, но появилась новая задача - преобразование callerid звонящего. Суть в том, чтобы менеджер не видел сотовый номер клиента и не мог на него перезвонить с личного номера в личных интересах, но при этом мог перезвонить через asterisk. В идеале хотелось бы, чтобы при входящем вызове callerid звонящего преобразовывался простой математической операцией скажем в 20-значный номер, по которому на первый взгляд нельзя было бы восстановить исходный сотовый номер клиента. Но при этом, чтобы при звонке на этот номер asterisk выполнял обратное преобразование и дозванивался до клиента. Второй вариант - это хранить некую "базу преобразований", исходя из которой выполнялся бы звонок. Стоит вопрос, как это сделать на чистом asterisk и как это архитектурно подключить во freepbx.
Pechen
Сообщения: 118
Зарегистрирован: 29 дек 2013, 23:16

Re: преобразование callerid

Сообщение Pechen »

очевидно, что для этого достаточно настроить астериск.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: преобразование callerid

Сообщение zzuz »

для входящих . Сразу на freepbx покажу.

Код: Выделить всё

[from-pstn-custom]
exten => _X.,1,Set(CID_MD5=${MD5(CALLERID(num)})
exten => _X.,n,Set(DB(MD5_CID/${CID_MD5})=${CALLERID(num)})
exten => _X.,n,Goto(ext-did,${EXTEN},1)
для исходящих

Код: Выделить всё

[from-internal-custom]
exten => _.,1,GotoIF($[${DB_EXISTS(MD5_CID/${EXTEN})}]?outbound-allroutes,${DB(MD5_CID/${EXTEN})},1)
Само собой нужно внимательно смотреть за экстеншеном "_." . MD5 как один из вариантов . Можете сгенерировать число из urandom

Код: Выделить всё

exten => _X.,1,Set(CID_MD5=${SHELL(< /dev/urandom tr -dc 0-9 | head -c20)})
Линия24 - Системы Массового Телефонного Обслуживания
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH