Страница 1 из 1

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

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

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

Добавлено: 11 апр 2016, 17:58
Pechen
очевидно, что для этого достаточно настроить астериск.

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

Добавлено: 11 апр 2016, 18:29
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)})