Asterisk SIP параметр: nat


Где используется

Для определения клиентов и в качестве глобальной настройки для всех клиентов, по умолчанию.

nat=yes|no|never|route

Если Вы устанавливаете параметр nat=yes для клиента ( SIP UA ), который находиться ЗА NAT, Тогда работа Astersik с устройствами, находящимися за маршрутизатором с системой трансляции IP адресов, претерпевает некоторые изменения в работе с адресацией в сообщениях и т.д., что дает возможность нормально работать с такими SIP клиентами. Что же реально изменяется в работе еще не полностью документировано, кроме как (возможно) в исходных кодах.

Что делать, если ваш телефон не поддерживает параметр "rport"

Значение nat=never, было добавлено где то 29 июня 2004 года, для решения проблемы, когда некоторые SIP UA не могут корректно обработать дополнительное поле "rport" в заголовках SIP сообщений (смотри RFC3581 ), один из таких клиентов - это SIP телефон "Uniden UIP200", для которых должен быть создан параметр nat=route.
К сожалению, поддержка этой "возможности" смешана с поддержкой симметричного NAT (параметр NAT=yes), однако, эти два механизма используют различные алгоритмы работы. Более удачным решением, было бы введение отдельного параметра для поддержки RFC3581. Значение 'no', на данный момент, подразумевает отсутствие поддержки "NAT и/или RFC3581"

Вопрос

Какой же реальный эффект от использования этого параметра?

Используйте эту возможность в связке с параметром qualify. Значение NAT=yes , заставляет сервер Asterisk игнорировать информацию об адресах, содержащуюся в полях SIP и SDP, и он будет отправлять ответы на тот IP адрес и порт, с которого приходит запрос. Указание NAT=yes , включает работу симметричного RTP в сервере Asterisk.

Ссылки по теме: