Почему при подключении клиента извне ( через шлюз 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...
  • Вопрос задан
  • 3491 просмотр
Решения вопроса 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 так, что то голос не ходит, то сигнализация внутри сети. Ах да, Барнаул.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы