AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

виснет при отсутствии транков

Asterisk GUI 29 сообщений -
#1

Всем привет

Подскажите пожалуйста, имеется asterisk 1.4.19 + freePBX .... есть транки в другой филлиал, на callcentric и на sipnet. Время от времени отваливается интернет(борюсь с провадером, но это уже другая история), так вот, когда инет пропадает(или связь с другим офисом), все вн. абоненты теряют регистрацию. Не подскажете, как лечить зависание при пропадании транков?

Спасибо заранее

P.S. прошу простить за сумбурное изложение мыслей
#2

Копать в сторону DNS.
_________________
ys
http://voip.rus.net/
#3

а внешний IP при этом меняется?

Added after 3 minutes:

Цитата:
A script to gracefully restart asterisk following an IP address change (from ddclient notification) for dynamic DNS hosts, and delete voicemails based on user emails (from voicemailcontrol notification).

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#4

Айпи статичный, днс для внутреннего транка, для фторого филлиала, не используется
#6

Код:
srvlookup = no

_________________
"Фантазия важнее знания.", Альберт Эйнштейн
#7

Недоступность DNS сервера может запросто вешать всю работу SIP части астериска. рекомендуется устанавливать локальный кэширующий DNS сервер.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#8

Какой DNS лучше установить на trixbox 2.6.2.2 ?
#9

bind, вестимо
#10

Выполнил
Код:
yum install bind-chroot caching-nameserver

/etc/resolv.conf
Код:
nameserver 127.0.0.1


/etc/named.conf
Код:
options {
directory "/etc";
pid-file "/var/run/named/named.pid";
statistics-file "/var/named/data/named_stats.txt";
version "no version info";
allow-transfer { none; };
listen-on { 127.0.0.1; 192.168.0.150/24; };
allow-query { localhost; 127.0.0.1/8; 192.168.0.150/24; };
allow-recursion { localhost; 127.0.0.1/8; 192.168.0.150/24; };
cleaning-interval 90;
};

не помогает.
_________________________________________

sip_general_custom.conf
Код:
srvlookup = no

тоже не помогает
так же как и в файле
sip_custom.conf

уже пытаюсь пальцем в небо.
________________________

Как сохранить хотя бы работу в локальной сети по SIP ?
#11

Eldar, много действий слишком.

1) При sip_general_custom.conf
srvlookup = no
Сделан sip reload?

Как работает локальная сеть? в чём траблы?

2) Установили бинд - хорошо, а проверили?
dig www.ru ?
dig www.ru @localhost ?
Тут понятно, что и-нет должен быть пока.
#12

IP PBX 192.168.0.150

После установки srvlookup = no выполнил amportal restart

На моём десктопе указал dns 192.168.0.150
Мой десктоп информацию получает. (выполнял ipconfig /flushdns да и адреса набирал которые мой комп не помнит, типа trud.ru)

Интернет поключён.
dig www.ru @localhost
Код:
[trixbox1.localdomain ~]# dig www.ru @localhost

; DiG 9.3.4-P1 www.ru @localhost
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADERHEADER
#13

Теперь, все локальные sip девайсы кого имеют в качестве ДНС сервера?
#14

Включите DNS-lookup в файле /etc/asterisk/dnsmgr.conf
#15

Oleh, у него Триксбокс, там нет этого файла. Его надо из сэмплов скопировать, или создать

[general]
enable=yes
#16

На всех девайсах указан dns 192.168.0.150 (то есть trixbox)
После отваливания интернета следующая регистрация не проходит и новые девайся тоже зарегестрироваться не могут.


Повторюсь, что на моём десктопе указан dns 192.168.0.150 (trixbox), так вот когда пропадает интернет я с десктопа задаю команду пинг моего sip провайдера по имени. Но локальный dns имя не резолвит.
Понимаю что это к астериску имеет далёкое косвенное отношение, но как поправить этот момент, что бы bind (trixbox) отвечал по какому IP находится провайдер? Может тут собака порылась?
в каком месте конфигурируються параметры (роли) bind ....
Мысль пришла, проверю отпишусь.
#17

1) пропиши в ручную адреса провайдеров в файле /etc/hosts
2) укажи qualify=yes для пира провайдера.
#18

Я имел в виду что возможно проблема кроется в неправильной настройки dns. Надо настроить так, что бы он при отключенном интернете резолвил имена которые есть в кеше.
Но вот как именно это настроить я незнаю. Сижу вот читаю умные слова по всяким сайтам, но пока правильные мысли мою голову не посещают.
Кроме того, я допустил ошибку в файле named.conf
написал
Код:
listen-on { 127.0.0.1; 192.168.0.150/24; };
allow-query { localhost; 127.0.0.1/8; 192.168.0.150/24; };
allow-recursion { localhost; 127.0.0.1/8; 192.168.0.150/24; };

а надо было
Код:
listen-on { 127.0.0.1; 192.168.0.0/24; };
allow-query { localhost; 127.0.0.1/8; 192.168.0.0/24; };
allow-recursion { localhost; 127.0.0.1/8; 192.168.0.0/24; };
#19

Извините -
listen-on { 127.0.0.1; 192.168.0.0/24; }; - ерунда полная. Кто вам насоветовал? Это ИП адреса на которых слушать запросы к сервису bind.

listen-on { 127.0.0.1; 192.168.0.150; }; так правильно.

Менеджировать руками - тяжело и ошибочно. Откройте для себя Webmin!
#20

Ded писал(а):
Извините -
listen-on { 127.0.0.1; 192.168.0.0/24; }; - ерунда полная. Кто вам насоветовал? Это ИП адреса на которых слушать запросы к сервису bind.


