Добавление SIP клиента во FreePBX

Чтобы добавить SIP клиента во FreePBX, откроем меню «Applications» — «Extensions«, выберем например «Generic CHAN SIP Device» и укажем основные параметры:

User Extension: 6000 (номер SIP)
Display Name: Operator (любое имя для отображения)
Secret: ПАРОЛЬ
и нажмем «Submit«.

Все, SIP добавлен, по указанному номеру и паролю он может уже регистрироваться.

Как добавить SIP в конфигурационном файле я описывал в этой статье — Добавление SIP клиентов в Asterisk

Установка и настройка Zabbix агента в CentOS/RHEL

Перед установкой посмотрим версию системы:

lsb_release -a

У меня версия CentOS 6.8 X64, удалено в этот момент находился Zabbix сервер версии 3.0.7, по этому я подобрал версию 3.0 на http://repo.zabbix.com/zabbix/ (там есть новее, например 3.1, 3.2 и т.д.).
Добавим источник:

rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

Для CentOS/RHEL 7 другая ссылка:

rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

Для CentOS/RHEL 5:

rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/5/x86_64/zabbix-release-3.0-1.el5.noarch.rpm

Теперь выполним команду установки Zabbix агента:

yum install zabbix zabbix-agent

После установки отредактируем файл конфигурации например редактором nano (в котором Ctrl+X для выходя, y/n и Enter для сохранения или отмены изменений):

nano /etc/zabbix/zabbix_agentd.conf

А именно укажем:
Server=192.168.1.11 (ip адрес удаленного Zabbix сервера)
ServerActive=192.168.1.11 (ip адрес удаленного Zabbix сервера)
Hostname=имя такое же как у системы, можно посмотреть командой hostname

После редактирования применим изменения перезапустив Zabbix агент:

/etc/init.d/zabbix-agent restart

Остановить/запустить его можно командами:

/etc/init.d/zabbix-agent stop
/etc/init.d/zabbix-agent start

Смотрите также:
Установка и настройка Zabbix агента в Ubuntu

Просмотр содержимого командой less

Команда less позволяет просматривать содержимое текстовых файлов в постраничном режиме.

Опишу клавиши управления:
стрелка_вверх (Перемещение на одну строку вверх)
стрелка_вниз (Перемещение на одну строку вниз)
PageUp (Перемещение на одну страницу вверх)
PageDown или ПРОБЕЛ (Перемещение на одну страницу вниз)
ENTER (Перемещение на одну строку вниз)
d (Перемещение на пол страницы вниз)
b (Перемещение на одну страницу вверх)
g (перемещение в начало файла)
shift+g (перемещение в конец файла)
/текст/ (Поиск по указанному тексту вперед)
?текст? (Поиск по указанному тексту назад)
:n (следующий файл)
:p (предыдущий файл)
:d (закрытие текущего файла)
shift+f (позволяет просматривать новые строки в реальном времени, на подобии tail -f)
ctrl+c (отключение просмотра новых строк)
v (запустить редактор)
h (Справка)
q (Выход)

Синтаксис выполнения такой:

less +СТРОКА +/ТЕКСТ ФАЙЛ

Например простой просмотр файла:

less ФАЙЛ.txt

Просмотр начиная с 5 строки:

less +5 ФАЙЛ.txt

Поиск указанного текста в файле:

less +/текст ФАЙЛ.txt

Просмотре нескольких файлов:

less ФАЙЛ ФАЙЛ ФАЙЛ

Можно перенаправить вывод какой нибудь команды в less чтобы удобно просмотреть содержимое в постраничном режиме.
Например из cat в less:

cat ФАЙЛ | less

Посмотреть содержимое директории:

ls -al /etc | less

Содержимое архивов:

tar -ztf АРХИВ.tar.gz | less
tar -jtf АРХИВ.tar.bz2 | less

Результаты поиска текста ssh в файле auth.log:

tac /var/log/auth.log | grep ssh | less

И т.д.

Установка и настройка GoIP СМС-сервера

На примере настрою GoIP СМС-сервер в Ubuntu Server 14.04 LTS x64.
Переключимся сразу на root пользователя:

sudo -i

Обновим систему и установим веб-сервер и mysql сервер:

apt-get update
apt-get upgrade
apt-get install apache2 php5 mysql-server

Скачаем во временную директорию архив с goip смс-сервером и запустим скрипт установки:

cd /tmp
wget http://www.hybervoice.com/update/goip_install-v1.23.tar.gz
tar xvfz goip_install-v1.23.tar.gz
cd goip_install
./goip_install.sh

Во время установки ответим на несколько вопросов:
1) Расположение директории с конфигурацией веб-серера (создастся файл с веб настройками), в моем случае это /etc/apache2/conf-enabled
2) Пароль root пользователя к Mysql серверу (создастся база goip)
3) Расположение Mysql, стандартно оно так и есть /usr/bin/mysql, просто жмем Enter

Перезапустим веб-сервер чтоб загрузился файл с настройками из /etc/apache2/conf-enabled:

service apache2 restart

В браузере уже можно открыть панель управления смс-сервером http://сервер/goip
У меня отобразилась ошибка:

Forbidden
You don’t have permission to access /goip on this server.

Причиной этому устаревшие параметры в /etc/apache2/conf-enabled/goip.conf, закомментируем две строки символом # и добавим строку после них:

#    Order allow,deny
#    Allow from all
Require all granted

После этого все открылось, стандартный логин и пароль root.

Приступим к настройке.
В «System Manage» — «Provider Manage» добавим провайдера, для этого укажем в Provider(1) его имя или просто номер самими цифрами.

Теперь перейдем в «System Manage» — «GoIP Manage«, вверху нажмем «Add GoIP» и добавим аккаунт для первого канала GoIP шлюза (первой сим).
ID:ks1
Batch Lines:1
Provider:созданный провайдер
Password:пароль
Confirm Password:пароль

Откроем веб-интерфейс GoIP шлюза и перейдем в «Configurations» — «SMS» где укажем параметры этого аккаунта.
SMS Server:Enable
SMS Server IP: адрес СМС-сервера
SMS Server Port:44444
SMS Client ID: ks1
Password: пароль
Send SMSC Number: Enable

После этого в СМС-сервере «System Manage» — «GoIP Manage» должен отобразится статус «Login«.

Если статус Login не появляется, у меня так было на Ubuntu Server 14.04 LTS x64 и замечал сообщение:

but cannot get response from process named «goipcron»

Для решения этой проблемы пришлось доставить библиотеки:

cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
ln -s /var/run/mysqld/mysqld.sock /var/lib/mysql/mysql.sock

И наново запустить goipcron:

cd /usr/local/goip
./run_goipcron

На сервере в случае проблем с соединением можно ловить пакеты через tcpdump например так:

tcpdump -i any -vnn -s0 port 44444

Сервер может принимать POST и GET запросы, приведу пример отправки СМС (номеров получателей можно указать несколько через запятую без пробелов):

http://192.168.1.21/goip/en/dosend.php?USERNAME=логин&PASSWORD=пароль&smsprovider=1&goipname=ks1&smsnum=номерполучателя&method=2&Memo=текст сообщения

Входящие СМС можно увидеть в Send Message — Inbox, исходящие в Send Message — Examine Sendings.
Чтобы не писалась статистика звонков (у меня ее пишет Asterisk), в System ManageSystem Manage поставим Disable напротив GoIP Report Record, а также поставим Disable на Save message before sending(browser should support javascript) чтобы не использовать java со стороны клиента при отправке СМС через API.

Настройка SIP Trunk в Asterisk от Укртелеком

Приведу пример настройки SIP Trunk в Asterisk, то есть Asterisk будет в роли SIP клиента.
От провайдера Укртелеком получены данные: номер, пароль и адрес сервера телефонии (sip.ukrtel.net).
SIP номер брался чтобы сделать многоканальность не обычном городском номере, путем переадресации в случае занятости линии.
Настраивать буду на Linux сервере с реальным IP без использования NAT.

Сначала пропишем в файле /etc/asterisk/sip.conf, в секции [general] строку регистрации SIP:

register => НОМЕР:ПАРОЛЬ@sip.ukrtel.net

Далее, пропишем контекст для SIP в sip.conf или users.conf, я предпочитаю прописывать транки в users.conf, в sip.conf пишу только свои SIP номера:

[ukrtelecom1]
secret=ПАРОЛЬ
remotesecret=ПАРОЛЬ
defaultuser=НОМЕР
trunkname=ukrtelecom1
host=sip.ukrtel.net
context=from-ukrtelecom1
insecure=invite
fromuser=НОМЕР
fromdomain=sip.ukrtel.net
type=peer
disallow=all
allow=alaw
allow=ulaw
allow=g729
nat=no
canreinvite=nonat
dtmfmode=rfc2833
qualifyfreq=30

В /etc/asterisk/extensions.conf пропишем контекст для входящих звонков:

[from-ukrtelecom1]
exten => s,1,DIAL(SIP/205,60)
exten => s,n,Hangup()

Приведу пример шаблона исходящих звонков:

exten => _380892XXXXXX,1,Dial(SIP/ukrtelecom1/${EXTEN},60)
exten => _097XXXXXXX,1,Dial(SIP/ukrtelecom1/${EXTEN},60)
exten => _095XXXXXXX,1,Dial(SIP/ukrtelecom1/${EXTEN},60)
и т.д.

Зарегистрировался ли SIP Укртелекома можно посмотреть в консоли Asterisk:

asterisk -rvv
sip show peers
quit

Все довольно просто.

Настройка GOIP4 c asterisk

На тесте настрою в качестве транка китайский GSM GOIP4 шлюз c Asterisk севрером.

Вставим SIM-карты с выключенным запросом PIN-кода.

Зайдем в веб-интерфейс GOIP4 шлюза, его стандартный IP — 192.168.8.1 при подключении к порту PC, логин и пароль одинаковы — admin.
Еще есть аккаунты с ограниченными возможностями user и sms.

В ConfigurationsPreferences укажем часовой пояс, у меня Time Zone: GMT+2 и отключим IVR.

В ConfigurationsNetwork пропишем нужный статический IP адрес для LAN порта, стандартно он получается по DHCP.

В ToolsChange Password сменим пароли для пользователей.
Кстати при подключении по telnet используется имя пользователя limitsh и пароль который указан в веб-интерфейсе пользователю admin.

Теперь в asterisk, в конфигурационном файле users.conf добавим SIP транк, например:

[goip4]
type=peer
usecallerid = yes
hidecallerid=no
host=192.168.50.50
context=goip4

Приступим к настройке GSM каналов в GOIP4 шлюзе.
Пропишем параметры SIP транка:
В ConfigurationsBasic VoIPConfig Mode выберем «Trunk Gateway Mode«.
В SIP Trunk Gateway1 укажем IP-адрес asterisk сервера.
Остальные поля оставим как есть пустыми, в Re-register Period (s) стандартно 0.
В самом низу для первого канала где «Line 1 Routing Prefix» укажем 1, для второго 2, третьего 3 и 4 для четвертого.
Жмем Save Changes для сохранения изменений.

Настроим правила для входящих GSM звонков.
В ConfigurationsCall In укажем CID Forward Mode: «Use CID as SIP Caller ID».
Для каждого канала укажем Forwarding to VoIP Number: goip4, Dial Plan: 1 для первого, для второго 2, третьего 3 и 4 для четвертого.
Жмем Save Changes для сохранения изменений.

Настроим исходящие в ConfigurationsCall Out.
GSM Auto Redial: Disable
GSM Dial Timeout(s): 30
Call OUT via GSM: Enable
Dial Plan: 1:-1 (для первого канала), 2:-2 (для второго) и т.д.

В Tools — Send USSD можно отправлять USSD запросы, например проверить состояние счета и т.д.
В Send SMS, SMS InBox и SMS OutBox отправить СМС, посмотреть входящие и исходящие соответственно.

Перезапустим Asterisk, перейдем в консоль и посмотрим активен ли транк goip4:

sudo service asterisk restart
asterisk -rvv
sip show peers
quit

Теперь настроим план набора номеров в файле /etc/asterisk/extensions.conf.
Добавим контекст goip4 отвечающий за входящие звонки (в моем случае при поступлении звонка на любую из SIM — идет вызов одновременно на SIP телефон 204 и 203, потом если нет ответа на 201):

[goip4]
exten => goip4,1,Dial(SIP/204&SIP/203,19)
exten => goip4,2,Dial(SIP/201,19)
exten => goip4,3,Hangup()

К существующему контексту SIP телефонов добавим план набора исходящих (как видно в 1 канале у меня Киевстар, во втором Мегафон, в третьем Lifecell):

;KYIVSTAR
exten => _067XXXXXXX,1,Dial(SIP/goip4/1${EXTEN},60)
exten => _068XXXXXXX,1,Dial(SIP/goip4/1${EXTEN},60)
exten => _096XXXXXXX,1,Dial(SIP/goip4/1${EXTEN},60)
exten => _097XXXXXXX,1,Dial(SIP/goip4/1${EXTEN},60)
exten => _098XXXXXXX,1,Dial(SIP/goip4/1${EXTEN},60)
;Megafon
exten => _095XXXXXXX,1,Dial(SIP/goip4/2${EXTEN},60)
exten => _099XXXXXXX,1,Dial(SIP/goip4/2${EXTEN},60)
exten => _050XXXXXXX,1,Dial(SIP/goip4/2${EXTEN},60)
exten => _066XXXXXXX,1,Dial(SIP/goip4/2${EXTEN},60)
;Lifecell
exten => _073XXXXXXX,1,Dial(SIP/goip4/3${EXTEN},60)
exten => _093XXXXXXX,1,Dial(SIP/goip4/3${EXTEN},60)
exten => _063XXXXXXX,1,Dial(SIP/goip4/3${EXTEN},60)

Кстати отправлять СМС через GoIP4 можно GET запросом, например (где admin и admin — пользователь и пароль, 1 — номер канала с которого слать, потом номер телефона получателя и текст СМС):

http://192.168.1.5/default/en_US/send.html?u=admin&p=admin&l=1&n=телефон&m=текст

Перезагрузить из Linux можно через wget:

sudo wget --user=admin --password=admin --auth-no-challenge http://192.168.1.5/default/en_US/reboot.html -O /dev/nulll

Уровень сигнала можно увидеть во вкладке Status — колонка RSSI (0 — плохой, это -133dBm; 1 это -111 dBm; 31 — максимальный, это -51dBm или лучше; 99 — нет сигнала).

Частые сообщения «Remote UNIX connection» в Asterisk

Заметил однажды в консоли Asterisk, что часто отображаются следующие сообщения:

— Remote UNIX connection
— Remote UNIX connection disconnected
— Remote UNIX connection
— Remote UNIX connection disconnected
— Remote UNIX connection
— Remote UNIX connection disconnected

Сообщение уведомляет что кто-то подключается к консоли Astersik.
Эти сообщения видны если консоль открыта в режиме отладки выше уровня -rvv (то есть, если например запустить astersik -rvvv, чем больше букв v тем больше подробной информации в консоли отображается).

Причиной этих сообщений в моем случае был Zabbix, который мониторил различную статистику как я описывал в этой статье — Мониторинг Asterisk в Zabbix

То есть он выполнял команды подобно этой и получал таким образом информацию:

asterisk -rx "database show" | grep Registry | wc -l

Аналогичным образов могут быть другие скрипты или возможно просто кто-то подключается.