Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Дано:  Маршрутизатор ESR-12, подключенный транком к IP PBX, через порт FXO к телефонной сети общего пользования (PSTN).

Требуется: Настроить резервный путь прохождения для голосового трафика через телефонную сеть общего пользования (PSTN).

Решение:  При исправном SIP-транке исходящие на внешних абонентов вызовы должны маршрутизироваться в SIP-транк. 

В соответствии с этим условием создаем набор правил ruleset main_rule, первым правилом описываем маршрутизацию в SIP-транк при нормальном режиме работы.

Правило №1
rule 1
      pattern '_X.,1,Dial(SIP/003)'
      enable
    exit

Далее, при недоступности встречной IP PBX через SIP-транк либо при ошибках при обработке вызова на встречной IP-PBX , вызов маршрутизируем через порт FXO в телефонную сеть общего пользования.

Формируем второе правило для резервного пути.

Правило№2
rule 2
      pattern '_50XX,2,Dial(SIP/9/9${EXTEN})'
      enable
    exit

Следующее формируемое правило нужно для корректного освобождения всех каналов, участвующих в построении разговорного тракта, после окончания разговора.

Правило№3
rule 3
      pattern '_50XX,3,Hangup()'
      enable
    exit

Ниже приведен пример диагностики состояния SIP-транка.

Транк в работе
esr-12vf# show pbx registrations 
Username                   Host address       Port     Registration time          Refresh    Status                     
------------------------   ----------------   ------   ------------------------   --------   ------------------------   
100                        192.0.2.2          5060     Wed, 27 Sep 2023           105        Registered                 
                                                       04:23:54       
Транк неисправен
esr-12vf# show pbx registrations 
Username                   Host address       Port     Registration time          Refresh    Status                     
------------------------   ----------------   ------   ------------------------   --------   ------------------------   
100                        192.0.2.2          5060     --                         120        Request Sent         

Диагностику SIP-обмена можно выполнять непосредственно из cli ESR. Ниже пример неудачного вызова. Встречная IP PBX не смогла найти в своем плане нумерации записи с нужным номером абонента.

Ответ с ошибкой на INVITE
esr-12vf# monitor gigabitethernet 1/0/1 protocol udp port 5060
06:50:50.071360 a8:f9:4b:ad:22:2f > b8:97:5a:e1:81:a4, ethertype IPv4 (0x0800), length 847: (tos 0x0, ttl 64, id 8181, offset 0, flags [none], proto UDP (17), length 833)
    192.0.2.1.5060 > 192.0.2.2.5060: SIP, length: 805
        INVITE sip:5003@192.0.2.2:5060 SIP/2.0
        Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bK2c939c73
        Max-Forwards: 70
        From: <sip:003@192.0.2.1>;tag=as06472ac8
        To: <sip:5003@192.0.2.2:5060>
        Contact: <sip:003@192.0.2.1:5060>
        Call-ID: 3d3129a85c317ff27d72a3272d932b6f@192.0.2.1:5060
        CSeq: 102 INVITE
        User-Agent: ESR-12VF
        Date: Wed, 27 Sep 2023 06:50:50 GMT
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
        Supported: replaces
        Content-Type: application/sdp
        Content-Length: 269

        v=0
        o=root 60188966 60188966 IN IP4 192.0.2.1
        s=ESR-12VF
        c=IN IP4 192.0.2.1
        t=0 0
        m=audio 12800 RTP/AVP 8 0 101
        a=rtpmap:8 PCMA/8000
        a=rtpmap:0 PCMU/8000
        a=rtpmap:101 telephone-event/8000
        a=fmtp:101 0-16
        a=silenceSupp:off - - - -
        a=ptime:20
        a=sendrecv
06:50:50.073211 b8:97:5a:e1:81:a4 > a8:f9:4b:ad:22:2f, ethertype IPv4 (0x0800), length 500: (tos 0x0, ttl 64, id 28663, offset 0, flags [none], proto UDP (17), length 486)
    192.0.2.2.5060 > 192.0.2.1.5060: SIP, length: 458
        SIP/2.0 404 Not Found
        Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bK2c939c73;received=192.0.2.1
        From: <sip:003@192.0.2.1>;tag=as06472ac8
        To: <sip:5003@192.0.2.2:5060>;tag=as5c77958b
        Call-ID: 3d3129a85c317ff27d72a3272d932b6f@192.0.2.1:5060
        CSeq: 102 INVITE
        Server: Asterisk PBX 16.28.0~dfsg-0+deb10u3
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
        Supported: replaces, timer
        Content-Length: 0

06:50:50.074025 a8:f9:4b:ad:22:2f > b8:97:5a:e1:81:a4, ethertype IPv4 (0x0800), length 404: (tos 0x0, ttl 64, id 8182, offset 0, flags [none], proto UDP (17), length 390)
    192.0.2.1.5060 > 192.0.2.2.5060: SIP, length: 362
        ACK sip:5003@192.0.2.2:5060 SIP/2.0
        Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bK2c939c73
        Max-Forwards: 70
        From: <sip:003@192.0.2.1>;tag=as06472ac8
        To: <sip:5003@192.0.2.2:5060>;tag=as5c77958b
        Contact: <sip:003@192.0.2.1:5060>
        Call-ID: 3d3129a85c317ff27d72a3272d932b6f@192.0.2.1:5060
        CSeq: 102 ACK
        User-Agent: ESR-12VF
        Content-Length: 0 

В случае поступления вызова с телефонной сети общего пользования на порт FXO ESR, вызов необходимо перенаправить на один из внутренних номеров. Для этого настроим услугу "Горячая линия".

Настройка hotline ipt
hotline ipt
hotline number ipt 003

В итоге получим такую конфигурацию. 

Пример конфигурации маршрутизатора ESR-12
interface gigabitethernet 1/0/1
  ip firewall disable
  ip address 192.0.2.1/24
exit
interface voice-port 1
  sip user phone 003
exit
interface voice-port 4
  sip user phone 9
  caller-id mode off
  hotline ipt
  hotline number ipt 003
  pstn transmit-number
  no pstn transmit-prefix
exit
pbx
  ruleset from_pstn
    rule 1
      pattern '_X.,1,Dial(SIP/003)'
      enable
    exit
    rule 2
      pattern '_X.,2,Hangup()'
      enable
    exit
  exit
  ruleset main_rule
    rule 1
      pattern '_50XX,1,Dial(SIP/trunk_SSW/${EXTEN})'
      enable
    exit
    rule 2
      pattern '_50XX,2,Dial(SIP/9/9${EXTEN})'
      enable
    exit
    rule 3
      pattern '_50XX,3,Hangup()'
      enable
    exit
  exit
  profile fxo_ports
    client friend
    codec allow g711a
    codec allow g711u
    security level invite-port
    ruleset from_pstn
  exit
  profile trunk_SSW
    type external
    client friend
    codec allow g711a
    codec allow g711u
    security level invite-port
    host-address 192.0.2.2
    ruleset from_ssw
  exit
  profile fxs_ports
    client friend
    codec allow g711a
    codec allow g711u
    ruleset main_rule
  exit
  register-server SSW
    ip address 192.0.2.2
    ip port 5060
    profile trunk_SSW
    username 100
    authentication password encrypted CDE65039E5
    enable
  exit
  user 9
    profile fxo_ports
  exit
  user 003
    profile fxs_ports
  exit
  enable
exit 

Следует учитывать что ESR начнет маршрутизировать вызовы через резервный путь не мгновенно после отказа основного пути. Для переключения потребуется некоторое время.




  • Нет меток