rport sip что это

Дополнительные настройки соединения с SIP-сервером (версия 3.xx)

Содержание

Как попасть на страницу настроек

На странице запуска в меню слева при остановленном сценарии кликнуть по пункту «Параметры устройства»,

затем выбрать параметр «IP-телефония», указав в строке «Имя или ip-адрес шлюза» адрес SIP-шлюза и нажать кнопку «Далее» внизу справа.

Описание настройки

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Выбрать IP-адрес для соединения

Посмотрите, какие параметры есть в выпадающем меню. Если у вас в списке только один IP-адрес, можете оставить значение «Автоматически», если адресов два или более, необходимо выбрать именно тот IP-адрес, через который будет происходить соединение с SIP-шлюзом.

Использовать StunServer

При наличии роутера, маршрутизатора или интернет-сервера включите данный параметр с настройками по умолчанию, чтобы автоматически определить топологию сети. В случае, если не слышно ответа от абонента или абонент не слышит вашего сообщения, попытайтесь включить эту опцию.

Использовать User ID

Позволяет задать имя пользователя User ID, в случае, если он отличается от Auth ID.

Использовать Caller ID

Позволяет задать номер телефона, который будет отображаться у абонента, в качестве номера вызывающего. Поддерживается не всеми SIP-шлюзами.

Rport

При использовании протоколов транспортного уровня без гарантии доставки отправка ответа на SIP-запрос производится на тот IP-адрес, с которого запрос был получен. Этот IP-адрес транспортный уровень протокола SIP заносит в параметр received заголовка Via перед передачей сообщения вышележащим уровням. Номер же порта для отправки извлекается из заголовка Via. В случае применения NAT — это порт, на котором ожидает ответа находящийся за NAT пользовательский агент, а не тот порт, через который происходит NAT-трансляция и на котором NAT ожидает поступления ответа; следовательно, ответ не может достичь адресата.

Решение этой проблемы было предложено в RFC 3581 и заключается в отправке ответа на порт, с которого запрос был получен, вместо порта, взятого из заголовка Via. При этом сам порт заносится в специальный параметр rport-заголовка Via. Таким образом, прокси-сервер отсылает ответное сообщение на порт и IP-адрес, с которых пришёл запрос. Это позволяет ответу найти соответствие в таблице трансляции NAT и достичь целевого узла. Этот метод называется симметричной маршрутизацией ответов.

Программное распознавание голосового ответа абонента

По умолчанию выключено. Используется программное распознавание снятия трубки абонентом. Использовать не рекомендуется, в правильно настроенном SIP-шлюзе распознавание ответа происходит на аппаратном уровне. Подробнее в вопросах и ответах.

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Включить DNS

По умолчанию включено. Рекомендуется оставлять включенным этот параметр при соединении с сервером, указываемом по доменному имени, а не по IP-адресу.

Поддерживать соединение с SIP-сервером (Keep Alive)

По умолчанию выключено. Некоторые SIP-серверы, особенно принимая входящие звонки, требуют для поддержания сеанса соединения, чтобы клиентская программа периодически посылала на сервер запрос. Включение данной опции активирует режим соединения, в котором через выбранное пользователем время посылается запрос нужного типа.

Тип распознавания DTMF-сигналов

Можно выбрать один, два или все три варианта распознавания нажатых абонентом клавиш.

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Подробное описание дополнительных настроек SIP-соединения можно найти на странице устройств SIP.

Источник

NAT, SIP и Asterisk

Трансляция сетевых адресов (NAT) является обычной практикой в сети и нередко мешает прохождению голосовых пакетов (нет звука) и инициализации соединений (нет соединения). Решение этой проблемы требует понимания принципов работы NAT и VoIP. В этой статье рассматривается протокол SIP и Asterisk, но проблемы и решения применимы и к большинству других приложений и протоколов.

Reinvite

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Клиент за NAT

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

[sip_phone]
nat=yes
qualify=300 ; проверять соединение каждые 300 мс.

nat=force_rport,comedia

При такой конфигурации Asterisk использует внешний IP адрес externip для вызовов клиентов с параметром nat=yes. Дополнительно параметр qualify=yes поддерживает соединение, не позволяя удалять запись из таблицы трансляций.

SIP клиенты и Asterisk за NAT

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это
Все усложняется если и Asterisk, и клиенты, находятся за NAT. Клиенты с внешней стороны не смогут получать SIP сообщения и принимать звонки. Или в SIP сообщении будет указан локальный IP адрес телефона, что приведет к потере звука.
Чтобы избежать потери звука запретите re-invite в файле sip.conf

Опция canreinvite устарела. Используйте ‘directmedia’.

Но клиенты находящиеся за NAT, все равно не смогут инициировать соединение с Asterisk и направить голосовые пакеты RTP на требуемый екстеншен. Для того чтобы это работало, надо пробросить требуемые порты через брандмауер на Asterisk. Диапазон RTP портов используемых Asterisk, назначается в файле rtp.conf.

По умолчанию задан диапазон от 10000 до 20000. Измените диапазон в соответствии с вашими потребностями (3 порта на каждый конкурирующий вызов).
Для нормальной работы за NAT, потребуется пробросить диапазон RTP портов в соответствии с настройками в файле rtp.conf и порт SIP (обычно 5060). В iptables это будет выглядеть так:

Где eth0 – внешний интерфейс, а 192.168.1.10 – IP адрес Asterisk.

Основные параметры конфигурации NAT для Asterisk

localnet

Параметр ‘localnet’ список сетевых адресов, которые считаются «внутренними».

externaddr

Внешний адрес щлюза (маршрутизатора) во внешнюю сеть. «externaddr = hostname[:port]» указывает статический адрес[:port] который будет использован в SIP и SDP сообщениях. Имя хоста (hostname) поднимается каждый раз, когда [пере]загружается sip.conf. Если порт не назначен, используется значение указанное в параметре «udpbindaddr». примеры:

externhost

«externhost = hostname[:port]» то же что и «externaddr» только это ‘hostname’ обновляемое через «externrefresh» секунд (по умолчанию 10 сек.).

В дополнение к вышесказанному Asterisk имеет дополнительный параметр «NAT» для разрешения вопросов, связанных со входящими SIP или медиа сессиями. В частности, в зависимости от настроек ‘NAT=’ как описано ниже, Asterisk может переопределить адрес/порт информацию, указанную в SIP/SDP сообщениях.

настройки могут совмещаться:

media_address

IP адрес используемый для медиа (аудио, видео и текста) в SDP может быть переназначен параметром ‘media_address’. Данный параметр может быть использован только в секции [general].

icesupport

ICE/STUN/TURN использование может быть включено глобально или для конкретного пира с помощью ‘icesupport’ опции.

directmedia

Для отключения прямых RTP потоков (peer-to-peer) используйте опцию:

устаревшие настройки sip.conf

externip= Этот параметр задается в секции [general] файла sip.conf и указывает внешний IP адрес, или имя хоста на вашем устройстве NAT.

Этот адрес будет использован для общения с устройствами с установленным параметром nat=force_rport.
localnet = Этот параметр задается в секции [general] файла sip.conf и указывает на локальную сеть и используется для обращения к устройствам с параметром nat=no.

Возможные значения:
NAT= yes, no, never, route

Начиная с версии Asterisk 11: nat=yes is deprecated, use nat=force_rport,comedia instead

Asterisk будет отправлять голосовые пакеты на порт и IP адрес с которого их получает а не указанные в SIP и SDP сообщениях.
Это будет работать только, если телефоны за NAT будут использовать для одинаковый порт для голосовых пакетов RTP и одинаковый (но отличный от голосового) для сигнализации RTCP.

directmedia

qualify = Эта опция имеет два назначения.Первое – поддерживать запись в таблице трансляций NAT и контролировать регистрацию телефона.
Возможные значения:

Этот параметр задает проверку по умолчанию каждые 2 секунды.

Это выключает проверку.

ключает проверку через заданное время в 300 ms.

rtp.conf

Задает первый порт диапазона для приема и оправки голосовых пакетов RTP.

Задает последний порт диапазона для приема и оправки голосовых пакетов RTP.

В Asterisk начиная с версии 11 появилась поддержка stun. icesupport должно быть включено.

Настройка res_pjsip для работы через NAT

В данной статье приведены примеры рабочей конфигурации драйвера канала PjSIP, когда Asterisk находится за NAT (Network Address Translation). Asterisk подключается через NAT к провайдеру IP телефонии (ITCP).
Этот пример подходит для большинства простых сценариев NAT при следующих условиях: Asterisk и телефоны находятся в частной сети. Маршрутизатор имеет локальный и публичный интерфейсы. Маршрутизатор реализует функции Трансляции Сетевых Адресов (NAT) и файерволла. На маршрутизаторе настроен проброс SIP и RTP портов на локальный IP адрес сервера Asterisk. В данном примере проброшены порты 5060 TCP/UDP и UDP 10000-10100 на LAN 10.10.2.10.
Устройства используемые в примере:

УстройствоIP адрес в примере
VOIP телефон (7777)10.10.2.77
PC/Asterisk10.10.2.10
МаршрутизаторLAN: 10.10.2.1
WAN: 123.123.123.123
ITSP SIP шлюз203.0.113.1(gw1.example.com)
203.0.113.2(gw2.example.com)

Для наглядности, в примере использованы фальшивые детали:
TSP номер аккаунта : 123456789 и DID номер входящий от провайдера IP телефонии (ITSP): 3216111.

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

Источник

NAT, SIP и Asterisk

Если у вас нет звука, нет звука в одну сторону, нет слышимости, прочтите внимательно эту инструкцию.

Reinvite

Клиент за NAT

Начиная с версии Asterisk 11: ‘nat=yes’ устарело, используйте ‘nat=force_rport,comedia’
nat=force_rport,comedia

SIP клиенты и Asterisk за NAT

Чтобы избежать потери звука запретите re-invite в файле sip.conf

Опция canreinvite устарела. Используйте ‘directmedia’.

По умолчанию задан диапазон от 10000 до 20000. Измените диапазон в соответсвии с вашими потребностями (3 порта на каждый конкурирующий вызов).

Основные параметры конфигурации NAT для Asterisk

sip.conf

Поддержка NAT в Asterisk 12

localnet

параметр ‘localnet’ список сетевых адресов, которые считаются «внутренними».

externaddr
externhost

«externhost = hostname[:port]» то же что и «externaddr» только это ‘hostname’ обновляемое через «externrefresh» секунд (по умолчанию 10сек.).

настройки могут совмещаться:

Установка force_rport принуждает Asterisk всегда передавать ответы обратно на адрес / порт, с которых он получил запросы, даже если другая сторона не поддерживает добавления параметра ‘rport’.

media_address
icesupport
directmedia

устаревшие настройки sip.conf

bindaddr= IP адрес Asterisk, если указано 0.0.0.0, то любой адрес.

Этот адрес будет использован для общения с устройствами с установленным параметром nat=force_rport.

localnet= Этот параметр задается в секции [general] файла sip.conf и указывает на локальную сеть и используется для обращения к устройствам с параметром nat=no.

Начиная с версии Asterisk 11: nat=yes is deprecated, use nat=force_rport,comedia instead

Asterisk будет отправлять голосовые пакеты на порт и IP адрес с которого их получает а не указанные в SIP и SDP сообщениях.

directmedia

Этот параметр задает проверку по умолчанию каждые 2 секунды.

Это выключает проверку.

Включает проверку через заданное время в 300 ms.

rtp.conf

В Asterisk начиная с версии 11 появилась поддержка stun. icesupport должно быть включено.

Настройка res_pjsip для работы через NAT

Устройства используемые в примере:

УстройствоIP адрес в примере
VOIP телефон(7777)10.10.2.77
PC/Asterisk10.10.2.10
МаршрутизаторLAN : 10.10.2.1
WAN: 123.123.123.123
ITSP SIP шлюз203.0.113.1(gw1.example.com)
203.0.113.2(gw2.example.com)

Для наглядности, в примере использованы фальшивые детали:

pjsip.conf конфигурация
local_net

Диапазон адресов локальной сети.

external_media_address
external_signaling_address
direct_media

Удаленные телефоны за NAT

Источник

Asterisk 11 за NAT, нет звука в одну сторону, нет слышимости. Что делать?

Опубликовано в Asterisk

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Преодоления NAT для Asterisk бывает очень сложной задачей (нет звука), потому как RTP трафик и SIP сигнализация идут отдельно. В интернете практически все описания настроек опции NAT, сводятся к более старым версия Asterisk 1.8. Попытаемся рассмотреть опции настроек, для актуального Asterisk 11. Если у вас нет звука, нет звука в одну сторону, нет слышимости, прочтите внимательно эту инструкцию.

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Когда клиент пытается инициировать сеанс связи, оно отправляет SIP сообщение, содержащее его IP-адрес и некоторую дополнительную информацию. Получив это сообщение, Asterisk использует его, чтобы определить, куда отправить ответ на это сообщение. Поскольку устройство находится за NAT, SIP-сообщение будет иметь серый адрес, например, 192.168.1.104. Тем не менее, мы можем сообщить Asterisk, игнорировать SIP-адрес этого сообщения, а вместо этого использовать то, что поставляется сетевым стеком. Рассмотрим какие опции мы можем использовать в sip.conf для преодоления NAT:

Стоит заметить что начиная с версии Asterisk 11: nat=yes устарело, и необходимо использовать nat=force_rport,comedia.

RFC 3581 позволяет одному клиенту использовать параметр rport, для того чтобы передать другому клиенту, что оно должно реагировать на адрес источника IP и порт запрос, а не на IP адрес прописанный в SIP заголовке. Установка параметра rport может произойти, когда устройство знает, что он находиться за NAT и не может записать информацию, которая была бы необходима, для связи в обоих направлениях, в заголовке SIP. Asterisk всегда читает параметр rport, если он передается, но так как это происходит не так часто, как хотелось бы, мы можем заставить Asterisk предположить, что устройство будет передавать параметр rport. Выполняя это, мы заставляем Asterisk всегда отвечать на адрес IP и порт источника сообщения, от которого он получил запрос. Если настройки NAT явно не определены, Asterisk будет выполнять auto_force_rport, в качестве параметра по умолчанию. Вы можете принудительно изменить такое поведение, установив nat=force_rport.

Во многих реализациях NAT, при не получении пакетов поддержки диалога, может происходить закрытие соединения. В Asterisk для предотвращения этого используется опция qualify=yes, выполняющая отправку OPTIONS серверу каждые 2000 миллисекунд (2 секунды), не давая закрыть сессию NAT устройством. Также можно указать свое время в миллисекундах:

SIP клиенты и Asterisk за NAT

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Есть два основных варианта, когда Asterisk находится за NAT: externaddr и extern хост.

Внешний адрес шлюза (маршрутизатора) во внешнюю сеть. «externaddr = hostname[:port]» указывает статический адрес[:port] который будет использован в SIP и SDP сообщениях. Имя хоста (hostname) поднимается каждый раз, когда [пере]загружается sip.conf. Если порт не назначен, используется значение указанное в параметре «udpbindaddr».

«externhost = hostname[:port]» то же что и «externaddr» только это ‘hostname’ обновляемое через «externrefresh» секунд (по умолчанию 10сек.).

Параметр ‘localnet’ указывает список сетевых (серых) адресов, согласно RFC1918, которые считаются «внутренними».

Обработка RTP медиа потоков.

В том случае когда вы используете внешнего VoIP провайдера, а ваш Asterisk находиться за NAT устройством, необходимо использовать опцию directmedia=no:

Стоит упомянуть, если ваш провайдер VoIP использует RTP медиа сервер с IP адресом отличным от SIP сервера, а сам Asterisk находиться за NAT, опция directmedia=no может не подойти для вас.

Asterisk будет всегда использовать симметричный режим RTP, как определено в RFC 4961, это означает то, что Asterisk всегда будет отправлять пакеты из того же порта, и то которого их получил. Значение по умолчанию directmedia=yes, так что если у вас есть конечные точки за NAT, вы должны установить опцию directmedia=no.

IP адрес используемый для RTP (аудио, видео и текста) в SDP может быть переназначен параметром media_address. Данный параметр может быть использован только в секции [general].

ICE/STUN/TURN использование может быть включено глобально или для конкретного пира, с помощью icesupport опции, по умолчанию эта опция выключена.

Источник

SIP телефоны и NAT

Сегодня мы поговорим о SIP телефонах. А именно, об опыте использования SIP телефонов в локальной сети офиса, которые подключаются к SIP серверу через публичную сеть Интернет. Если вы используете SIP-телефоны вместе с нашим облачным сервисом, то данная заметка будет полезна и поможет избежать основных проблем при работе IP телефонии за NAT.

Что такое NAT?

Начнем с того, а что же такое этот NAT?

