Почему при подключении клиента извне ( через шлюз 192.168.1.1 ) Asterisk регистрируется, но звонить не может?

Добрый день.
Есть сервер Asterisk и провайдер Beeline.
Провайдер выдает sip только через свой локальный адрес (10.78.210.26), трафик утекает на внешний ip (213.33.248.28).
То есть в системе есть 2 интерфейса, один для Beeline, один для наших клиентов.

ifconfig
eth0      Link encap:Ethernet  HWaddr 90:2b:34:ce:ae:71
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0

eth0:0    Link encap:Ethernet  HWaddr 90:2b:34:ce:ae:71
          inet addr:10.78.210.26  Bcast:10.78.210.27  Mask:255.255.255.252

Я написал маршруты:
#       ### static routing ###
        route add default gw 192.168.1.1
        route add -net 213.33.248.28 netmask 255.255.255.252 gw 10.78.210.25

И всё вроде бы хорошо, но есть одна загвоздка: при подключении клиента извне (через шлюз 192.168.1.1 ) он регистрируется, но звонить не может.
rtp debug не показывает никакого rtp-трафика.

rtp debug
*CLI> rtp set debug on
RTP Debugging Enabled
  == Using SIP RTP CoS mark 5
    -- Executing [xxxxxxx@main:1] Dial("SIP/xxx-0000001c", "SIP/xxxxxxx@beeline20,30,tr") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/xxxxxxx@beeline20
    -- SIP/beeline20-0000001d is making progress passing it to SIP/xxx-0000001c
    -- SIP/beeline20-0000001d answered SIP/xxx-0000001c
[Feb  4 11:48:33] WARNING[15035]: chan_sip.c:3656 retrans_pkt: Retransmission timeout reached on transmission W-Y.GiIfKanBTJx79PwCxxa24.q4vU6E for seqno 14764 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 6400ms with no response
[Feb  4 11:48:33] WARNING[15035]: chan_sip.c:3685 retrans_pkt: Hanging up call W-Y.GiIfKanBTJx79PwCxxa24.q4vU6E - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).
  == Spawn extension (main, xxxxxx, 1) exited non-zero on 'SIP/xxx-0000001c'



Если указать externip то я смогу звонить локально (из-за NAT), но не смогу звонить через beeline...
  • Вопрос задан
  • 3498 просмотров
Решения вопроса 1
The_KOPACb
@The_KOPACb Автор вопроса
Указал

localnet=192.168.1.0/255.255.255.0 ; RFC 1918 addresses
       localnet=213.33.248.28/255.255.255.252

        externaddr = address.on.192.168.1.1          ; use this address.

и всё заработало как надо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
имейте ввиду - билайн странный провайдер
У меня в городе они не делают полноценный прокси, а требуют чтобы мой астериск смотрел в их сеть как в основной шлюз. Чем это опасно - внутри билайновских клиентов звонки не ходят. Я пытался указывать только нужные подсети - дык выяснилось что они не брезгуют рандомными адресами в серых сетях(серыми и даже БЕЛЫМИ!). Например даже 1.1.1.1/30 был задействован как серый адрес. А ещё, периодически, накурятся "чего то там" и меняют ACL так, что то голос не ходит, то сигнализация внутри сети. Ах да, Барнаул.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы