ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Подмена внешнего CID. Сделано. Возможны ли подводные камни?

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Подмена внешнего CID. Сделано. Возможны ли подводные камни?

Сообщение tol_iwan » 02 фев 2017, 13:23

Проблему по форуму почитал, нашел несколько реализаций. Сделал по своему. Интересует могут ли возникнуть проблемы, может что не учел.
Суть в следующем. SIP-транк к провайдеру. Используется только для исходящих. Провайдер пропускает тот CALLERID, который ему приходит. Нужно для разных внутренних телефонов иметь разные CALLERID - по городам, отделам и прочему. Это не проблема - меняем CALLERID(num) на нужный и шлем вызов. Далее возникает проблема со статистикой, т.к. там номер звонящего начинает отображаться не внутренний, а подставленный внешний. Собственно о решении этой задачи и спрашиваю.
Что нашел на форуме:
1. Если номер для всех подменяется на один, то можно в транке указать fromuser=номер, тогда все путем. Не устраивает, что номер не у всех один.
2. Запихивать в статистику внутренний номер в userfield и играться с ним. Работает, но не хочется лезть в поля статистики, т.к. тут можно починить, а в другом месте поломать. Чтоб все было нормально надо перелопатить диалплан.
3. Если freepbx - указать для внутреннего номера соответсвующее поле подмены номера для исходящих. Тут затрудняюсь описать результат - у меня голый asterisk.
4. Придумал сам(может и описано где-то - я не встретил). Делаю одинаковые транки(type=friend), различающимся только полем fromuser=номер. Т.е. логины/пароли, хосты - все одинаковое. Соответственно указываю в диалплане при исходящем нужный для вызова транк и все путем. Вопрос - нет ли у данной схемы подводных камней - можно ли так клонировать транк? По моим знаниям вроде все нормально должно быть: транк используется только для выхода, т.е. при каждом вызове беруться параметры для этого вызова из разных мест.
Аватар пользователя
tol_iwan
 
Сообщений: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск

Re: Подмена внешнего CID. Сделано. Возможны ли подводные кам

Сообщение april22 » 02 фев 2017, 14:51

Делал на FreePBX. Не претендую на оригинальность.
я строил подобное .
30 номеров на выход (теми ? чем я могу закрыться)

далее творил макрос
Код: выделить все
[cid]
exten => s,1,NoOp(-------${ARG1}-------${OUT_${DIAL_TRUNK}}-----------------${CALLERID(number)}----------------)
exten => s,n,Set(CALLERID(number)=1)
exten => s,n,NoOp(тут будет всякая подстановка определителя )
exten => s,n,Set(CALLERID(number)=${DB(USER/${ARG1}/callerid)})
exten => s,n,Execif($["${CALLERID(number)}"=""]?Hangup())
exten => s,n,NoOp(----!!!!!!!!!!!!!!!!!!!!!---------${CALLERID(number)}---------------- )


перед диалом в [macro-dialout-trunk] делал (контекст перенес в extensions_override_freepbx.conf ) Не стал основной код ковырять на FreePBX
Код: выделить все
exten => s,n,ExecIF($["${OUT_${DIAL_TRUNK}}"="${OUT_4}"]?Macro(cid,${CALLERID(number)},${OUT_${DIAL_TRUNK}})


переменную
${OUT_4} - брал после заведения транка из [globals] файла extensions_additional.conf. Через который мне надо делать подмену.

соответствие номеров и юзеров храню в AStDB.

хотел переделать на AGI, но мудрость админов, каждый раз останавливает ;-)
Своими вопросами , вы загоняете меня в ГУГЛЬ.
april22
 
Сообщений: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: Подмена внешнего CID. Сделано. Возможны ли подводные кам

Сообщение ded » 02 фев 2017, 17:19

... брал беременную переменную
${OUT_4} ... это слишком кастом.
Во freePBX всё это уже элегантно решается указанием у каждого экстена его внешнего номера, поле Outbound CID
И статистика пишется тоже верно при этом.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена внешнего CID. Сделано. Возможны ли подводные кам

Сообщение april22 » 02 фев 2017, 17:44

но там внутренний порядка 250 номеров, а многим и нельзя в мир звонить.
Еще одна преграда .

ну вот как сделал - так сделал. Не судите строго.

Вариант с прописыванием в морде - знаю. Рассматривал, но верил что дойду до AGI , и некой внешней мордочки. Но ....
Своими вопросами , вы загоняете меня в ГУГЛЬ.
april22
 
Сообщений: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: Подмена внешнего CID. Сделано. Возможны ли подводные кам

Сообщение whoim » 05 фев 2017, 14:09

april22 писал(а):Делал на FreePBX

зачем так сложно? Достаточно создать несколько правил в outbound routes и на каждое прописать нужный outbound callerid, на транке оставить пустым.
Одному правилу можно тоже оставить пустым, для forward-ов, тогда будет передаваться номер позвонившего, при пробросе на мобилы сотрудникам будет виден реальный номер.
Все штатными средствами, разруливать через префиксы или масками callee - стороны.

В статистике все красиво.
облачные и локальные сервера asterisk/freepbx/a2billing/crm с полной техподдержкой. skype: whoim2, sipuri: whoim@asterisk.ru
whoim
 
Сообщений: 766
Зарегистрирован: 26 ноя 2013, 23:25
Откуда: Краснодар


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Zavr2008 и гости: 28

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH