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


Описание

externip = extern.ip.address

Назначение

Задаем IP адрес, который будет использоваться, как IP адрес источника во всех SIP сообщениях, когда работаем с SIP клиентами, для которых указан параметр NAT в yes.

Примеры

externip = 200.201.202.203

Замечание

параметр externip можно указать только в секции [general] файла конфигурации sip.conf
Если у Вас имеются SIP клиенты как в приватной сети, так и за маршрутизатором с NAT, то Вам необходимо указать параметр localnet, чтобы сервер Asterisk мог их различать.

Реализация, нижеописанной проблемы, в Asterisk 1.0.x

Обсуждение (проходившее в ноябре 2004 года):
Проблема: DSL провайдер назначает новый внешний IP адрес каждые 24 часа (принудительный re-connect)
По теме, смотри багрепорт: 3086 (включенный в Asterisk v1.0.6 и более поздние версии)

> Почему бы не использовать команду из cron: "asterisk -rx 'restart when convenient'"
> вместо полной перезагрузки сервера Asterisk. Которая дождется того момента,
> пока не останется ни одного активного канала, и произведет перезагрузку.
> А также, можно использовать команду 'sip reload', вместа рестарта Asterisk,
> этого же может быть достаточно для перерегистрации на Broadvoice.

К сожалению, нет. У меня такая же проблема и такое же ее решение.
Вам точно необходимо перезапускать asterisk. Я думаю, причина кроется в том,
что asterisk не делает поиск IP адреса в DDNS для имени хоста, по причинам,
связанными с производительностью системы. Но было бы здорово, если бы команда
"sip reload" делала бы это.

Вопрос: В сервере Asterisk v1.0.3 и более поздних, нам нет больше надобности в использовании CLI команды "reload"
в случае, если для сервера с Asterisk назначен новый IP адрес (для SIP)?


Изменения для Asterisk версии 1.2.x

Скорее всего, начиная с CVS HEAD версии с декабря 2004 года и новее, появилась встроенная возможность, для решения задачи, описанной выше. Смотри багрепорт: 3086 и 3262.
Ниже приводиться пример, помещенный в файл sip.conf:

;externhost=foo.dyndns.net ; В качестве альтернативы, Вы можете указать
; имя для внешнего адреса, и тогда Asterisk будет
; периодически получать его адрес, используя DNS. Not
; Не рекомендуется использовать для "боевого" промышленного
; использования! В таких случаях лучше использовать
; вместо этого параметра - настройку в externip.
;externrefresh=10 ; Как часто получать адрес хоста, указанного в externhost,
; если этот параметр используется.


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

  • localnet
  • externhost: Новый параметр в Asterisk v1.2.x
  • externrefresh: Новый параметр в Asterisk v1.2.x
  • NAT


Файл конфигурации Asterisk: sip.conf