По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
IP – АТС Asterisk – сложная система обработки телефонных вызовов, состоящая из различных драйверов и модулей. Зачастую системные администраторы сталкиваются с неисправностью того или иного функционала: не работает входящая/исходящая связь, односторонняя слышимость, проблемы с внутренними номерами и так далее. Чтобы решить данные проблемы, надо понять их суть – посмотреть в журнал (лог – файл) Asterisk и узнать, что же происходит на самом деле. О том, как правильно собрать логи, их глубина и параметры, а также про сбор сетевого дампа расскажем в этой статье.
Настройка логирования
Приступаем к настройке. Для этого, нам необходим посмотреть содержимое файла /etc/asterisk/logger.conf. Давайте откроем его:
[root@asterisk ~]# cat /etc/asterisk/logger.conf
[general]
#include logger_general_additional.conf
#include logger_general_custom.conf
[logfiles]
#include logger_logfiles_additional.conf
#include logger_logfiles_custom.conf
Как видим, в данный файл включен «кастомная» настройка – файл logger_logfiles_custom.conf . В нем мы и будем производить необходимые настройки. Допустим, мы хотим записывать в файл logs_ echo date("Ymd"); основные события. Для этого, откроем для редактирования файл и добавим в него следующую запись:
[root@asterisk ~]# vim logger_logfiles_custom.conf
logs_ echo date("Ymd"); => notice,warning,error,debug,verbose,dtmf
Сохраняем изменения нажатием :x!.
Начиная с 13 версии Asterisk, существует возможность создавать задачи на логирования прямо из консоли. Для этого существует команда logger add channel . Например:
logger add channel logs_ echo date("Ymd"); notice,warning,error,debug,verbose,dtmf
Логирование будет остановлено при следующем рестарте Asterisk.
Глубина записи логов
В Asterisk можно задавать глубину логирования параметром verbose и debug. Первый режим более информативен для администратора, когда необходимо оперативно понять причину неисправности, тогда как второй режим более полезен для более глубоко анализа. Глубина задается от 1 до 10, где 10 – максимальный уровень информативности:
asterisk*CLI> core set verbose 3
asterisk*CLI> core set debug 3
После этого, необходимо перезагрузить модуль логирования:
asterisk*CLI> module reload logger
Дебаг на уровне каналов
В Asterisk можно производить дебаг на уровне отдельных драйверов. Например, если вы хотите отладить подключения по протоколу SIP – своя команда, по IAX – другая. Ниже представлен список:
Драйвер
Команда отладки
SIP (версия вышел 1.6)
sip set debug on
SIP (версия 1.4)
sip set debug
PJSIP
pjsip set logger on
Запись CDR
cdr set debug on
IAX2 (версия вышел 1.6)
iax2 set debug on
IAX2 (версия 1.4)
iax2 set debug
Остановить логирование
Когда отладка закончена, необходимо вернуть все в первоначальный вид. Отключаем дополнительный дебаг:
asterisk*CLI> core set verbose 0
asterisk*CLI> core set debug 0
Чтобы выключить дебаг на конкретных каналах, даем команду вида:
asterisk*CLI> sip set debug on
asterisk*CLI> iax2 set debug off
Далее, в файле /etc/asterisk/logger.conf закомментируйте или удалите добавленную строчку. После этого перегружаем модуль логирования:
asterisk*CLI> module reload logger
Дебаг Asterisk в файл
Прямо из консоли можно добавлять дебаг в файл. Для этого, его необходимо первоначально создать. Например:
[root@asterisk ~]# touch /home/asterisk_cli.txt
Далее, вызываем консоль сервера IP – АТС Asterisk следующим способом:
[root@asterisk ~]# asterisk -rvvvv | tee /home/asterisk_cli.txt
В открывшейся консоли дайте одну из перечисленных команд дебага, например, sip set debug on. Весь вывод будет сохранен в указанном файле. По окончанию укажите в консоли sip set debug off и quit.
Сетевой дамп Asterisk для анализа в Wireshark
Простейшим способом снять сетевой дамп является утилита tcpdump. Чтобы ей воспользуйтесь командой:
[root@asterisk ~]# tcpdump -s 0 -w /home/dump.cap
Затем, после снятия необходимого дампа, Вы сможете сохранить файл dump.cap в директории /home себе на компьютер, для последующего анализа. Помимо этого, в команде есть возможность дать дополнительные ключи, например -i eth0 - указание интерфейса, с которого необходимо снять дамп, а port 5060 - указать порт, на который приходят пакеты.
Прогресс не стоит на месте и постепенно, телефонные станции на базе IP вытесняют устаревшие аналоговые АТС. При миграции с аналоговой на IP – АТС, основной головной болью для бизнеса является сохранение телефонной емкости, которая была подключена к аналоговой АТС и к которой так привыкли постоянные клиенты. В данном случае на помощь приходит FXO шлюз.
Забегая вперед хочется отметить, что процесс подключения аналоговых линий всегда сложен: возникает множество проблем с корректной передачей CallerID, определением Busy Tones (сигналов занято), шумами или помехами на линии и прочими неприятностями.
Итак, если вас не отпугивает вышеперечисленные трудности, то мы с радостью спешим рассказать как настроить бюджетный VoIP шлюз D-Link DVG-7111S и подключить его к IP-АТС Asterisk. Данная статья будет полезна тем, кто имеет аналоговые телефонные линии и хочет скрестить их сетью VoIP.
Что такое FXO и FXS?
Зачастую, некоторые компании, по тем или иным причинам, не могут отказаться от использования старых аналоговых линий. Причин может быть множество, например, провайдер может отказаться переводить на протокол SIP номер, который многие годы знают все заказчики или невозможность миграции со старой мини-АТС. Именно для таких случаев необходим VoIP-шлюз, который позволит состыковать устройства разных поколений.
Разберемся с терминологией. Для соединения IP-АТС с аналоговыми линиями служат интерфейсы FXO (Foreign eXchange Office) и FXS (Foreign Exchange Station). Интерфейс FXS – это порт, с помощью которого аналоговый абонент подключается к аналоговой телефонной станции. Простейшим примером может служить телефонная розетка в стене у Вас дома. FXO – это интерфейс, в который включаются аналоговые линии. Следовательно, любая аналоговая линия имеет два конца, на одном из который интерфейс FXS (АТС), а на другом FXO (Телефон).
Другими словами, чтобы было совсем понятно:
FXS - если вам требуется подключить аналоговый телефон к IP – АТС, то воспользуйтесь FXS портом (шлюзом)
FXO - если вам требуется подключить аналоговую линию от провайдера к IP – АТС, то воспользуйтесь FXO портом (шлюзом)
Таким образом, для того чтобы скрестить сеть VoIP с аналоговой нам нужно иметь такое адаптирующее устройство, которое бы преобразовывало сигналы аналоговой телефонной линии в сигналы VoIP.
Настройка
В нашем примере мы имеем в распоряжении: аналоговую линию от провайдера услуг, IP-АТС Asterisk и шлюз D-Link DVG-7111S.
Первое, что необходимо сделать – включить шлюз в одну сеть с IP-АТС Asterisk с помощью интерфейса WAN, порт LAN подключить в локальный свич, а также подключить имеющуюся аналоговую линию в порт FXO на шлюзе. Теперь шлюз можно найти по адресу 192.168.8.254, только предварительно нужно на управляющей АРМ настроить адрес 192.168.8.1. Перед нами открывается вэб-интерфейс, через который можно управлять шлюзом. Стандартный логин admin без пароля.
Теперь необходимо сконфигурировать дополнительные сетевые настройки. Для этого переходим в раздел Setup -> Internet Setup и настраиваем новый адрес шлюза из той же сети, в которой находится Asterisk, а также адреса серверов DNS. Жмём Apply
Далее переходим на вкладку VoIP Setup и настраиваем следующие параметры:
PHONE 1 - FXS Настраивается если у вас есть отдельный аналоговый телефон. Сюда заносим его Extension, который зарегистрирован на Asterisk.
В разделе PHONE 2 - FXO настраиваются параметры имеющейся аналоговой линии в соответствии с настройками транка на Asterisk. Номер и пароль на шлюзе и на Asterisk должна совпадать.
В разделе SIP PROXY SERVER настраиваются параметры подключения к IP-Атс Asterisk. Указываем IP-адрес нашего сервера, порт (по умолчанию 5060) и время регистрации TTL. Нажимаем Apply.
Во вкладке LAN Setup выбираем режим Bridge, всё остальное оставляем без изменений.
Переходим в раздел ADVANCED -> VOIP CODECS и настраиваем нужный приоритет голосовых кодеков.
В разделе CPT/ Cadence рекомендуем выключить опцию BTC, поскольку разные провайдеры могут по-разному отдавать сигнал “Занято” это может являться причиной внезапных обрывов.
В разделе HOT LINE включаем данную функцию и вписываем номер телефонной линии. Теперь, при звонке из ТФоП, шлюз сам наберет данный номер с минимальной задержкой и вызов пойдёт через Asterisk.
На этом настройка шлюза завершена, рекомендуем провести следующий набор действий
MAINTENANCE -> Backup and Restore -> System--Save and Reboot -> Save all settings -> Reboot
Настройка FreePBX
Теперь необходимо на IP-АТС Asterisk создать соответствующий транк. В нашем случае, транк для подключения аналоговой линии от D-Link будет выглядеть так:
В разделе sip Settings -> Outgoing указываем адрес, который настраивали на шлюзе
host=192.168.1.2 //ip - адрес шлюза
port=5060
context=from-trunk
qualify=yes
type=peer
insecure=no
В разделе sip Settings -> Incoming настраиваем такие же параметры аналоговой линии, которые настраивали на шлюзе. Номер и пароль должны совпадать.
host=dynamic
username=495123456
secret=тут_ваш_пароль
context=from-trunk
qualify=yes
type=friend
insecure=no
Готово! Осталось только настроить входящую и исходящую маршрутизацию. О ее настройке можете почитать по ссылке ниже:
Настройка маршрутизации вызовов
Сегодня хотелось бы кратко описать команды менеджера пакетов yum - официальная сборка FreePBX основана на CentOS, в котором yum установлен по умолчанию. Он пригодится для установки, удаления, обновления пакетов.
Установка пакета
К примеру, для установки пакета mc нужно ввести команду yum install mc. После ввода команды, система попросит подтверждение. Чтобы подтверждение было одобрено по умолчанию, нужно добавить ключ -y , к примеру yum –y install mc:
[root@localhost asterisk]# yum install mc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.corbina.net
* epel: mirror.datacenter.by
* extras: mirror.corbina.net
* updates: mirror.corbina.net
Resolving Dependencies
--> Running transaction check
---> Package mc.x86_64 1:4.8.7-11.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mc x86_64 1:4.8.7-11.el7 base 1.7 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 1.7 M
Installed size: 5.6 M
Is this ok [y/d/N]: y
Downloading packages:
mc-4.8.7-11.el7.x86_64.rpm | 1.7 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:mc-4.8.7-11.el7.x86_64 1/1
Verifying : 1:mc-4.8.7-11.el7.x86_64 1/1
Installed:
mc.x86_64 1:4.8.7-11.el7
Complete!
Удаление пакета
Для удаления пакета, соответственно, нужно ввести команду yum remove mc. Точно также можно использовать ключ для подтверждения -y :
[root@localhost asterisk]# yum remove mc
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package mc.x86_64 1:4.8.7-11.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
mc x86_64 1:4.8.7-11.el7 @base 5.6 M
Transaction Summary
================================================================================
Remove 1 Package
Installed size: 5.6 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : 1:mc-4.8.7-11.el7.x86_64 1/1
Verifying : 1:mc-4.8.7-11.el7.x86_64 1/1
Removed:
mc.x86_64 1:4.8.7-11.el7
Complete!
Обновление пакета
Предположим – у вас старая версия mysql и вам необходимо ее обновить – тут используется команда update. Целиком команда будет выглядеть так: yum update mysql .
Поиск пакета
Если хотите проверить наличие установленного конкретного пакета на сервере и доступные для установки – используйте команду list. Целиком команда будет выглядеть так: yum list mysql. Также можно указать точную версию пакета, если вам требуется более скрупулезный поиск.
Вывод информации о пакете
Если хотите вывести информацию о пакете – используйте команду info. Целиком команда будет выглядеть так: yum info mc .
Вывод информации о всех доступных и установленных пакетах
Для этого используется команда list с модификаторами. Для вывода доступных пакетов: yum list | less, а для вывода всех установленных - yum list installed | less
Проверка доступных обновлений для пакетов и само обновление
Для проверки служит команда check-update, а для обновления - update. Ниже три примера использования команд:
yum check-update mysql - проверка обновлений пакета mysql;
yum list updates - вывод списка обновлений;
yum update mc - обновление Midnight Commander’а;
yum –y update - обновление всех установленных пакетов;
Групповые пакеты и операции с ними
В Линуксе некоторые пакеты собраны в так называемые групповые пакеты – к примеру, DNS Name Server, Editors, Java Development и так далее. С помощью yum можно устанавливать групповые пакеты с помощью команды groupinstall - пример далее yum groupinstall ‘Clustering. Коротко опишу остальные команды для манипуляций с групповыми пакетами:
yum grouplist - вывод всех доступных к установке групповых пакетов;
yum groupupdate ‘Base’ - обновление конкретного группового пакета, в данном случае – Base;
yum groupremove ‘Editors’ - удаление группового пакета;
Репозитории в yum
Поиск пакетов происходит в так называемых репозиториях, ниже приведу несколько команд для работы с ними – принцип тот же, что и с пакетами (команды list, к примеру). Вывод всех активных репозиториев производится с помощью команды yum repolist, вывод также и неактивных репозиториев – с помощью команды yum repolist all
Для установки пакета из конкретного репозитория, неважно, активного или неактивного, используется ключ --enablerepo . Как пример – установка phpmyadmin: yum –enablerepo=epel install phpmyadmin
Терминал в yum и история
Если Вы собираетесь проводить очень много операций с пакетами, то можно сразу зайти в оболочку yum с помощью команды yum shell и с помощью уже известных вам команд (только уже без первых трёх букв, соответственно), Вы можете устанавливатьудалятьобновлятьwhatever пакеты. Также интересной фичей является возможность посмотреть историю установок в yum – с помощью команды yum history.