LINUX.ORG.RU
решено ФорумAdmin

Преобразование А-номера при звонке в транк

 ,


0

1

Приветствую! Существует транк между FreePBX и Cisco Call Manager (CUCM) Внутренние номера на freePBX трехзначные (101,102 и тд.). При звонке на CUCM внутренний номер так и передается тремя знаками, а мне нужно, чтобы при отправлении звонка в транк к номеру звонящего добавлялся префикс 3.

Например: Номер 102 звонит на CUCM. CUCM должен видеть что ему звонит номер 3102

Преобразование А-номера в freepbx не нашел и не хватает понимания как это сделать в конфигах астериска

Спасибо за помощь


https://community.freepbx.org/t/appending-to-the-caller-id-in-outbound-route/...

If you aren’t happy with the other suggestions made so far, I have one more.

You can build a custom outbound route in extensions_custom.conf, context [from-internal-custom]. There you set up match patterns like you would in an outbound route and manipulate the caller ID like this:

exten => _555NXXNXXX,1,Set(CALLERID(num)=973${CALLERID(num)})

then send the call to the outbound routes and skip the callerid macro (step 1)

exten => _555NXXNXXX,n,Goto(outbound-allroutes,${EXTEN},2)

not tested… good luck!

под рукой развернутого freepbx нет чтобы проверить, но в целом задача решаемая

Kolins ★★★
()

У меня, когда поступает звонок из вне, например с мобильного или с другого региона, «режется» первая цифра 8 (+7) и если на телефоне выбрать номер из пропущенных и нажать «набрать», провайдер без 8 (+7) не понимает номер. Я сделал вот так

;Исходящие в Петропавловск-Камчатский
exten => _4152XXXXXX,1,Goto(numext,8${EXTEN},1)
exten => _84152XXXXXX,1,NoOp(Call-to-the-P-Kamchatskiy)

Тебя должна интересовать первая строчка, где подставляется восьмёрка. Переделай под себя.

Shprot
()
Ответ на: комментарий от Kolins

Спасибо! Адаптировал преобразование в цитате под себя.

Ниже опишу решение с примером (ведь никто не любит темы на форуме без решений)

Смотрим в extensions_additional.conf - именно сюда FreePBX пишет конфиги из веба. Находим исходящий маршрут на транк по имени

[outrt-40] ; KT_CUCM
include => outrt-40-custom
exten => _4XXX,1,Macro(user-callerid,LIMIT,EXTERNAL,)
exten => _4XXX,n,Gosub(sub-record-check,s,1(out,${EXTEN},dontcare))
exten => _4XXX,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CDR(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _4XXX,n,Set(_ROUTEID=40)
exten => _4XXX,n,Set(_ROUTENAME=KT_CUCM)
exten => _4XXX,n,Set(EMERGENCYROUTE=YES)
exten => _4XXX,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _4XXX,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _4XXX,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _4XXX,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _4XXX,n,Set(_NODEST=)
exten => _4XXX,n,Macro(dialout-trunk,3,${EXTEN:1},,off)
exten => _4XXX,n,Macro(outisbusy,)

Значит строка с преобразованием для моего примера должна выглядеть так: ''' exten => _4XXX,1,Set(CALLERID(num)=4${CALLERID(num)}) ''' Однако, мы не можем вставить ее в extensions_custom.conf в контекст outrt-40-custom - АТС проигнорирует одинаковый приоритет в основном контексте и в include. Выходит нам нужно добавить нашу строчку и изменить на n приоритет строчки с Macro

Делаем это в extensions_override_freepbx.conf: ''' [outrt-40] exten => _4XXX,1,Set(CALLERID(num)=4${CALLERID(num)}) exten => _4XXX,n,Macro(user-callerid,LIMIT,EXTERNAL,) '''

zzzt
() автор топика