Ну, вообще-то это нормальный синтаксис с т.з. бинда, хотя не совсем очевидный. Впрочем, ISC вообще контора такая..
192.168.0.0/24 значит "слушай на всех IP-адресах, которые попадают под маску 192.168.0.0/24"
ну и
Bv9ARM писал(а):

listen-on port 1234 { !1.2.3.4; 1.2/16; };
will enable the name server on on port 1234 of an address on the machine in net 1.2 that is not 1.2.3.4.
#21

Я понял.
Если на машине объявлено кроме основного 192.168.0.150 ещё 100-200 штук ИП адресов в виде алиасов, то такой строчкой мы говорим им - слушать на них фсех.
192.168.0.0/24

Это какое-то извращение синтаксическое!
#22

Ну.. да. "А мы вот и так можем"
Единственное когда может быть удобно - когда не нужно слушать на каком-то одном адресе. Или, на одной пачке адресов. Хотя, это первое может решиться и файрволлом, а в случае пачки - это терминатор чего-то, бинд на нем держать не очень логично
#23

bird_of_Luck писал(а):
а в случае пачки - это терминатор чего-то, бинд на нем держать не очень логично
вот именно!
#24

Не ругайтесь девочки. (шутка)
Цитата:
Извините -
listen-on { 127.0.0.1; 192.168.0.0/24; }; - ерунда полная. Кто вам насоветовал? Это ИП адреса на которых слушать запросы к сервису bind.

listen-on { 127.0.0.1; 192.168.0.150; }; так правильно.

Менеджировать руками - тяжело и ошибочно. Откройте для себя Webmin!

Webmin установлен, Вы думаете я в командной строке файлы изменяю? Smile
Изменил на
Код:
listen-on { 127.0.0.1; 192.168.0.150; };


Создал файл как говорил Oleh
Код:
/etc/asterisk/dnsmgr.conf

Прописал как говорил Ded
Код:
[general]
enable=yes


После отключения интернета сип транки повторно регистрацию не проходят, в CLI полная тишина при звонке с одного екстеншена на второй (пока ещё есть регистрация), хотя bind имена резолвит.
Пошел читать про файл dnsmgr.conf
Я не могу понять, почему вешается астериск если dns локальный работает? Ведь если сип провайдер будет не доступный и транков к нему не будет астериск локально всё равно работает.
Может имеет смысл поднять второй DNS в локальной сети и указать триксбоксу на него? (для эксперименту)
#25

srvlookup=no

tcpdump port 53
во время отключения интернет, смотрим на регистрации, пробуем звонок.....
#26

Хм. Странно, работает.
Как говорил Ded
В файл /etc/hosts прописал ip адрес провайдера. Но qualify=yes для пира провайдера указывать не стал (позже возможно добавлю). Как бы там небыло, после подключения к интернету (не видя запросов по 53 потру), с мобильника сразу дозвонился до сип номера. Полагаю что из за того что внешний ip не поменялся и сип провайдер знает "пока ещё" куда кидать звонки.
В файле sip_general_custom.conf
Код:
srvlookup = no

Создал файл как говорил Oleh: /etc/asterisk/dnsmgr.conf
Прописал как говорил Ded
Код:
[general]
enable=yes

Файл named.conf получился таким:
Код:
options {
directory "/etc";
pid-file "/var/run/named/named.pid";
statistics-file "/var/named/data/named_stats.txt";
version "no version info";
allow-transfer { none; };
listen-on { 127.0.0.1; 192.168.0.150; };
allow-query { localhost; 127.0.0.1/8; 192.168.0.0/24; };
allow-recursion { localhost; 127.0.0.1/8; 192.168.0.0/24; };
forwarders { 192.168.0.1; };
cleaning-interval 90;
};


Ночью проверю на "cleaning-interval" будет ли держать 90 минут.
Пока опасаюсь жены и проверял только минут cемь. Laughing
Проверю ещё раз, отпишусь.

Всем спасибо за внимание, понимание, а так же участие!
Вроде как радуюсь ))
#27

Опять отваливается.
Щя голова закипит.
Когда загружается вообще без интернета, то все екстеншены работают, при чем named не запущен.
В tcpdump куча хлама. Ресурсы вообще непонятные.

Параметры:
listen-on { 127.0.0.1; 192.168.0.150; };
allow-query { localhost; 127.0.0.1/8; 192.168.0.150; };
allow-recursion { localhost; 127.0.0.1/8; 192.168.0.150; }; вернул все к 150, ведь при 192.168.0.0/24 получаеся и с момеда может приходить запрос.

В общем, если разберусь отпишусь.

Added after 36 minutes:

В общем я понял - что я ничего не понял.
Gizmo работать не хочет с локальным dns, или рабоатет через раз. При включённом модеме но без dsl линка, как писал выше куча хлама сыпется.
bind сам не стартует, в нете я что то не нашёл как его (откуда) толкать. Через /etc/rc.d/rc.local пробовал, не получается. Или я что то не так делаю.
В общем, будем потом посмотреть.
#28

service named start для редхатоподобных систем.

В tcpdump куча хлама без интернета? Какого хлама? по порту 53?
Что-то замудрили чильно. Только сегодня человек докладывал - внешний свич с реальными алресами сгорел, а всё что на внутренних адресах (*) - работало себе спокойно. Без кэширования ДНС.
#29

на мой взгляд уважаемый IgorG абсолютно прав, была такая проблема, после выполнения рекомендаций http://www.elastixconnection.com/index.p ... Itemid=101 проблема ушла навсегда.