Re: Cisco Phone и NAT
6apa6ac: Игрался с параметрами ната в конфигах циски результата не принесло. Tcpdump'om на роутере смотрел пакеты от телефона - аппарат отправляет (с порта ххххх на 5060) и астериск отвечает ему (с порта 5060 на ххххх)
Направление верное, но не доигрался. В конфигах телефонов однозначно надо NAT = on и nat_ip = ваш реальный публичный адрес, через который они выходят в мир.
6apa6ac: вот только порт ххххх телефон не слушает, а ждет ответа на 5060.
Не совсем так.
Всё зависит от НАТообразующего устройства. Которые работают не однозначно.
Самый правильный НАТ для устройств за ним на внутренних ИП адресах при регистрации строит трансляции через верхние порты:
*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
728/728 10.233.248.3 D N A 24713 OK (108 ms)
727/727 10.198.39.228 D A 5060 Unmonitored
724/724 10.233.248.3 D N A 16681 Unmonitored
723 (Unspecified) D 0 Unmonitored
722/722 10.198.39.229 D A 5060 Unmonitored
721/721 10.198.39.227 D A 5060 OK (105 ms)
В этом примере видно, что телефоны 724 и 728 находятся за НАТ, и транслируются наружу через 10.233.248.3 занимая порты 16681 и 24713 соответственно. И совершенно не важно, с какого порта они посылают запрос на регистрацию, и на каком порте слушают ответ. Потому что это учитывается при построении трансляции через НАТ.
Не все устройства НАТ так хорошо себя ведут, многие стараются строить симметричный НАТ, типа, с внутреннего 5060 пришёл - через тот же 5060 наружный трансоировал. Не годится для SIP.
Но самая простая схема - border media gateway: поставить вторую карту серверу Астериск с внутренним ИП адресом, на который регистрировать телефоны, без НАТа.
|