mr_welk: (Default)
[personal profile] mr_welk
Пропадает регистрация нортелов на 4 версии прошивки. Астериск находится за NAT.
Отваливаются все одновременно, примерно 2 раза в сутки. Сами регистрацию не возвращают, помогает только перезагрузка аппаратов. В отладке сервер посылает запрос qualify на аппарат, а в ответ - тишина. От аппарата тоже никаких запросов не поступает. При этом он считает себя зарегистрированным и исходящая связь работает.
Методы борьбы:
nat=yes (в 11 версии и новее nat=nat=force_rport,comedia)

описание опции:
nat=no                 ;не выполнять никакой специальной обработки NAT, кроме той что указана в RFC 3581.
nat=force_rport        ;даже если ни одного параметра rport не было указано, действовать, так, как если бы он был.
nat=comedia            ;отправлять RTP пакеты обратно к порту с которого они были получены, игнорируя требуемый порт в SDP заголовке.
nat=auto_force_rport   ;если Asterisk сможет определить, что устройство находится за NAT, установить опцию force_rport. Значение по умолчанию, если не указана опция nat.
nat=auto_comedia       ;если Asterisk сможет определить, что устройство находится за NAT, установить опцию comedia.
nat=force_rport,comedia ;опция заменяющая nat=yes в более новых версия Asterisk.





qualify=yes - опрос устройства каждые 3000 мс, помогает не закрыть канал в NAT, не помогло.

qualifyfreq=60 - частота проверки доступности клиента, т.е. после не полученного ответа от SIP клиента, Asterisk пометит клиента как Unreachable, указывается значение в секундах 
qualify=5000 - отправлять пакеты OPTIONS каждые 5 секунд (используется для указания не стандартного значения qualify)
qualify=yes - включает отправку пакетов OPTIONS каждые 2 секунды






- в настройках микротика отключаем "Sip Direct Media".  Иначе он сам добавляет в сип пакеты информацию о исходящем IP.  После этого отвалившиеся экстеншены имеют статус unreachable вместо unknown. Уже легче для диагностики, но не помогло
- в файле sip.conf ( в эластиксе  sip_general_custom.conf) добавляем параметр   pedantic=no
Пока не помогло.
- в modules.conf отключаем один модуль:  noload => timing_pthread.so но подозреваю что это из другой оперы,
пока тестирую

опции sip.conf:

ignoreregexpire (глобальный)

Если параметр ignoreregexpire имеет значение yes, Asterisk может выполнить одно из двух действий для:

Равноправных участников, создаваемых не в режиме реального времени

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

Равноправных участников, создаваемых в режиме реального времени

Когда равноправный участник извлекается из хранилища реального времени, его регистрационная информация будет использоваться независимо от истечения ее срока действия; если срок ее действия истек, в то время как равноправный участник, созданный в режиме реального времени, все еще находится в памяти (из-за кэширования или по другим причинам), информация не будет удалена из хранилища реального времени:

ignoreregexpire=yes|no

externhost

Параметр externhost принимает в качестве аргумента полное имя домена. Если Asterisk выполняется за NAT, SIP-заголовок, как правило, будет использовать внутренний IP-адрес, присвоенный серверу. Если вы зададите эту опцию, Asterisk будет периодически выполнять DNS-поиск по имени хоста и замещать внутренний IP-адрес на тот, который был возвращен в результате DNS-поиска:

externhost=my.hostname

externip

Параметр externip в качестве аргумента принимает IP-адрес. Если Asterisk выполняется за NAT, SIP-заголовок будет использовать внутренний IP-адрес, заданный для сервера. Удаленный сервер не будет знать, как вернуться к этому адресу; поэтому он должен быть заменен действительным маршрутизируемым адресом:

externip=135.35.76.12

localnet

Параметр localnet используется для указания Asterisk, какие IP-адреса считать локальными, чтобы адрес в SIP-заголовке мог транслироваться в заданный в externip или чтобы можно было выполнять поиск IP-адреса по externhost. IP-адреса должны задаваться в нотации CIDR (Classless InterDomain Routing – бесклассовая междоменная маршрутизация):

localnet=192.168.1.0/24

localnet=172.16.0.0/16

pedantic

Для параметра pedantic может быть задано значение yes или no. Значение yes активирует медленную, педантичную проверку для телефонов, которым она необходима, таких как Pingtel, и более строгое соответствие SIP RFC. С целью повышения производительности строгий контроль соответствия SIP RFC обычно не проводится:

pedantic=yes

maxexpiry

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

maxexpiry=3600

minexpiry

Задает минимально допустимую продолжительность, в секундах, регистрации или подписки:

minexpiry=60

registerattempts

Определяет для Asterisk количество попыток исходящих регистраций. Значение по умолчанию – 0, что означает бесконечное число попыток.

registerattempts=0

registertimeout

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

registertimeout=30

http://www.sipring.ru/overview/133-sip-channel.html



а главное, еалинки и панасоники работают и не отваливаются.


Конфиг нортела:
# DNS_DOMAIN sip.domain.ru - не помогло
SIP_DOMAIN1 sip.domain.ru:5060  -  пробовал IP вместо имени - вообще не коннектится к серверу
SERVER_IP1_1 10.XX.XX.XX
SERVER_PORT1_1 5060
# SERVER_IP1_2 10.XX.XX.XX - пробовал 2 раза указать - без толку
# SERVER_PORT1_2 5060
# CACHED_IP_ENABLED YES
# SIP_PING YES   -  эта штука работает, пинги шлет регулярно на сервер, даже после того, как регистрация отвалилась :)  а вот регистрироваться снова не хочет
SERVER_RETRIES1 3
# USE_RPORT YES  -  говорит ему чтоб работал через NAT но он и так и так работает, не помогло
# KEEPALIVE_RETRIES 10 - тоже не помогло, думал что NAT закрывает соединение
# RTP_MIN_PORT 10000 - это просто делал стандартно как на астере, но и с нортеловским диапазоном работает
# RTP_MAX_PORT 20000
# DEF_USER2 ASTERISK
SNTP_ENABLE NO
SNTP_SERVER
AUTO_UPDATE YES
TIMEZONE_OFFSET 10800
FORCE_TIME_ZONE YES
DST_ENABLED NO
DEF_LANG Russian
#
# This parameter allows the administrator to change the
# default re-registration time of the IP Deskphone. The default
# is 86400 seconds (or 24 hours). The minimum value is 300
# and the maximum value is 86400. Note that the proxy can
# override this value and force the IP Deskphone to have a
# different refresh interval.
# REG_REFRESH_INTERVAL 300    - не помогло, ни фига он через 5 минут не перерегистрируется
#
# This parameter configures in seconds how long the IP
# Deskphone waits before it attempts to reregister with the
# proxy server. The default value is 30 (seconds).
# Minimum – 30 (seconds)
# Maximum – 1800 (seconds)
#
# REGISTER_RETRY_TIME 30  - тоже не увидел разницы в логах
#
# This parameter configures in seconds the maximum value # that the IP Deskphone waits before it attempts to reregister
# with the proxy server. The default value is 1800 (seconds).
# Minimum – 600 (seconds)
# Maximum – 1800 (seconds)
#
# REGISTER_RETRY_MAXTIME 600   - тоже пробовал , дальше все стандартно
#
FORCE_BANNER YES
BANNER Company
#
VMAIL 5000
VMAIL_DELAY 300
TOVM_SOFTKEY_ENABLE NO
#
MAX_APPEARANCE 5
DEF_AUDIO_QUALITY High
ENABLE_LLDP YES
ADMIN_PASSWORD 26567*738
ADMIN_PASSWORD_EXPIRY 0
# Settings to disable extended license
MAX_LOGINS 1
USB_HEADSET LOCK
EXP_MODULE_ENABLE NO
ENABLE_SERVICE_PACKAGE NO
IM_MODE DISABLED
AVAYA_AUTOMATIC_QoS NO
VQMON_PUBLISH NO
SIP_TLS_PORT 0
ENABLE_BT NO
# Enable SSH
SSH YES
SFTP YES
SFTP_READ_PATTERNS .cfg,.dat,.re1,.re2.,re3
SSHID admin
SSHPWD admin
ADDR_BOOK_MODE NETWORK
# MAX_DOWNLOAD_ADDR_BOOK_ENTRIES 1000

Profile

mr_welk: (Default)
mr_welk

February 2017

S M T W T F S
   1234
567891011
12 13141516 1718
19202122232425
262728    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 23rd, 2017 06:19 pm
Powered by Dreamwidth Studios