AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Входящая маршрутизация и замена callerid в freepbx.

Asterisk GUI 18 сообщений -
#1

Здравствуйте уважаемые. Заранее прошу прощения за поднятие избитых тем, однако видимо по причине моих кривых рученок и отсутствия понимания работы */freepbx, у меня не работает сабж.
По порядку:
Установил FreePBX 2.7.0.2.
Настроил две входящие аналоговые линии.
Настроил 4 ИП/сип транка. Все с провайдером uiscom.ru.
Теперь бьюсь со следующими задачами.
Когда приходит звонок от uiscom, на телефоне определяется внутренний номер uiscom. А надо чтобы писалось имя компании которой принадлежит этот номер. Пробовал делать по этой инструкции: http://www.freepbx.org/support/documenta ... g-callerid
Однако либо я что-либо не понимаю, либо инструкция устарела.
Так-же у меня стоит модуль Set CallerID, однако нигде не нашел как его настраивать и как им пользоваться вообще. Я так понимаю, что надо создать callerid, затем на него перевести входящую маршрутизацию, а после этого в callerid указать куда переводить звонок. Однако входящая маршрутизация так и идет по правилу "любой DID / любой CID". А по правилу ХХХХ58 / ХХХХ58 так ничего и не приходит.
Буду очень признателен, если дадите ссылки на темы, где это уже поднималось или обсуждалось.

Ну а так-же буду очень признателен за советы или пояснения, какие конфиг файлы в freepbx за что отвечают. А то там сам чорт ногу сломит, какие-то генеряться, какие-то пустые. Может быть есть какой-нибудь мануал на русском по freepbx?
#2

Поиск -> AFOT
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#3

aven писал(а):
Поиск -> AFOT

Нашел, скачал, обязательно осилю за выходные. Спасибо огромное.

А по насущным вопросам подскажите?
#4

Версию астера, конфиги. логи, примеры того что приходит и как хотите что бы это выглядело...
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#5

У меня схожая ситуация, поэтому не буду плодить сущностей.
У меня для входящей связи используется оператор Урал связь информ. Я не понимаю почему им не позволяет религия, но звонки из России они присылают без кода страны. То-есть например звонок с сотового приходит начиная с 9. А звонки из других стран присылают нормально, с кодом страны.
Я хочу сделать систему callback. И для того чтобы получалось перезвонить по номеру звонившего, мне надо поправить его номер. Модулем setCalledId я воспользовался. Добавляю к входящему номеру 8, но при звонке из другой страны, надо бы добавить 810. В правилах inbound routes в поле callerid, как я понимаю, не возможно использование переменных. Вот и вопрос, как же мне распознать откуда пришёл звонок, чтобы применить разные правила для setCallerid?
Версия * 1.6.2.9, freepbx 2.8.0
#6

по длине номера?
#7

Дык это то понятно. Но как?
Можно в inbound routes создать два правила. В одном Caller ID Number: XXXXXXXXXX это Россия и надо добавить 8. А во втором Caller ID Number: XXXXXXXXXXX, то это из-за пределов страны и надо перенаправлять в другой setcallerid, где дописать 810.
Но переменные в поле Caller ID Number: не работают.
#8

Gotoif($[${LEN(${CALLERID(num)})}
#9

В extensions_custom.conf?
#10

именно там
#11

В таком случае мне кажется более простым решением запихнуть это в custom-context. Правда у меня этот модуль почему-то не ставился. Сейчас заодно разберусь с ним. Smile
UPD: чё то не совсем то что надо.
Не хочется просто переносить входящие звонки в отдельный context. Их тогда из freepbx вообще конфигурировать будет нельзя. Ну да видимо придётся.


Последний раз редактировалось: ColdSUN (Пт Июл 23, 2010 09:47)
#12

вам бы больше custom destination подошло
#13

А могу я сделать таким образом. В транке прописываю вместо контекста from-trunk пишу мой какой-нить ext-did-my.
В этом контексте только три строки
exten => s,n,ExecIf($[${LEN("${CALLERID(number)}")} s,n,ExecIf($[${LEN("${CALLERID(number)}")} > 10] ?Set(CALLERID(number)=810${CALLERID(number)}))
exten => s,n(dest-ext),Goto(from-trunk)
И тогда уже обрабатывать это как обычный входящий. Question
#14

можно, только s используйте с умом, а то так получится что любой вызов на разные диды в этом контексте будут всегда одинаково обрабатываться
#15

Дык у меня по этому транку, только один did приходит. А другие транки я не буду в этот контекст заворачивать. И did я же потом могу разобрать, уже в контексте from-trunk.
Как бы получается, что этот контекст у меня в промежутке между входом из транка и inbound routes.
Спасибо за помощь. Very Happy

Added after 30 minutes:

Не взлетело. Звонок приходит в астериск, и затыкается.
Видимо не уходит по этой строке.
exten => s,n(dest-ext),Goto(from-trunk)

Added after 3 hours 23 minutes:

В общем для тех кто может быть столкнётся с похожей проблемой, я решил её так:
Не стал прописывать контекст в транке, а оставил там from-trunk.
Далее добавил Custom Destination: app-setcid-custom,1,1
На этот custom destination отправил звонок в inbound routes.
До этого у меня уже был SetCallerID в котором было прописано добавлять 8 и куда после этого дальше отправлять звонок.
в extensions_custom.conf прописал следующее:
[app-setcid-custom]
exten => 1,1,Noop(Changing Callerid; (add prefix))
exten => 1,n,ExecIf($[${LEN(${CALLERID(num)})} 1,n,Set(CALLERID(name)=${CALLERID(num)})
exten => 1,n,Goto(app-setcid,1,4)
Последняя строка это отправка на Destination из прописанного SetCallerID. "1" означает первый SetCallerID, их ведь может быть несколько.
Таким образом можно направление звонка после добавления префикса изменять из web интерфейса FreePBX.
Всем спасибо.
#16

Может кому пригодится, по инструкции (http://www.freepbx.org/support/documenta ... g-callerid) заработала запись в файле /etc/asterisk/extensions_custom.conf
[from-pstn-custom]
exten => _X!,1,Noop(Changing Callerid; (add prefix))
exten => _X!,n,ExecIf($[${LEN(${CALLERID(num)})} from-pstn
#17

видимо народ не совсем понимает как оно работает.

Цитата:
ExecIf($[${LEN(${CALLERID(num)})}
#18

В данном конкретном случае короткие международные номера не интересовали.
Когда абонент начнет на других АТС набирать 0 или 00, тогда и здесь поменяю, сославшись на глобальные изменения в правилах набора номеров.
А вот с адресными книгами будут проблемы. Но это уже другая тема.