Не буду копировать из wiki умные вещи, попробую объяснить проще — NAT (Network Address Translation) — это механизм, который позволяет маршрутизатору (наш сервер, роутер, модем – все, что используем для выхода в Интернет) определять какие сервисы находятся за роутером и должны быть доступны из интернета, чтобы пользователи оттуда могли этими сервисами пользоваться. Так как, в большинстве случаев, у нас всего 1 внешний (белый, публичный – как кому больше нравится) IP адрес, а устройств в сети много, то мы используем локальные (серые) IP адреса. Они не доступны из Интернета, а NAT помогает нам опубликовать в мир какой-то порт из локальной сети.

Надеюсь, что здесь пока все понятно…

Проблема телефонии за NAT

Начнем с голоса. Вряд ли стоит объяснять, почему NAT является проблемой для голосового трафика. Если SIP протокол использует 1 статический порт на аппарате, то для голоса такой порт назначается динамически при каждом новом звонке. Как результат, каждый из нас знаком с ситуацией в IP-телефонией, когда голос ходит только в одном направление или вовсе отсутствует. Сразу следует заметить, что универсального «лекарства» здесь нет: все решения этой проблемы в большей или меньшей степени частные. Впрочем, проблема обхода NAT голосовым потоком – это лишь одна сторона медали. Вначале мы рассмотрим, какие препятствия создаёт NAT для сигнальных сообщений (в таких случаях звонок вообще не попадает на телефон за NAT) и какие расширения SIP были разработаны для их преодоления.

Обход NAT SIP-сигнализацией

При использовании UDP протокола, отправка ответа на SIP-запрос осуществляется на тот IP-адрес, с которого запрос был получен. Номер же порта для отправки извлекается из заголовка Via в SIP пакете. В случае использования NAT – это порт, на котором ожидает ответа наш IP телефон, но точно не тот порт, через который происходит NAT-трансляция и на котором NAT ожидает поступления ответа, чтобы его дальше направить уже на телефон. Мы получаем ситуацию, в которой звонок не может достичь SIP телефона:

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Для решения этой проблемы SIP умеет отправлять ответ на порт, с которого запрос был получен, вместо порта, взятого из заголовка Via. При этом сам порт заносится в специальный параметр rport-заголовка Via. Это позволяет ответу найти соответствие в таблице NAT и достичь целевого узла. Этот метод называется симметричной маршрутизацией ответов.

Другая проблема заключается в том, что каждая запись в таблице трансляции NAT автоматически удаляется после определенного промежутка времени. Это актуально не только для установления нового соединения, но и во время SIP-диалогов новые сообщения также могут не поступать в течение длительного промежутка времени, чего достаточно для того, чтобы запись из таблицы была удалена. В таких случаях мы можем наблюдать ситуацию, что звонок разрывается точно на 30-40 секунде.

Для решения данной проблемы, SIP умеет периодически отправлять запросы re-INVITE, OPTIONS, INFO, NOTIFY либо другие. В итоге мы получаем вот такую картинку:

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Обход NAT медиатрафиком

Решение проблемы обхода NAT медиатрафиком требует более сложных изменений, поскольку необходимо заменить IP-адрес и номер порта, анонсированные в SDP-сообщении, таковыми, что обеспечат доставку потоков нужному адресату за NAT. Есть несколько способов решения данной проблемы, но, так как данная заметка уже получается довольно большой, я остановлюсь только на прохождении SIP, так как именно с этим чаще всего сталкиваются наши клиенты.

Рекомендации по настройке SIP телефонов

Несколько основных рекомендаций по настройке SIP телефонов в сети (на примере аппарата Yealink).

RPort

Включить параметр rport:

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Keep Alive

Включить и отправлять каждые 30 секунд Keep Alive. У других производителей телефонов может называтся: re-INVITE, OPTIONS, INFO, NOTIFY

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

Разные локальный SIP

В некоторых случаях помогает, если каждому аппарату задать свой уникальный локальный SIP порт:

rport sip что это. Смотреть фото rport sip что это. Смотреть картинку rport sip что это. Картинка про rport sip что это. Фото rport sip что это

TCP/TLS

Также можно использовать TCP либо TLS вместо UDP. В некоторых случаях это более надежное решение для обхода NAT. При использовании TLS, следует обратить внимание, что порт подключения к webitel нужно указать 5071, вместо стандартного для UDP/TCP 5070

Отдельная сеть

Хорошей практикой является выделение для SIP телефонов отельной локальной сети с QoS приоритезацией голосового трафика. Еще лучше – настроить отдельный VLAN под IP телефонию.

Written by Vitaly Kovalyshyn

IT-SFERA and Webitel
Managing Partner

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *