Изменение входящего CallerID
Сообщений: 8
|
Изменение входящего CallerID
Доброе время суток.
занимаюсь asterisk-ом не долго так, что сразу прошу прощения за глупый вопос и на данный момент могу привести только конфиги из FreePBX
Немного раскужу, что установлено и что делал.
Установлено asterisk 1.6.2.13 к нему по транку подлючены 2 шлюза. 1 FXO Nateks и 1 GSM шлюз allvoip AV3200.
во FreePBX в Incoming Route прописываю входящий маршрут для определнного номера к примеру (89171234567) после направляю его определенный Extention. данная схема прекрасно работает когда входящий вызов идет через FXO шлюз (шлюз отдает CallerID 89171234567). Но когда звонок приходит через GSM шлюз даный маршрут не работает (шлюз отдает CallerID +79171234567). Пробывал в Incoming Route создавать еще один маршрут где Caller ID Number указывал +79171234567 и .9171234567. но все равно входящий звонок по данному маршруту идти не хочет, уходит по маршруту по умолчанию.
отсюда возникает несколько вопросов:
1. как привести входящий CallerID number пришедший со шлюза FXO в международный формат (помоему Е.164).
2. как можно маршрутизить входящие звонки с GSM шлюза. т.е. убрать знак "+" в самом начале.
Заранее благодарен за ответ.
|
Сообщений: 1530
|
Re: Изменение входящего CallerID
Рас ск ажу на примере, как убрать "+":
exten => s,1,NoOp(ля-ля)
...
exten => s,n,Set(CALLERID(num)=${CALLERID(num):1})
Остальное -- самообучение.
P.S. Переделайте под текущий синтаксис asterisk'а.
|
Сообщений: 8
|
Re: Изменение входящего CallerID
а как это сделать во freePBX? просто я знаю что если использовать FreePBX то править файлы конфигурации бесполезно.
|
Сообщений: 1530
|
Re: Изменение входящего CallerID
Этого не подскажу, т.к. не пользовался им...
|
Сообщений: 8
|
Re: Изменение входящего CallerID
Спасибо и на этом.
только можно по подробнее, где данные изменения нужно вносить.
|
Откуда: SPb
Сообщений: 1307
|
Re: Изменение входящего CallerID
пользуйте regexp в отдельном контексте для gsm шлюза и приводите к нормельному виду номер.
|
Сообщений: 127
|
Re: Изменение входящего CallerID
tma: Расскажу на примере, как убрать "+":
Неправильно.
exten => s,1,NoOp(CALLERID=${CALLERID(num)) - тут не ля-ля, а выводим содержимое переменной ${CALLERID(num) до трансформации CALLERID, и это значение будет = s
...
exten => s,n,Set(CALLERID(num)=${CALLERID(num):1}) - тут от этого значения s пытаемся отрезать первую цифру или знак +
exten => s,1,NoOp(CALLERID=${CALLERID(num)) - тут выводим опять значение переменной ${CALLERID(num) после трансформации, т.е. что получилось, так сказать.
На самом деле переделывать надо не для s, а для конкретного
exten => _+Х.,1,NoOp(CALLERID=${CALLERID(num)) - тут выводим содержимое переменной ${CALLERID(num) до трансформации CALLERID, и это значение будет = набранному экстену
exten => _+Х.,n,Set(CALLERID(num)=${CALLERID(num):1}) - тут от этого набранного номера пытаемся отрезать знак +
exten => _+Х.,1,NoOp(CALLERID=${CALLERID(num)) - тут выводим опять значение переменной ${CALLERID(num) после трансформации, т.е. что получилось, так сказать.
Во freePBX всё проще: создать outbound route где указать
+|X.
и направить его в нужный транк.
|
Сообщений: 1530
|
Re: Изменение входящего CallerID
Entry, какое отношение имеет контекст 's' к CallerID?
Entry:
На самом деле переделывать надо не для s, а для конкретного
А теперь подумайте над тем, что предложили относительно CallerID... ;)
А обработку входящих вызовов я и не показывал, это был пример.
Сами входящие да, нужно делать типа:
exten => _+79XXXXXXXXXX,1,...
или
exten => _+79X.,1,...
Но к CallerID это не имеет никакого отношения.
Хотя, автор и смешал все в кучу, но это не означает, что нужно поддерживать эту кучу в его голове.
|
Сообщений: 127
|
Re: Изменение входящего CallerID
ОК, сбой в программе.
exten => s/_+ZXXXXXXXXXX,1,NoOp(CALLERID=${CALLERID(num)) - тут не ля-ля, а выводим содержимое переменной ${CALLERID(num) до трансформации CALLERID, и это значение допустим +89012345678
exten => s/_+ZXXXXXXXXXX,n,Set(CALLERID(num)=${CALLERID(num):1}) - тут от этого значения пытаемся отрезать +
exten => s/_+ZXXXXXXXXXX,1,NoOp(CALLERID=${CALLERID(num)) - тут выводим опять значение переменной ${CALLERID(num) после трансформации, т.е. что получилось, так сказать - 89012345678.
Я как бы хотел сказать, что не надо всё трансформировать
exten => s,n,Set(CALLERID(num)=${CALLERID(num):1})
такое правило будет резать все CALLERID, а не только те, которые начинаются с +
Во freeBSD это делается во входящей маршрутизации, делается маршрут по CID маске _+ZXXXXXXXXXX
|
Откуда: Днепропетровск, Украина
Сообщений: 199
|
Re: Изменение входящего CallerID
|
|