Установка Asterisk
Установка астериска выполняется путем сборки исходников. Сама процедура проходит в 3 этапа:
- Установка DAHDI (драйверов плат интерфейсов);
- Установка LibPRI (библиотека для работы с потоковыми TDM-интерфейсами);
- Собственно, сборка и установка Asterisk.
1. Сборка DAHDI
Устанавливаем исходники для используемого ядра:
yum install «kernel-devel-uname-r == $(uname -r)»
Загружаем исходник, распаковываем его и переходим в распакованный каталог:
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar -xvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*/
Выполняем сборку и установку:
make
make install
make install-config
Выходим из каталога с исходником:
cd ..
2. Сборка LibPRI
Процедура, во многом, похожа на сборку DAHDI. Загружаем исходник, распаковываем его и переходим в распакованный каталог:
wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
tar -xvf libpri-current.tar.gz
cd libpri-*/
Выполняем сборку и установку:
make
make install
Выходим из каталога с исходником:
cd ..
3. Установка самого астериска
Для начала, загружаем исходник на сервер. Так как мы планируем установить LTS версию, заходим на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions, раздел «Long Term Support (LTS) Releases» и копируем ссылку на загрузку пакета:
* Certified Asterisk — бизнес версия с поддержкой для коммерческих клиентов.
Используя ссылку, скачиваем на сервер программу:
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
Распаковываем архив и переходим в него:
tar -xvf asterisk-*.tar.gz
cd asterisk-*
Используем встроенный скрипт, чтобы установить зависимости для астериска:
./contrib/scripts/install_prereq install
./contrib/scripts/install_prereq install-unpackaged
Чистим образовавшиеся временные файлы:
make distclean
Добавляем библиотеку для работы с mp3:
./contrib/scripts/get_mp3_source.sh
Конфигурируем исходник:
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex —with-mysqlclient —with-jansson-bundled —with-pjproject-bundled
* полный перечень опция и что они означают можно посмотреть командой ./configure -h.
Продолжаем настройку:
make menuselect
Выбираем необходимые компоненты (в данном примере res_config_mysql, app_mysql, cdr_mysql):
Запускаем сборку и установку:
make
make install
Устанавливаем скрипты для автозапуска АТС и готовые конфигурационные файлы:
make config
make samples
Установка завершена!
Возможности Asterisk
Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает VoIP протоколы и предоставляет богатые функции управления звонками:
- голосовую почта,
- конференции,
- IVR — Interactive Voice Response,
- центр обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы),
- Подробная запись о вызове (CDR)
- Архив аудио записей разговоров
Возможности Asterisk 1.8.0:
- Поддержка шифрования RTP-потоков;
- Поддержка IPv6 в канальном драйвере SIP;
- Поддержка расширения «Connected Party Identification», позволяющего обеспечить идентификацию присоединенного абонента, т.е. гарантировать звонящему абоненту, что на другом конце линии именно тот кого он вызывал (например, звонок может быть перенаправлен кому-то другому);
- Поддержка интеграции с календарями-планировщиками, для управления представлен специальный «Calendaring API«. Календарь поддерживает задание событий, приоритетов, категорий, обмен информацией с популярными календарными сервисами. Поддерживаются форматы Exchange/Outlook, CalDAV и iCal. Новый API позволяет организовать запись в календарь информации о звонках (история звонков будет доступна через стандартный интерфейс календаря, при этом звонки легко ассоциировать с пересекающимися во времени событиями) или принимать решение о перенаправлении звонков на основании данных в календаре ( например, определив занятость абонента при наличии записи о срочном деле).
- Добавлена альтернативная система ведения лога звонков — Channel Event Logging (CEL), позволяющая детально отследить все связанные со звонком события (перенаправления звонков, выбор в голосовом меню и т.п.) и просмотреть данные о всех участвовавших при обработке звонка подсистемах;
- Возможность распределенного обмена данными о состоянии устройств через Jabber/XMPP расширение PubSub (отправка уведомлений по подписке);
- Поддержка добавочных сервисов завершения вызова (H.450.9, Call Completion Supplementary Services), например, позволяющих звонящему пользователю A определить свободность абонента B без попытки совершения нового звонка, когда первый звонок остается незавершенным из-за занятости линии абонента B или когда он не отвечает;
- Поддержка GTalk и Google Voice с возможностью осуществления прямых исходящих звонков;
- Поддержка AoC (Advice of Charge), дополнительного GSM-сервиса, позволяющего оператору передать абоненту данные о стоимости звонка.
Пункт третий. Устанавливаем ПО для пользователей телефонии.
Как известно, FreePBX предназначен для администрирования системы телефонии. Его использует системный администратор для настройки. Директор и секретарь, а также другие руководители каждый день работают со статистикой звонков и записями разговоров. Для этих целей FreePBX им не подойдет. Пользователь в IT не разбирается. Часто это неуверенный пользователь ПК. Поэтому ему нужна русифицированная интуитивно понятная программа.
По моему мнению, наиболее соответствует этим критериям программа HelloAsterisk. Программа имеет бесплатную версию. В этой бесплатной версии огромное количество нужных функций. Есть и платные функции. Описание можно найти на официальном сайте программы.
Я приведу видео обзор одной из бесплатных функций HelloAsterisk:
Частые ошибки в установке и настройке Asterisk
Если не планируется принимать анонимные звонки, надо их отключить.
Отсутствие библиотеки sqlite или ее компонентов для разработчиков для сборки программ.
Чтобы решить эту проблему, надо использовать CentOS с пакетом sqlite-devel: yum -y install sqlite-devel
Не получается зарегистрировать Asterisk на сервере ru.
Для решения этой проблемы надо проверить правильность ввода пароля, SIP ID. Также необходимо проверить, как сотрудник создан в «Личном кабинете»: правильно или нет.
Отклонение входящего вызова Астериксом.
Надо проверить, находится ли пользователь в регистрации. Необходимо ввести команду sipshowregistry в консоле Астериск.
Прохождение звука через одну сторону.
Нужно выбрать либо поддержку nat в Asterisk, либо поддержку SIP. Второй вариант решения проблемы – установка directmedia=nonat. Еще одним способом станет установка debug в Asterisk, с помощью которого можно будет отслеживать все запросы и аудио-трафик.
Не получается исходящему вызову пройти.
Для этого надо написать: exten => _XXXXXX,1,Dial(DAHDI/g1/$)
Изменив номер, можно решить проблему.
Asterisk + Ubuntu + VDS = IP-PBX
Существуют и другие серверы VoIP, при этом некоторые коммерческие продукты ограниченное время можно использовать бесплатно. Считается, что они гораздо проще в настройке, но требуют для работы Windows или установки с собственного дистрибутива Linux. Это сразу отсекает большинство недорогих VDS, а собственное железо с каналом передачи данных или аренда выделенного аппаратного сервера обходятся дороже. Бесплатный Asterisk разворачивается на любой виртуальной машине, к тому же внедрить его не так сложно. Для этого не потребуется даже сборка из исходных текстов. С помощью Asterisk нетрудно наладить телефонную связь между IP-телефонами (аппаратными и программными), а если подключиться к внешнему провайдеру VoIP, то за небольшую сумму денег вы получите полноценную IP АТС (IP-PBX). Если потребность в ней исчезнет, отказаться можно в любой момент — аренда выгоднее вложений в железо и софт.
Установка FreePBX
Вносим необходимые правки в файлы конфигураций php, apache и применяем сделанные изменения в них:
1 |
sed -i ‘s/\(^upload_max_filesize = \).*/\1 256M/’ /etc/php/5.6/apache2/php.ini sed -i ‘s/\(^memory_limit = \).*/\1 256M/’ /etc/php/5.6/apache2/php.ini cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig sed -i ‘s/^\(User\|Group\).*/\1 asterisk/’ /etc/apache2/apache2.conf sed -i ‘s/AllowOverride None/AllowOverride All/’ /etc/apache2/apache2.conf a2enmod rewrite service apache2 restart |
Создаем файл конфигурации /etc/odbcinst.ini:
1 |
cat <<EOF > /etc/odbcinst.ini Description = ODBC for MySQL (MariaDB) |
Создаем файл конфигурации /etc/odbc.ini
1 |
cat <<EOF > /etc/odbc.ini Description = MySQL connection to ‘asteriskcdrdb’ database |
Создадим базу данных для работы FreePBX:
1 | mariadb |
1 |
CREATE DATABASE asterisk default charset utf8; CREATE DATABASE asteriskcdrdb default charset utf8; GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY ‘asterpass’; GRANT ALL PRIVILEGES ON asteriskcdrdb.* to asteriskuser@localhost IDENTIFIED BY ‘asterpass’; FLUSH PRIVILEGES; EXIT |
Переходим в каталог с дистрибутивом FreePBX, запускаем Asterisk и выполняем установку:
1 |
cd freepbx/ ./start_asterisk start ./install -n —dbuser=asteriskuser —dbpass=asterpass |
Установка завершена, через Web браузер заходим в консоль FreePBX:
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
Устанавливаем DAHDI, LibPRI
Для удобства дальнейшей инсталляции скачиваем все необходимые исходники (dahdi, libpri, asterisk, freepbx) и распаковываем их:
1 |
cd /opt/ wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz tar -zxvf dahdi-linux-complete-current.tar.gz tar -zxvf libpri-current.tar.gz tar -zxvf asterisk-18-current.tar.gz tar -zxvf freepbx-14.0-latest.tgz |
Собираем по очереди (dahdi, libpri) из исходников и устанавливаем:
1 |
cd dahdi-linux-complete-3.* make all make install make config cd .. |
1 |
cd libpri-1.* make make install cd .. |
Звонки с/на Skype
Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины — x11vnc:
apt-get install xvfb x11vnc
dpkg -i skype.deb
Для работы SipToSis необходима Java версии не ниже 1.5.
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update
Установим java:
sudo apt-get install oracle-java7-installer
Разархивируем в и проставим на исполняемый файл:
chmod +x /etc/siptosis/SipToSis_linux
man hier не согласится с этим
Теперь настроим asterisk.
В добавим:
username=Skype type=friend context=Skype secret= host=dynamic nat=no dtmfmode=auto canreinvite=no incominglimit=1 outgoinglimit=1 call-limit=1 busylevel=1
В добавим
exten => 1001,1,Dial(SIP/Skype/echo123)
И перезагрузим asterisk.
sudo /etc/init.d/asterisk restart
Теперь правим конфиг SipToSis:
sudo nano /etc/siptosis/siptosis.cfg
Закомментируем блок настроек, начинающийся с «#Sample AUTO config with NO registration»
Раскомментируем блок «#Sample Asterisk registration example», поправим:
host_port=5070 contact_url=sip:[email protected]:5070 from_url="Skype" <sip:[email protected]:5060> username=Skype realm=asterisk passwd= expires=300 do_register=yes minregrenewtime=120 regfailretrytime=15
Запускаем:
sudo /usr/bin/Xvfb :101 -ac & sudo DISPLAY=:101 /usr/bin/skype & sudo x11vnc -display :101 &
Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.
Теперь запускаем :
DISPLAY=:101 /etc/siptosis/SipToSis_linux
Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос — разрешить ли подключение. Разрешаем и ставим галку «запомнить».
Проверяем: набираем с подключенного к Asterisk клиента 1001 — мы должны услышать тестовый звонок Skype.
Чтобы принимать входящие звонки, в прописываем соответствующее правило. Например:
*,sip:[email protected]:5060
-перенаправлять все входящие звонки Skype SIP-юзеру «user1».
Естественно, нужно создать в контекст «», в котором разрешить звонки на этот extension.
Настройка поддержки интерфейсных карт
Если планируется подключение сервера Asterisk с помощью специальных интерфейсных плат к обычным телефонным сетям, следует позаботиться о наличии соответствующих драйверов, реализованных в виде модуля ядра. Но даже если таких устройств в компьютере нет, эти драйверы все равно рекомендуется установить. Дело в том, что во всех Zaptel-устройствах есть таймер, и для полноценной работы сервера IP-телефонии он является необходимым. Но если Zaptel-устройства под рукой нет, для его эмуляции можно использовать специальный драйвер — ztdummy.
Из репозитария устанавливаем пакеты zaptel, zaptel-source и собираем модули под свою систему:
В /usr/src появится пакет zaptel-modules-*_i386.deb, устанавливаем его с помощью dpkg. После этого проверяем работу модулей ядра:
И если нужна поддержка устройств:
Чтобы обеспечить их автоматическую загрузку, выполняем следующую команду:
Создаем правила для UDEV:
KERNEL=»zapctl», NAME=»zap/ctl»
KERNEL=»zaptimer», NAME=»zap/timer»
KERNEL=»zapchannel», NAME=»zap/channel»
KERNEL=»zappseudo», NAME=»zap/pseudo»
KERNEL=»zap0-9*», NAME=»zap/%n»
Также можно использовать исходные тексты или CVS-версию драйвера. При самостоятельной компиляции понадобятся заголовочные файлы ядра (или исходные тексты):
Создадим символическую ссылку, чтобы Asterisk нашел исходники ядра:
Теперь получаем последнюю версию драйверов:
Компилируем и устанавливаем:
И чтобы вручную не создавать конфигурационные файлы:
После этой команды будет создан скрипт для автоматического запуска модулей, входящих в состав Zaptel, и конфиг /etc/default/zaptel (или /etc/sysconfig/zaptel), в котором будет указано, какие модули необходимо загружать. Рекомендую в этом файле оставить только необходимое. Пробуем загрузить модуль:
Все нормально. После установки в системе появятся еще два файла:
- /etc/zaptel.conf – описывает конфигурацию аппаратного обеспечения;
- /etc/Asterisk/zapata.conf — настройки сервера Asterisk для работы драйвера Zap-канала.
Подробные указания для всевозможных устройств даны в документации. На русском по этому поводу можно почитать в документе «Конфигурация драйвера ядра Zaptel». Но на этом не останавливаемся, впереди у нас еще много работы. После настройки проверяем работу командой ztcfg -vv.
Call Detail Record (CDR)
Теперь настроем хранение журнала вызовов в базе данных.
Открываем следующий файл:
vi /etc/asterisk/cdr_adaptive_odbc.conf
Добавляем в самый низ:
YAML
connection=asterisk-conf
table=cdr
alias src => source
alias channel => source_channel
alias dst => dest
alias dstchannel => dest_channel
1 |
connection=asterisk-conf |
Перезапускаем астериск:
systemctl restart asterisk
Пробуем позвонить через наш астериск и после звонка смотрим записи в базе:
mysql -uasteruser -pasterpassword123 -e «SELECT * FROM asterisk.cdr»
Получим примерно следующее:
YAML
| accountcode | src | dst | dcontext | clid | channel | dstchannel | lastapp | lastdata | start | answer | end | duration | billsec | disposition | amaflags | userfield | uniqueid | linkedid | peeraccount | sequence |
+————-+——+——+————+—————+——————-+——————-+———+————-+———————+———+———————+———-+———+————-+—————+————+—————+—————+————-+———-+
| NULL | 1001 | 1004 | outcaling | «1001» <1001> | SIP/1001-00000000 | SIP/1004-00000001 | Dial | SIP/1004,,m | 2017-12-07 16:11:24 | NULL | 2017-12-07 16:11:32 | 7 | 0 | NO ANSWER | DOCUMENTATION | NULL | 1512652284.0 | 1512652284.0 | NULL | 0 |
1 |
|accountcode|src|dst|dcontext|clid|channel|dstchannel|lastapp|lastdata|start|answer|end|duration|billsec|disposition|amaflags|userfield|uniqueid|linkedid|peeraccount|sequence| +————-+——+——+————+—————+——————-+——————-+———+————-+———————+———+———————+———-+———+————-+—————+————+—————+—————+————-+———-+ |NULL|1001|1004|outcaling|»1001″<1001>|SIP/1001-00000000|SIP/1004-00000001|Dial|SIP/1004,,m|2017-12-0716:11:24 | NULL | 2017-12-07 16:11:32 | 7 | 0 | NO ANSWER | DOCUMENTATION | NULL | 1512652284.0 | 1512652284.0 | NULL | 0 | |
Или в более читаемом виде:
Поле | Пример значения | Описание поля |
---|---|---|
accountcode | NULL | Дополнительное поле для идентификации клиента. Может использоваться, если не хватает стандартного набора параметров. |
src | 1001 | Кто звонит. |
dst | 1004 | Кому позвонили. |
dcontext | outcaling | Контекст (группа правил обработки звонка). |
clid | «1001» <1001> | Caller identification или CID. Состоит из имени и номера звонящего. |
channel | SIP/1001-00000000 | Канал, который принимает вызов. |
dstchannel | SIP/1004-00000001 | Канал исходящего вызова. |
lastapp | Dial | Dialplan обработки вызова. |
lastdata | SIP/1004,,m | Что передавалось в lastapp. |
start | 2017-12-07 16:11:24 | Начало звонка. |
answer | NULL | Время, за которое подняли трубку. NULL — трубку не подняли. |
end | 2017-12-07 16:11:32 | Дата и время окончания звонка. |
duration | 7 | Длительность звонка в секундах. |
billsec | Время разговора (с момента поднятия трубки). | |
disposition | NO ANSWER | Состояние вызова. Возможные варианты: — ANSWERED — отвечен. — NO ANSWER — ответа нет. — CONGESTION / FAILED — ошибка вызова. — BUSY — занято. |
amaflags | DOCUMENTATION | Не используется. |
userfield | NULL | Пользовательские параметры для канала. |
uniqueid | 1512652284.0 | Уникальный идентификатор канала звонящего. |
linkedid | 1512652284.0 | Уникальный идентификатор канала звонящего. |
peeraccount | NULL | Код учетной записи канала Стороны 2. |
sequence | Номер последовательности канала. |
Также существуют продукты, позволяющие в графическом интерфейсе смотреть CDR. Например, веб-приложение Asterisk CDR Viewer Mod.
Регистрация пользователей
Если теперь посмотреть в каталог /etc/Asterisk, можно обнаружить большое количество файлов. Но размер журнальной статьи позволит нам познакомиться только с некоторыми из них. Так, в Asterisk.conf указаны каталоги, которые будет задействовать Asterisk во время работы, расположение и владелец сокета, используемого для подключения удаленной консоли управления, а также дефолтные параметры запуска сервера. Некоторые каталоги во время установки не создаются, это придется сделать вручную:
Добавим пользователя Asterisk в группу audio:
Дальше нас интересует файл sip.conf, где определяются серверы и клиенты SIP, с которыми будет дружить наш Asterisk. Каждый из них представлен в файле отдельным блоком, который начинается с оглавления, заключенного в квадратные скобки. Параметров в sip.conf довольно много, ограничимся лишь добавлением SIP-аккаунта:
Поле type указывает, что может делать этот клиент. При значении user ему будет разрешено только принимать входящие звонки, при peer он сможет только звонить, а friend означает все действия сразу, то есть user+peer. В поле host указывается IP-адрес, с которого разрешено подключение этого клиента. Если он может подключаться с любого адреса, указываем host=dynamic. А чтобы в этом случае вызвать клиента, когда он еще не зарегистрирован, в defaultip следует записать IP-адрес, по которому его всегда можно будет найти. В username и secret указываем логин и пароль, используемые клиентом при подключении. Параметр Language задает код языка приветствий и специфичные настройки сигналов телефонов,
которые определены в файле indications.conf. При работе клиента за NAT’ом в соответствующем поле необходимо установить значение yes. Отключение canreinvite заставляет весь голосовой RTP-трафик проходить через Asterisk. Если клиенты поддерживают SIP re-invites, им можно разрешить соединяться напрямую, указав canreinvite=yes. Поле сontext определяет план набора, в который попадают вызовы, поступающие от этого клиента, а callerid — строку, которая будет выводиться при звонке от клиента. По умолчанию используется контекст default, который берет все настройки из контекста demo. Последний предназначен исключительно для демонстрационных целей, в рабочей системе необходимо создать свой контекст.
Поле mailbox указывает на голосовой ящик 1234 в контексте office. Остальные клиенты настраиваются аналогично.
После определения SIP-аккаунтов наши клиенты могут регистрироваться на сервере Asterisk и совершать исходящие вызовы. Чтобы у них была возможность принимать звонки, следует обратиться к файлу extensions.conf, в котором описывается план набора (Dialplan), распределяющий звонки в системе. Здесь же указываются все разрешенные расширения.
Здесь все просто. За пользователем grinder закрепляем номер 1234, и, если он не ответит на звонок, ему можно будет оставить сообщение в голосовой почте. Цифра после номера означает приоритет, который определяет последовательность выполнения задач. Теперь, если Asterisk запущен, следует подключиться к его консоли, выполнив на той же машине Asterisk -r, и с помощью команды reload заставить его перечитать конфигурационные файлы. Есть и команды для перезагрузки конкретного файла. Например, план набора перечитывается командой extensions reload.
Сервер готов к приему клиентов. По адресу www.Asteriskguru.com/tutorials/configuration_Asterisk_softphone.html выбираем себе софт-клиент и пробуем соединиться. Мне, например, нравится бесплатная версия простой и понятной в использовании программы ZoIPer (ранее Idefisk). Есть версии для Linux, Windows и Mac OS X. Еще один неплохой и также мультиплатформенный клиент — X-Lite.
Если все нормально, в консоли должно появиться сообщение вроде «Registered SIP ‘grinder’ at 192.168.0.1 port 5060», набираем номер и звоним.
Настройка Asterisk
Файлы конфигурации находятся в каталоге /etc/asterisk, причем их там огромное количество.
Продукт настраивается очень гибко и обладает массой возможностей, но для решения простых задач большинство из них нам не понадобится. В этой статье мы ограничимся правкой двух конфигурационных файлов: /etc/asterisk/sip.conf и /etc/asterisk/extensions.conf. Предварительно стоит сделать их резервные копии:
Переходим к редактированию новых конфигурационных файла (самые любопытные могут изучить резервные копии дистрибутивных, там много интересного):
В файл нужно добавить минимум двух пользователей (внутренних абонентов) с номерами 1001 и 1002, а также задать для них пароли (параметр secret). На вашем сервере внутренние номера и пароли будут другими:
type=friend
host=dynamic
secret=1234
type=friend
host=dynamic
secret=5678
Аналогично делаем новый extensions.conf:
Его содержание будет следующим:
exten => 1001,1,Dial(SIP/1001,10)
exten => 1002,1,Dial(SIP/1002,10)
Меняем владельца и права доступа к файлам, поскольку там лежат, в частности, пароли пользователей нашей АТС
Теперь нам остается только перезапустить службу и проверить ее работоспособность:
На этом настройка IP АТС с возможностью телефонной связи между внутренними абонентами завершена. Перейдем к проверке ее работоспособности.
Настройка
Теперь выберем параметры для телефонного сервера Ubuntu. Настройка с нуля Asterisk выглядит так.
Меню
- Зайдите в меню программы — «make menuselect».
- Активируйте все функции «MySQL».
- Откройте вкладку «Add-ons».
- Выберите опцию «format_mp3». Так голосовое меню будет в MP3-формате.
- Если вы хотите поставить поддержку русского языка (или какого-то другого), включите её в подразделе «Core Sound Packages».
- Вам нужны все три кодека. «ALAW» — основной. «G729» — для номеров, которые присоединяются через внешнюю сеть. «GSM» — для GSM-шлюзов.
- Скачайте модуль «meetme».
- В разделе «Extras Sound Packages» тоже подключите кодеки.
- Для использования FreePBX выберите «cdr_odbc».
- На вкладке «Music On Hold File» активируйте всё.
- Загрузите «MOH-OPSOUND-WAV». Это набор мелодий. Потом вы сможете их заменить на те, которые вам нужны.
- Нажмите «Save & Exit».
Консоль
Включили модуль MP3? Теперь скачайте пакеты голосовых сообщений.
- Перейдите в папку «contrib/scripts/» при помощи команды «cd».
- Откройте скрипт «get_mp3_source.sh».
- Введите «make install».
- Подождите, пока загрузятся архивы.
Установленный Asterisk надо настраивать и через меню, и через терминал. Поэтому откройте консоль.
- Сделайте конфигурационные файлы. Можно в качестве теста. Команда — «make samples».
- Активируйте функцию автозапуска — «make config ldconfig».
- Теперь можно запустить сервис — «service asterisk start».
- Или сразу открыть его в качестве демона — «/etc/init.d/asterisk start». Чтобы включить его консоль, введите команду «sudo asterisk -rvvvcd».
Пока для работы с Астериском вам нужны права суперюзера. Но лучше создать отдельного пользователя и предоставить ему доступ к функциям программы. Для этого:
- Временно отключите утилиту — «service asterisk stop».
- Добавьте нового юзера — «adduser ». Можете создать группу, которой предоставите нужные права. Она пригодится, если вы решите сделать нескольких пользователей для работы с разными службами Астериска.
- Теперь нужна директория для запуска. Добавьте её при помощи команды «mkdir». После неё напишите параметр «-p» и путь к папке «/var/run/asterisk».
- Чтобы приложение открывалось сразу под нужным юзером, отредактируйте файл «/etc/default/asterisk». Установите там следующие параметры: «AST_GROUP=»dialout»» и «AST_USER=»asterisk»».
- Можно сделать это проще — впишите скрипт «sed -i ‘s/#AST_USER=»asterisk»/AST_USER=»asterisk»/g’ /etc/default/asterisk».
- Предоставьте пользователю доступ ко всем папкам программы — «chown -R ».
- Откройте файл «asterisk.conf», найдите в нём параметр «runuser» и укажите в нём только что созданного пользователя. Если делали группу, также перепишите строчку «rungroup».
- Перезагрузите систему — «reboot».
- Зайдите под именем Asterisk-юзера — «su ».
- И запустите программу.
- Чтобы посмотреть информацию о ней, введите «asterisk -rvvvv».
Утилита готова к работе. Дальнейшие действия зависят от того, в каких условиях будет использоваться станция. Есть несколько файлов, в которых расписана конфигурация:
- conf — общие настройки сервера. В нём можно указать, сколько подключено абонентов. Там устанавливают правила дозвона.
- conf — в нём также настраивают правила дозвона и выставляют параметры звонков.
- conf — конфигурация абонентских аккаунтов.
С Asterisk вы создадите АТС любой сложности. В нём много полезных функций и модулей. После установки и настройки вы сможете взаимодействовать со станцией при помощи клиентского программного обеспечения. Например, Linphone.