SCROLL
Среднее время на прочтение: 2 мин.

Как настроить DU.ae SIP Trunk в FreePBX

Для памятки опишу как настроить SIP транк от оператора du.ae (Дубаи) в FreePBX.

Оператор DU.ae предоставляет SIP транк через кабель от провайдера со следующими данными по подключению SIP транка:

В общих настройках во вкладке General SIP Settings убедимся что поле External Address пустое.

Настройка FreePBX (Добавление SIP-транка)

Настраивать SIP транк будем через PJSIP.

На вкладке General в поле Trunk Name вводим произвольное, понятное название транка, в моем случае я использовал USERNAME, остальное все оставляем по-умолчанию.

На вкладке pjsip Settings во вкладке General заполняем отмеченные поля, подставляем из таблицы с данные по подключению:

  • Username — USERNAME
  • SIP Server — DOMAIN
  • SIP Server Port — PORT

Во вкладке Advanced заполняем отмеченные поля все так же используя данные из таблицы:

  • Outbound Proxy — sip:SBC/HOSTNAME:5060\;lr
  • Contact User — USERNAME
  • From Domain — DOMAIN
  • From User — USERNAME
  • Client URI — sip:USERNAME@DOMAIN
  • Server URI — sip:USERNAME@DOMAIN
  • AOR Contact — sip:USERNAME@DOMAIN
  • Match (Permit) — SBC/HOSTNAME;DOMAIN
  • Trust RPID\PAI — Yes
  • Send RPID\PAI — Send P-Asserted-Identity header

Сохраняем и применяем изменения. Результат подключения.

asterisk -rx "pjsip show endpoint 97148888700p"

 Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
    I/OAuth:  <AuthId/UserName...........................................................>
        Aor:  <Aor............................................>  <MaxContact>
      Contact:  <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..>
  Transport:  <TransportId........>  <Type>  <cos>  <tos>  <BindAddress..................>
   Identify:  <Identify/Endpoint.........................................................>
        Match:  <criteria.........................>
    Channel:  <ChannelId......................................>  <State.....>  <Time.....>
        Exten: <DialedExten...........>  CLCID: <ConnectedLineCID.......>
==========================================================================================

 Endpoint:  97148888700p                                         Not in use    0 of inf
    OutAuth:  97148888700p/97148888700p
        Aor:  97148888700p                                       0
      Contact:  97148888700p/sip:97148888700p@du.ae        76354d9fd5 Avail       141.307
  Transport:  0.0.0.0-udp               udp      3     96  0.0.0.0:5060
   Identify:  97148888700p/97148888700p
        Match: 10.59.108.25/32
asterisk -rx "pjsip show registration 97148888700p"

 <Registration/ServerURI..............................>  <Auth....................>  <Status.......>
==========================================================================================

 97148888700p/sip:97148888700p@du.ae                     97148888700p                Registered        (exp. 248s)

Настройка FreePBX (Входящие вызовы)

Оператор DU.ae передает входящий номер как 048888788 от исходного 97148888700, т.е. код страны 971 отметается, вместо него указывают 0 и дальше номер.

Настройка FreePBX (Исходящие вызовы)

Для настройки исходящих вызовов во вкладке Route Settings указываем Trunk Sequence for Matched Routes добавленный SIP транк.

Во вкладке Dial Patterns указываем маску шаблона для звонков на внешние номера.

В случае если вам провайдер предоставил диапазон номеров и вам необходимо реализовать так что какие то внутренние номера должны выходить во вне под определенными номерами, то нужно для внутреннго номера в поле Outbound CID указать внешний номер который должен быть присвоен при звонке на внешние номера.

Далее нужно в SIP заголовке P-Preferred-Identity передать информацию провайдеру о CID. В FreePBX нужно модифицировать секцию func-apply-sipheaders в dialplan.

В файле /etc/astersik/extensions_override_freepbx.conf прописываем следующее:

/etc/astersik/extensions_override_freepbx.conf
[func-apply-sipheaders]
exten => s,1,Noop(Modify func-apply-sipheaders in extensions_custom.conf for DU.AE)
exten => s,n,Set(USEROUTCID=${DB(AMPUSER/${CALLERIDNUMINTERNAL}/outboundcid)})
exten => s,n,GotoIf($["${USEROUTCID}" = ""]?defcid:outcid)
exten => s,n(outcid),Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:${USEROUTCID}@du.ae>)
exten => s,n(defcid),Return

Сохраняем и применяем изменения во FreePBX. Проверяем работу.

Обсуждение

0 комментариев

Нет комментариев.