Будьте в курсе всех новостей про IP-телефонию и Asterisk.

Подписка на еженедельную рассылку компании VoxLink. Статьи и инструкции по настройке Asterisk и VoIP-оборудования, рецепты и лайфхаки, обучение и бесплатные вебинары.

Будь в теме

Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

Используйте Веб-Интерфейс для удобства настройки

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

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

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

Интеграция Asterisk через Телефум24

База знаний Интеграция с CRM
В данной статье рассмотрим как выполнить интеграцию Asterisk через Телефум24.

Все команды описанные в данной статье необходимо выполнять от имени сперпользователя root. Все действия выполняются в CentOS 6.8 x64 с предустановленным Asterisk 11. Обязательным условием является наличие модулей cdr_mysql.so, app_mysql.so, res_config_mysql.so(данные модули выбираются при выполнении сборки Asterisk)

Установка:
1. Проверим наличие необходимых пакетов в системе, для этого выполним команду вида:

# yum list installed | grep -i mysql

Результат выполнения команды

В случае отсутствия необходимых пакетов, выполним доустановку командой:

# yum -y install MySQL mysql mysql-connector-odbc mysql-devel mysql-libs mysql-server mysql-client php-mysql perl-DBD-MySQL

2. Создадим пользователя в MySQL:

# mysql -u root -p ; Потребуется ввести пароль root пользователя MySQL который вводился при установке пакетов mysql-server mysql-client
# create database asteriskcdrdb;
# create database asterisk;
# GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '123456';
# GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '123456';
# FLUSH PRIVILEGES;

3. Создадим таблицы CEL и CDR в созданной БД asteriskcdrdb:

# USE asteriskcdrdb;
# CREATE TABLE cel (
'id' int(11) NOT NULL auto_increment,
'eventtype' VARCHAR(30) COLLATE utf8_unicode_ci NOT NULL,
'eventtime' DATETIME NOT NULL,
'cid_name' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'cid_num' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'cid_ani' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'cid_rdnis' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'cid_dnid' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'exten' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'context' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'channame' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'src' varchar(80) COLLATE utf8_unicode_ci NOT NULL,
'dst' varchar(80) COLLATE utf8_unicode_ci NOT NULL,
'channel' varchar(80) COLLATE utf8_unicode_ci NOT NULL,
'dstchannel' varchar(80) COLLATE utf8_unicode_ci NOT NULL,
'appname' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'appdata' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'amaflags' INT(11) NOT NULL,
'accountcode' VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
'peeraccount' VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
'uniqueid' VARCHAR(150) COLLATE utf8_unicode_ci NOT NULL,
'linkedid' VARCHAR(150) COLLATE utf8_unicode_ci NOT NULL,
'peer' VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
'userdeftype' VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
'eventextra' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
'userfield' VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY 'id' ('id'),
KEY 'uniqueid_index' ('uniqueid'),
KEY 'linkedid_index' ('linkedid')
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Создание таблицы CEL.

CREATE TABLE cdr (
'calldate' DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
'clid' VARCHAR(80) NOT NULL DEFAULT '',
'src' VARCHAR(80) NOT NULL DEFAULT '',
'dst' VARCHAR(80) NOT NULL DEFAULT '',
'dcontext' VARCHAR(80) NOT NULL DEFAULT '',
'channel' VARCHAR(50) NULL DEFAULT NULL,
'dstchannel' VARCHAR(50) NULL DEFAULT NULL,
'lastapp' VARCHAR(200) NOT NULL DEFAULT '',
'lastdata' VARCHAR(200) NOT NULL DEFAULT '',
'duration' FLOAT UNSIGNED NULL DEFAULT NULL,
'billsec' FLOAT UNSIGNED NULL DEFAULT NULL,
'disposition' ENUM('ANSWERED','BUSY','FAILED','NO ANSWER','CONGESTION') NULL DEFAULT NULL,
'amaflags' VARCHAR(50) NULL DEFAULT NULL,
'accountcode' VARCHAR(20) NULL DEFAULT NULL,
'uniqueid' VARCHAR(32) NOT NULL DEFAULT '',
'userfield' VARCHAR(200) NOT NULL DEFAULT '',
'recordingfile' varchar(255) NOT NULL DEFAULT '',
'linkedid' varchar(32) NOT NULL DEFAULT '',
INDEX 'calldate' ('calldate'),
INDEX 'src' ('src'),
INDEX 'dst' ('dst'),
INDEX 'accountcode' ('accountcode'),
INDEX 'uniqueid' ('uniqueid')
);


Создание таблицы CDR.

4. Настройка CEL

# nano /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
user=asteriskuser
password=пароль
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=67108864
Charset=utf8
# nano /etc/asterisk/res_odbc.conf
[MySQL-asteriskcdrdb]
enabled => yes
dsn => MySQL-asteriskcdrdb
username => asteriskuser
password => пароль
pre-connect => yes
pooling => no
# nano /etc/asterisk/cel_odbc.conf
[first] ([cel])
connection=MySQL-asteriskcdrdb
loguniqueid=yes
table=cel # nano /etc/asterisk/cel.conf
[general]
enable=yes
apps=all
events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_START,BRIDGE_END
dateformat = %F %T

5. После выполненых настроек необходимо выполнить перезапуск модулей в Asterisk:

# asterisk -rvvvv
# module reload res_odbc.so
# module reload cel_manager.so
# module reload cel
# cel show status



Статус перезапуска модулей.

6. Выполним настройку CDR:

# nano /etc/asterisk/cdr_mysql.conf
[global]
hostname= localhost
dbname=asteriskcdrdb
table=cdr
password=пароль
user=asteriskuser
port=3306
charset=utf8
[columns]
alias recordingfile = recordingfile
# nano /etc/asterisk/cdr.conf
[general]
enable=yes
unanswered=yes
safeshutdown=yes
[csv]
usegmtime=yes
loguniqueid=yes
loguserfield=yes
accountlogs=yes

7. После выполненых настроек необходимо выполнить перезапуск модулей в Asterisk:

# asterisk -rvvvv
# module unload app_mysql.so
# module load app_mysql.so
# module reload res_config_mysql.so
# module reload cdr_mysql.so
# cdr show status


Статус перезапуска модулей.

8. Выполним установку приложения Telefum24 на сервер Asterisk:


# cd /usr/src/
# wget http://telefum.com/EugenyData/webserver/redhat_pbx/torun_script
# chmod 777 torun_script
# ./torun_script
# chmod 777 toservice_run
# ./toservice_run <внешний_IP_или_доменное_имя>

9. Приступим к конфигурированию приложения:

# nano /usr/src/toapi_server/mysql.ini
[MySQL account]
localhost
asteriskuser
пароль
asteriskcdrdb
# nano /usr/src/toapi_server/ast_config.ini
ast_config_type=3
ast_timezone=+3:00
[users]
users.db=asterisk
users.table=devices
users.fields=user,description
[companies]
companies.active=false
companies.db=ast
companies.table=companies
companies.fields=id,name,context
[call_history]
call_history.db=asteriskcdrdb
call_history.table=cdr
call_history.user_field=accountcode
call_history.time_field=calldate
call_history.direction_field=
call_history.recording_field=recordingfile
call_history.recording_add_path=/var/spool/asterisk/monitor/%Y%/%m%/%d%/
call_history.recording_skip_path=
call_history.recording_extension=
# ln -s /var/spool/asterisk/monitor /var/www/html/

10. Настройка Iptables:

# iptables -I INPUT -p tcp -s 5.200.55.23 --dport 9000 -j ACCEPT
# iptables -I INPUT -p tcp -s 5.200.55.23 --dport 9500 -j ACCEPT
# service iptables save

11. Добавим пользователя для подключения по AMI:

# nano /etc/asterisk/manager.conf
[general]
enabled=yes
port=5038
bindaddr=0.0.0.0
[amiuser]
secret=пароль
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0 ; Warning, указываем разрешенные подсети
read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
writetimeout = 5000

12. После всех выполненных настроек выполним запуск приложения:

# cd /usr/src/toapi_server/
# ./pbxserver_autorun

13. Далее необходимо перейти на сайт https://www.online.telefum.com, зайти в личный кабинет администратора и выполнить следующие действия:
1) Пройти авторизацию на https://www.online.telefum.com
2) Перейти в раздел Интеграци->АТС->Добавить АТС->Asterisk
3) Заполнить поля и сохранить внесенные изменения:
Хост: IP адрес или доменное имя сервера телефонии:9500
Логин AMI: логин пользователя AMI
Пароль AMI: пароль пользователя AMI

Страница авторизации в личном кабинете.
Главная страница личного кабинета.
Добавление АТС.
Выбор типа АТС.
Ввод данных АТС.


сервер, asterisk, установка, настройка, CEL, Channel, Time, call, интеграция, ODBC, centOS