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)?
- Как изменять значение externip=, когда изменяется внешний IP адрес
- Другие размышления по этой проблеме
- баг 2662: Закрыт, не получил поддержки
Изменения для 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