Quantcast
Channel: IP АТС Asterisk
Viewing all 1041 articles
Browse latest View live

Asterisk: queue_log в MySQL через unixODBC

$
0
0

Asterisk: queue_log в MySQL через unixODBC

Realtime лог очереди в нативную базу данных Asterisk.

SQL таблица лога очереди

Создадим таблицу в БД asterisk.

CREATE TABLE IF NOT EXISTS `queue_log` (
`time` varchar(32) DEFAULT NULL,
`callid` char(64) DEFAULT NULL,
`queuename` char(64) DEFAULT NULL,
`agent` char(64) DEFAULT NULL,
`event` char(32) DEFAULT NULL,
`data` char(64) DEFAULT NULL,
`data1` char(64) DEFAULT NULL,
`data2` char(64) DEFAULT NULL,
`data3` char(64) DEFAULT NULL,
`data4` char(64) DEFAULT NULL,
`data5` char(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Выключение текстового лога

Если используется стандартное имя queue_logреалтайм семейства (realtime family)
и настроено соединение с базой данных, Asterisk сам создаст таблицу queue_log,
при отключении текстового лога и перезагрузке модуля logger:

*CLI> module reload logger
Module 'logger' reloaded successfully.
 Asterisk Queue Logger restarted

в файле /etc/asterisk/logger.confвыключите лог в файл:

 queue_log_to_file = no

в файле /etc/asterisk/asterisk.conf*

 [options]
 queue_adaptive_realtime = yes

* - спорная опция

Конфигурация realtime family

в файле /etc/asterisk/extconfig.conf

 queue_log => odbc,asterisk,queue_log

где 'asterisk' ваш db конфиг в /etc/asterisk/res_odbc.conf:

[asterisk]
enabled => yes
dsn => asterisk
username => dbuser
password => dbpass
pre-connect => yes

Расшифровка значений событий очереди.

eventdata1data2data3
ABANDONpositionorigpositionwaittime
AGENTDUMP
AGENTLOGINchannel
AGENTCALLBACKLOGINexten@context
AGENTLOGOFFchannellogintime
AGENTCALLBACKLOGOFFexten@contextlogintimereason
COMPLETEAGENTholdtimecalltimeorigposition
COMPLETECALLERholdtimecalltimeorigposition
CONFIGRELOAD
CONNECTholdtimeuniqueid
DIDdid number
ENTERQUEUEurlcalleridenterposition
EXITWITHKEYkeyposition
EXITWITHTIMEOUTposition
QUEUESTART
SYSCOMPAT
TRANSFERextension,context

Пример принятого вызова в таблице MySQL:

timecallidqueuenameagenteventdata1data2data3
2017-02-17 19:58:32.108944 1487339905.409426 991 Tanya COMPLETECALLER 2 5 1
2017-02-17 19:58:27.540265 1487339905.409426 991 Tanya CONNECT 2 1487339905.409427 1
2017-02-17 19:58:25.671737 1487339905.409426 991 NONE ENTERQUEUE 9981138 1
2017-02-17 19:58:25.661590 1487339905.409426 991 NONE DID 3216111
Другие страницы с тегом 'queue':

Asterisk logger.conf

$
0
0

Asterisk logger.conf

Настройка логов Asterisk. В данном файле настраивается журналирование событий Asterisk в файлы, консоль и syslog linux. Для применения настроек выполните команду «logger reload» в консоли (CLI) Asterisk.

Глобальные настройки логов

[general]

dateformat

настройка отображения даты и времени в сообщениях отладки (debug) в данном примере использован ISO 8601 формат даты (yyyy-mm-dd HH:MM:SS) См. также strftime(3) Linux спецификацию формата.
Секундные доли могут быть использованы в данном поле. Используйте %1qдля отображения десятых или %2qдля отображения сотых долей и тд.

 dateformat=%F %T       ; ISO 8601 
 dateformat=%F %T.%3q   ; с миллисекундами
use_callids

Сохранять Asterisk Unique Call-Id (по умолчанию yes)

 use_callids = no
appendhostname

Добавить имя хоста к имени лог файла.

 appendhostname = yes
queue_log

Регистрировать события очереди. (по умолчанию yes).

 queue_log = no
queue_log_to_file

Регистрировать события очереди в файл (по умолчанию no). События очереди могут сохраняться в реалтайм хранилище (базе данных). Сохранять события и в файл тоже, несмотря на то, что в extconfig.confсуществует конфигурация типа: queue_log ⇒ odbc,asterisk

 queue_log_to_file = yes
queue_log_name

Задайте имя файла лога очереди (по умолчанию queue_log)

 queue_log_name = queue_log
queue_log_realtime_use_gmt

Когда используется Realtime лог очереди,
сохранять GMT дату, а не локальное время. По умолчанию 'no'.

  queue_log_realtime_use_gmt = yes

Ротация логов Asterisk

  • none: Не применять ротацию вообще. Заметьте, логи Asterisk могут расти очень быстро.
  • sequential: Переименовать архивные логи таким образом, чтобы новые нумеровались по возрастающей. Это поведение по умолчанию.
  • rotate: Перемешивать файлы таким образом, чтобы старые имели более высокий порядковый номер.
  • timestamp: Переименовать логфайл в соответствии с датой, вместо порядкового номера.
 rotatestrategy = rotate

Выполнить команду Linux после ротации. В примере, предпоследний файл с порядковым номером 2 (стратегия rotate) будет заархивирован.

 exec_after_rotate=gzip -9 ${filename}.2
;
; 
;
; In this file, you configure logging to files or to
; the syslog system.
;
; "logger reload" at the CLI will reload configuration
; of the logging system.

[general]
;
; Customize the display of debug message time stamps
; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)
;
; see strftime(3) Linux manual for format specifiers.  Note that there is also
; a fractional second parameter which may be used in this field.  Use %1q
; for tenths, %2q for hundredths, etc.
;
;dateformat=%F %T       ; ISO 8601 date format
;dateformat=%F %T.%3q   ; with milliseconds
;
;
; This makes Asterisk write callids to log messages
; (defaults to yes)
;use_callids = no
;
; This appends the hostname to the name of the log files.
;appendhostname = yes
;
; This determines whether or not we log queue events to a file
; (defaults to yes).
;queue_log = no
;
; Determines whether the queue_log always goes to a file, even
; when a realtime backend is present (defaults to no).
;queue_log_to_file = yes
;
; Set the queue_log filename
; (defaults to queue_log)
;queue_log_name = queue_log
;
; When using realtime for the queue log, use GMT for the timestamp
; instead of localtime.  The default of this option is 'no'.
;queue_log_realtime_use_gmt = yes
;
; Log rotation strategy:
; none:  Do not perform any logrotation at all.  You should make
;        very sure to set up some external logrotate mechanism
;        as the asterisk logs can get very large, very quickly.
; sequential:  Rename archived logs in order, such that the newest
;              has the highest sequence number [default].  When
;              exec_after_rotate is set, ${filename} will specify
;              the new archived logfile.
; rotate:  Rotate all the old files, such that the oldest has the
;          highest sequence number [this is the expected behavior
;          for Unix administrators].  When exec_after_rotate is
;          set, ${filename} will specify the original root filename.
; timestamp:  Rename the logfiles using a timestamp instead of a
;             sequence number when "logger rotate" is executed.
;             When exec_after_rotate is set, ${filename} will
;             specify the new archived logfile.
;rotatestrategy = rotate
;
; Run a system command after rotating the files.  This is mainly
; useful for rotatestrategy=rotate. The example allows the last
; two archive files to remain uncompressed, but after that point,
; they are compressed on disk.
;
; exec_after_rotate=gzip -9 ${filename}.2
;
;
; For each file, specify what to log.
;
; For console logging, you set options at start of
; Asterisk with -v for verbose and -d for debug
; See 'asterisk -h' for more information.
;
; Directory for log files is configures in asterisk.conf
; option astlogdir
;
[logfiles]
;
; Format is:
;
; logger_name => [formatter]levels
;
; The name of the logger dictates not only the name of the logging
; channel, but also its type. Valid types are:
;   - 'console'  - The root console of Asterisk
;   - 'syslog'   - Linux syslog, with facilities specified afterwards with
;                  a period delimiter, e.g., 'syslog.local0'
;   - 'filename' - The name of the log file to create. This is the default
;                  for log channels.
;
; Filenames can either be relative to the standard Asterisk log directory
; (see 'astlogdir' in asterisk.conf), or absolute paths that begin with
; '/'.
;
; An optional formatter can be specified prior to the log levels sent
; to the log channel. The formatter is defined immediately preceeding the
; levels, and is enclosed in square brackets. Valid formatters are:
;   - [default] - The default formatter, this outputs log messages using a
;                 human readable format.
;   - [json]    - Log the output in JSON. Note that JSON formatted log entries,
;                 if specified for a logger type of 'console', will be formatted
;                 per the 'default' formatter for log messages of type VERBOSE.
;                 This is due to the remote consoles intepreting verbosity
;                 outside of the logging subsystem.
;
; Log levels include the following, and are specified in a comma delineated
; list:
;    debug
;    notice
;    warning
;    error
;    verbose(<level>)
;    dtmf
;    fax
;    security
;
; Verbose takes an optional argument, in the form of an integer level.
; Verbose messages with higher levels will not be logged to the file.  If
; the verbose level is not specified, it will log verbose messages following
; the current level of the root console.
;
; Special level name "*" means all levels, even dynamic levels registered
; by modules after the logger has been initialized (this means that loading
; and unloading modules that create/remove dynamic logger levels will result
; in these levels being included on filenames that have a level name of "*",
; without any need to perform a 'logger reload' or similar operation).
; Note that there is no value in specifying both "*" and specific level names
; for a filename; the "*" level means all levels.  The only exception is if
; you need to specify a specific verbose level. e.g, "verbose(3),*".
;
; We highly recommend that you DO NOT turn on debug mode if you are simply
; running a production system.  Debug mode turns on a LOT of extra messages,
; most of which you are unlikely to understand without an understanding of
; the underlying code.  Do NOT report debug messages as code issues, unless
; you have a specific issue that you are attempting to debug.  They are
; messages for just that -- debugging -- and do not rise to the level of
; something that merit your attention as an Asterisk administrator.  Debug
; messages are also very verbose and can and do fill up logfiles quickly;
; this is another reason not to have debug mode on a production system unless
; you are in the process of debugging a specific issue.
;
;debug => debug
;security => security
console => notice,warning,error
;console => notice,warning,error,debug
messages => notice,warning,error
;full => notice,warning,error,debug,verbose,dtmf,fax
;
;full-json => [json]debug,verbose,notice,warning,error,dtmf,fax
;
;syslog keyword : This special keyword logs to syslog facility
;
;syslog.local0 => notice,warning,error
;

IP АТС Asterisk и FreeSWITCH

$
0
0

IP АТС Asterisk и FreeSWITCH

Составим техническое задание.
Установим, настроим IP АТС Asterisk или FreeSWITCH.
Подберем и настроим VoIPоборудование.
Обучим обслуживающий персонал.

Базовая настройка IP АТС Asterisk

Для внедрения IP АТСнебольшой емкости (до 100 абонентов), прекрасно подходит программная АТС Asterisk с веб интерфейсом FreePBX. Русскоязычный, простой и интуитивно понятный веб интерфейс позволит вам, в дальнейшем, обслуживать АТСбез дополнительных затрат. Все используемое ПО является свободно распространяемым и вы платите только за пусконаладку. Приобретая базовую установку Asterisk вы гарантировано получаете:

Программное обеспечение и функционал:

  • Asterisk 14
  • FreePBX 13 - веб интерфейс настройки Asterisk
  • CDR-viewer - веб интерфейс записи и детализации вызовов
  • ARI (RESTful) и AMI - интерфейсы приложений.
  • Протоколы связи: SIP, IAX2, h323, DAHDI
  • Функции:
    • Очереди
    • Группы приема вызовов
    • Телеконференции
    • Автосекретарь
    • Маршрутизация вызовов
    • Переадресация вызовов
    • Факс-на-Емайл.
  • Операционная система: Centos 7 (Centos 6, Ubuntu или Debian - по требованию)

Базовая настройка IP АТС Asterisk:

  • Создание требуемого кол-ва IP абонентов
  • Подключение требуемого кол-ва SIP (или h323) транков к провайдеру IP телефонии.
  • Подключение потоков ISDN PRI E1.
  • Настройка входящей/исходящей маршрутизации по вашему ТЗ.
  • Настройка дневного/ночного режима
  • Настройка голосового меню (IVR)
  • Настройка групп приема вызовов.
  • Базовые настройки безопасности (IPtables и fail2ban)
  • Настройка приобретенного у нас оборудования (VoIPшлюзов, IP телефонов).
  • Консультации по настройке вашего оборудования.
  • Базовое обучение использования FreePBX для настройки Asterisk (Подключение IP абонентов, IP транков; создание очередей, телеконференций, голосовых меню, групп приема вызовов; использование сервисных кодов и отчетов о звонках.)
  • Бесплатная тех. поддержка в течении месяца с момента ввода в эксплуатацию.

Варианты установки:

  1. Удалённая установка/настройка на сервере заказчика.
  2. Установка на сервере заказчика.
  3. Установка/настройка на VPS хостинге
  4. Продажа сервера с установленной и настроенной системой.
  5. Embeddedустановка на устройства, например роутеры, поддерживающие работу с OpenWRT. Функционал может быть ограничен.

Расширенная настройка IP АТС Asterisk.

Базовая настройка Asterisk при помощи веб-интерфейса предоставляет большие возможности, намного превосходящие возможности традиционных АТС, но, отнюдь не полностью реализующие возможности Asterisk. Для систем большой емкости и самых продвинутых запросов мы предлагаем расширенную настройку. Полностью описать возможности и способы применения не под силу сжатому описанию, поэтому перечислим основные:

Реализация реалтайм архитектуры.

Под реалтайм в Asterisk подразумевается взаимодействие с базами данных и другими типами хранилищ в режиме реального времени. Поддерживается статическое хранение настроек Asterisk в БД и собственно реалтайм взаимодействие. -В первом случае, настройки получаются из хранилища в момент загрузки модуля или ядра АТС, так же как и при использовании конфигурационных файлов. -Во втором (реалтайм) настройки не требуют применения и доступны сразу, после внесения изменений. Также в Asterisk имеется большой набор команд и функций, для взаимодействия с реалтайм хранилищами в момент обработки вызова. В каких случаях применяется Реалтайм Архитектура?

  • для хранения большого количества SIPаккаунтов в базе данных.
  • для маршрутизации вызовов по большому числу условий (например по сотням тысяч def кодов).
  • для передачи и хранения статистической информации, например о работе очереди колл центра или данных передаваемых пользователями по телефону.
  • построения отказоустойчивых распределенных систем.

Поддерживаются следующие типы хранилищ: MySQL, PostgreSQL, SQLite, LDAP, нативно и через ODBC, а также прием и передача данных при помощи cURL. Предлагаем любые реализации реалтайм архитектуры Asterisk.

Взаимодействие со сторонними приложениями

Asterisk имеет три интерфейса (4-ре вместе Command Line Interface) для взаимодействия с другими приложениями:

  1. AMI - Asterisk manager Interface
  2. ARI - Asterisk RESTful Interface
  3. AGI - Asterisk Gateway Interface

Сами по себе интерфейсы в установленном Asterisk готовы к работе и не требуют серьезной настройки. Предлагаем консультации по работе с APIи ПО под нужды клиентов.

Шифрование TLS SRTP

Для подключения внешних пользователей к корпоративной телефонной сети, часто используется шифрование голосового трафика. Asterisk поддерживает шифрование протоколом SRTP с методом обмена ключами SDES через SDP. Предлагаем настройку защищенных телекоммуникационных систем.

Построение корпоративной телефонной сети АТС

Предлагаем построение распределенных телефонных систем, интеграцию с другими АТСчерез VoIPи ISDN протоколы связи, с единым номерным планом и централизованным управлением. Построение VPN сетей под нужды телефонии. На нашем счету проекты объединяющие по 50 филиалов в единую телефонную сеть. Наши специалисты подберут оптимальное оборудование, зарекомендовавшее себя в других проектах.

Настройка IP АТС FreeSWITCH

«Там, где пехота не пройдет…»
Кросс-платформенная много-пользовательская программная АТС FreeSWITCH зарекомендовала себя системой повышенной производительности. Более сложный в настройке и обслуживании, чем Asterisk, тем не менее, FS показывает вчетверо большую производительность, при потреблении равных ресурсов. Если абонентская емкость превышает 200 номеров, имеет смысл рассмотреть FreeSWITCH в качестве альтернативы.

  1. IP АТСбольшой емкости.
  2. Много-пользовательские системы с распределенными ресурсами.
  3. Виртуальные и облачные АТС.
  4. Сервер широкополосных телеконференций.
  5. Session Border Controller.
  6. Сервер маршрутизации и биллинга.
  7. Системы автоматического оповещения абонентов.

Мы предлагаем установку и настройку IP АТС FreeSWITCH в любой из указанных ролей. В базовую настройку входит установка и настройка отказоустойчивой системы FreeSWITCH,
с использованием СУБД PostgreSQL в качестве базы данных ядра и регистраций,
а также MySQL - для отчетов о звонках, с веб-интерфейсом поиска и прослушивания записей.
Диалплан - XML .
Для систем автообзвона, предлагаем установку и настройку Newfies-diаler + FreeSWITCH на Debian 8.
Для систем биллинга и маршрутизации - ASTPP billing.


Свяжитесь с нами для получения подробной информации.
Asterisk

Only edit this fieldset if “IP ATC” is set to “Asterisk”.

M B A A I
FreeSWITCH

Only edit this fieldset if “IP ATC” is set to “FreeSWITCH”.

Настроим Asterisk, FreeSWITCH, IP АТС.

Установка Asterisk 14 + Freepbx 13 Ubuntu 16.04

$
0
0

Установка Asterisk 14 + Freepbx 13 Ubuntu 16.04

Установка Asterisk 14 и FreePBX 13. Первоначальная настройка FreePBX с нуля. Кодек Opus. php5.6. Odbc. Тотальное руководство.

Данное руководство можно использовать, как для установки чистого Asterisk, так и в связке с Freepbx.

При установке системы, на стадии software selectionвыберите, как минимум openssh.ubuntu-16-software-selection Если выбран LAMP сервер, или позднее, при установке mysql-serverиз репозитория, вам будет предложено задать пароль root пользователя MySQL. Если оставить поле пустым, задать пароль можно будет после установки FreePBX 13 командой mysql:

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Password');

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

 mysql_secure_installation

Задайте пароль root пользователя системы

$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password update successfully

Получите права супер пользователя

 $ sudo -i

Сделайте апдейт системы

 # apt update && sudo apt upgrade -y

Установите требуемые зависимости

apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\
 mysql-client bison flex sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev\
 libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev\
 uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev\
 libsrtp0-dev libspandsp-dev libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet

Установка php5.6 вместо php7.0

Ubuntu 16 по умолчанию ставит из репозитория php7.0, а FreePBX с ним не дружит. Если вы планируете использовать не чистый Asterisk, надо установить php5.6.

 apt install -y software-properties-common python-software-properties
 add-apt-repository ppa:ondrej/php
 apt  update -y
 apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6
 apt install -y php-pear

a2dismod php7.0

 a2enmod php5.6
 systemctl restart apache2

Перезагрузите сервер, чтобы загрузить свежую версию ядра после апдейта. Если вы уверены, что загружена последняя версия, можно не перезагружать.

 reboot

Убедитесь, что mod_rewrite включен, чтобы избежать возможных атак.

  a2enmod rewrite
  service apache2 restart

Поддержка Console_Getopt

 pear install Console_Getopt

Asterisk 14 установка

Как использовать данное руководство.

Блоки команд с ключом '&&' могут быть скопированы вместе и будут выполняться последовательно. '&&' выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово контролировать процесс установки, выполните каждую команду отдельно, без ввода '&&'.

Скачайте исходные файлы

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-14-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите Lame (mp3)

 cd /usr/src &&
 tar zxvf lame-3.98.4.tar.gz &&
 cd lame-3.98.4 &&
 ./configure &&
 make &&
 make install  &&
 echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите DAHDI и LibPRI

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите pjproject

(Требуется для поддержки драйвера SIPканала PjSIP)

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
  --disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите jansson

cd /usr/src/jansson &&
autoreconf -i &&
./configure &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите Asterisk

cd /usr/src && 
tar xvfz asterisk-14-current.tar.gz &&
rm -f asterisk-14-current.tar.gz &&
cd asterisk-* &&
./configure &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'. 'res_config_mysql' вынесено в addons по условиям лицензирования.

В разделе Core Sound Packagesвыберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packagesвыберите дополнительные звуковые файлы.

Asterisk 14 + OPUS

Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translatorsубедитесь, что модуль кодека доступен для компиляции и отметьте для установки.

opus install

opus install

Installing modules from codecs...
codec_opus: Remote package version 14.0_1.0.1 (262145)
codec_opus: Downloading http://downloads.digium.com/pub/telephony/codec_opus/asterisk-14.0/x86-64/codec_opus-14.0_1.0.1-x86_64.tar.gz
codec_opus: Installing.
codec_opus: Installed.

после установки asterisk:

 asterisk -rx 'core show translation recalc' | grep opus
           ulaw  alaw   gsm  g726 g726aal2 adpcm  slin  slin  slin  slin  slin  slin  slin  slin  slin lpc10  ilbc  g722 testlaw  opus  opus
     opus 23500 23500 23500 23500    23500 23500 17500 17500 17500 17500 17500 17500  9000 17000 17000 23500 23500 23500   23500     - 23500
     opus 15000 15000 15000 15000    15000 15000  9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250   15000 23000     -

Для сохранения нажмите Save & Exitи продолжите установку.

make &&
make install &&
make config &&
ldconfig

Если вы не планируете использовать FreePBX, команда make basic-pbxустановит минимальный начальный набор конфигов Asterisk.

Запуск от имени пользователя 'Asterisk'

Расcкомментируйте в /etc/default/asterisk

 AST_USER="asterisk"
 AST_GROUP="asterisk"
Создайте пользователя Asterisk и задайте права пользователя.
useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk

Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли

 asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 14.2.0 currently running on ubuntu (pid = 1269)
ubuntu*CLI>
Убедитесь, что Asterisk запущен под своим пользователем:
  ps aux | grep asterisk
 asterisk  1269  4.7 11.4 1446068 57504 ?       Ssl  07:57   0:07 /usr/sbin/asterisk -U asterisk -G asterisk

FreePBX 13: установка и настройка с нуля

Настроим Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/5.6/apache2/php.ini &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /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 &&
systemctl restart apache2

настроим ODBC

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
EOF

Скачайте FreePBX

cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
Распакуйте и установите
tar vxfz freepbx-13.0-latest.tgz &&
cd /usr/src/freepbx &&
./install -n

Если при установке Ubuntu вы задали rootпароль MySQL
запустите скрипт установки без ключа -n.
Установка пройдет в интерактивном режиме,
во время которого вам будет предложено ввести пароль:

./install
Database engine [mysql]:
Database name [asterisk]:
CDR Database name [asteriskcdrdb]:
Database username [root]:
Database password:

install -h

install -h

/usr/src/freepbx# ./install -h
PHP Warning:  Declaration of FreePBX\Install\FreePBXHelpCommand::setCommand(FreePBX\Install\FreePBXInstallCommand $command) should be compatible with Symfony\Component\Console\Command\HelpCommand::setCommand(Symfony\Component\Console\Command\Command $command) in /usr/src/freepbx/installlib/installhelpcommand.class.php on line 15
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
Usage:
 install [--dbengine="..."] [--dbname="..."] [--cdrdbname="..."] [--dbuser="..."] 
[--dbpass="..."] [--user="..."] [--group="..."] [--dev-links] [--webroot="..."] 
[--astetcdir="..."] [--astmoddir="..."] [--astvarlibdir="..."] [--astagidir="..."] 
[--astspooldir="..."] [--astrundir="..."] [--astlogdir="..."] [--ampbin="..."] [--ampsbin="..."] 
[--ampcgibin="..."] [--ampplayback="..."] [-r|--rootdb] [-f|--force]

Options:
 --dbengine            Database engine (default: "mysql")
 --dbname              Database name (default: "asterisk")
 --cdrdbname           CDR Database name (default: "asteriskcdrdb")
 --dbuser              Database username (default: "root")
 --dbpass              Database password (default: "")
 --user                File owner user (default: "asterisk")
 --group               File owner group (default: "asterisk")
 --dev-links           Make links to files in the source directory instead of copying (developer option)
 --webroot             Filesystem location from which FreePBX files will be served (default: "/var/www/html")
 --astetcdir           Filesystem location from which Asterisk configuration files will be served (default: "/etc/asterisk")
 --astmoddir           Filesystem location for Asterisk modules (default: "/usr/lib/asterisk/modules")
 --astvarlibdir        Filesystem location for Asterisk lib files (default: "/var/lib/asterisk")
 --astagidir           Filesystem location for Asterisk agi files (default: "/var/lib/asterisk/agi-bin")
 --astspooldir         Location of the Asterisk spool directory (default: "/var/spool/asterisk")
 --astrundir           Location of the Asterisk run directory (default: "/var/run/asterisk")
 --astlogdir           Location of the Asterisk log files (default: "/var/log/asterisk")
 --ampbin              Location of the FreePBX command line scripts (default: "/var/lib/asterisk/bin")
 --ampsbin             Location of the FreePBX (root) command line scripts (default: "/usr/sbin")
 --ampcgibin           Location of the Apache cgi-bin executables (default: "/var/www/cgi-bin")
 --ampplayback         Directory for FreePBX html5 playback files (default: "/var/lib/asterisk/playback")
 --rootdb (-r)         Database Root Based Install. Will create the database user and password automatically along with the databases
 --force (-f)          Force an install. Rewriting all databases with default information
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

ubuntu16-freepbx13-welcome

Первоначальная настройка FreePBX 13

Advanced Settings

Поддержка русского языка в интерфейсе

Чтобы отображался выбор локализаций FreePBX, включите данную опцию в Settings > Advanced Settings:

Show Language setting - YesNo

Если переключение на русский не работает, выполните следующие действия:

 echo "russian         ru_RU.UTF-8" >>  /etc/locale.alias
 locale-gen ru_RU
 systemctl restart apache2
Country Indications Tone

Выберите тоны КПВ, занято и тд в российском стандарте, если требуется:

Settings > Anvanced Settings - Dialplan and Operational

freepbx13-advanced-settings-country-indication-tones.png Обратите внимание на опцию CW Enabled by Default.
Можно отключить Call Waiting, по умолчанию, для вновь создаваемых екстеншенов.
По умолчанию включено.

Speaking Clock Time Format

Установите 24-х часовой формат времени. freepbx13-advanced-settings-speaking-clock-time-format

Ringtime default

Измените время вызова екстеншена по умолчанию, если требуется: freepbx13-advanced-settings-ringtime-default

SIP channel driverопределяет использование драйверов SIP. По умолчанию и chan_sipи res_pjsipвключены, но можно выбрать какой-то один из них.

Установка Asterisk

Call Центр на Asterisk

$
0
0

Call Центр на Asterisk

Центр обработки входящих вызовов. Русскоязычный Веб-интерфейс. Статистика работы агентов и очередей в режиме реального времени. Недорогой, эффективный, легко настраиваемый call center.

Базовые функции:

  • голосовое меню (IVR);
  • маршрутизация вызовов по времени;
  • очередь центра обработки вызовов
  • группы приема вызовов;
  • переадресации на внутренних или внешних абонентов;
  • голосовые конференции;
  • запись переговоров;
  • статистика звонков (CDR);
  • статистика работы очереди (Queue Stats);

Базовое ПО

  • Asterisk 14
  • FreePBX - Русифицированный, интуитивно понятный веб-интерфейс для настройки Asterisk.
  • Asterisk CDR viewer - Детализированный отчет о звонках, прослушивание записанных разговоров
  • Asterisk Call Center Stats - Статистика очередей колл-центра.

Важнейшая часть современного колл-центра - интерфейс статистики. Мы предлагаем приложение созданное нашими специалистами в результате многолетней работы с колл-центрами. Приложение поставляется с открытым исходным кодом, вы можете вносить любые изменения в код на ваше усмотрение. Приложение может быть установлено в базовом варианте или модифицировано под ваши конкретные требования. Смотрите описание со скриншотами ниже по тексту.

Расширенная настройка

Для Колл Центров с высокой нагрузкой мы предлагаем конфигурацию с использованием архитектуры Realtime. Конфигурация агентов, очередей и маршрутизации производится в базе данных. АТСнапрямую работает с БД, любые изменения применяются, как только данные были добавлены в базу. Дополнительные данные о вызовах и состоянии агентов, очередей и др. объектов, могут передаваться реалтайм хранилищам или сторонним приложениям в режиме реального времени. Дополнительные формы отчетов статистики колл-центра могут быть созданы под ваши нужды.

Работы:

  • Инсталляция и базовые наcтройки безопасности.
  • Настройка по согласованному ТЗ.

Колл Центр или Центр Обработки Вызовов (ЦОВ)

Asterisk прекрасно справляется с организацией как небольших колл центров, так и более мощных систем. Приложение queue обеспечивает постановку абонента в очередь по принципу FIFO (первый вошел, первый вышел). Агенты могут быть статическим (закрепленными за определенными очередями) и динамическими (подключатся к обслуживанию очереди набором сервис кода).

Реализацию функционала колл-центра в Asterisk можно условно разделить на уровень АТС, уровень приложений АТСи уровень приложений 3-й стороны (3rd party) :

Базовые функции маршрутизации и обработки вызовов реализованы непосредственно в Asterisk:

  • Организация очереди (обработка вызовов в порядке поступления).
  • Маршрутизация вызова по номеру абонента.
  • Интерактивные Голосовые Сообщения / IVR.
  • Распределение вызовов среди агентов по занятости или по порядку.

Гибкое распределение вызовов между агентами колл центра в соответствии с заданной политикой.

  • Звонят все агенты
  • Звонят наименее занятые
  • Вызываются по кругу с последнего ответившего.
  • Линейно (в порядке перечисления)
  • Случайным образом

asterisk freepbx queue strategy

Параметры времени и операторов

Так же «очередь» имеет множество опций обработки вызова и работы агентов:

  • Приветствие оператору — проигрывается агенту прежде чем, тот соединиться с позвонившим из очереди

(например: «звонок из очереди «Продажи» - при обработке одним агентом звонков из нескольких очередей).

  • Приветствие позвонившему — проигрывается один раз при попадании в очередь.
  • Музыка на удержании — проигрывается при ожидании в очереди, можно заменить на рекламную информацию.
  • Максимальное время ожидания в очереди или неограниченно.
  • Максимальная длина очереди - максимальное количество позвонивших или неограниченно.
  • Стратегия дозвона (смотри выше: тип выбора свободного агента)
  • Таймаут — время вызова свободного оператора или неограниченно
  • Повтор — время повторения вызова операторов.
  • Передышка — пауза для оператора завершившего разговор вызов.
  • Сообщение о позиции в очереди
  • Сообщение о среднем времени ожидания в очереди.
  • Вставка сообщения авто-секретаря с возможностями прямого набора номера или системы голосовых меню.

asterisk freepbx timers

Рассчитывается среднее время ожидания в очереди и ожидающий абонент информируется о номере в очереди и оставшемся времени ожидания.

Параметры ёмкости очереди

Интерфейс статистики колл центра - Asterisk Call Center Stats

Все разговоры могут быть записаны в формате wavили mp3, с возможностью последующего поиска и скачивания записи в детализированном отчете о звонках (CDR) и в интерфейсе статистики очереди. Детализированный отчет о звонках (CDR) храниться в базе данных MySQL. Доступ к отчетам осуществляется через веб-интерфейс и предоставляет возможности для поиска, сортировки и сравнения вызовов за разные периоды времени.

asterisk-pbx.ru call center stats

В информации о входящем вызове сохраняются

  • Дата и время звонка
  • Продолжительность вызова
  • Номер позвонившего
  • Номер оператора или агента.
  • Номер очереди
  • Ссылка на запись разговора.

asterisk-pbx.ru call center stats answered calls

Функции регистрации вызовов, информации о состоянии вызовов и агентов и запись переговоров, также реализованы средствами АТС, но требуют взаимодействия базами данных для хранения информации и последующего извлечения для создания отчетов:

  • Регистрация всех входящих и исходящих вызовов
  • Запись переговоров
  • Статус оператора (свободен, занят, пауза)
  • Количество принятых вызовов за указанный период времени
  • Количество отвеченных вызовов с детализацией
  • Количество пропущенных вызовов с детализацией
  • Среднее время разговора
  • Среднее время ожидания

Следующие отчеты интегрированы в Asterisk Call Center Stats :

Распределение:

по очередям, по месяцам, по неделям, по дням, по часам.

asterisk-pbx.ru  call center stats distribution

Отвеченные вызовы:

по очередям, по времени ожидания, по агентам, Причина разъединения, продолжительность вызова (в том числе средняя продолжительность по очередям и агентам).

asterisk-pbx.ru call center stats answered


Пропущенные вызовы:

по очередям, по времени ожидания, по агентам, Причина разъединения, продолжительность вызова (в том числе средняя продолжительность по очередям и агентам).

asterisk-pbx.ru call center stats abandon

Текущее состояние агентов (realtime):

продолжительность работы или простоя, состояние текущего вызова, текущее кол-во вызовов в очереди)

Приложения использующие информацию о вызовах сохраненную в БД и логах (CDRстатистика, Статистика очереди ):

  • Приложения для создания отчетов о входящих/исходящих вызовах и поиска записей.
  • Приложения для создания отчетов о качестве работы операторов(качество обслуживания.

Приложения в режиме реального времени получающие информацию о статусе агентов, длине очередей и загруженности каналов.

  • Real Time статус операторов, очередей и каналов.


Приложения контроля интеллектуального набора. Хотя набор номеров и маршрутизацию осуществляет сам Asterisk, для интеллектуального дозвона требуется приложение которое инициировало бы вызовы по заданному списку и управляло алгоритмом набора.

  • Автоматизированный набор номера (predictive dialer)

Приложения визуализации данных о клиенте, только получают данные о номере вызывающего абонента от Asterisk и далее, сверяя поступившую информацию с собственной БД открывают существующую или предлагают агенту создать новую карточку клиента. Таким образом эти приложения являются по сути обособленными системами, использующими Asterisk только для получении информации о номере вызывающего абонента.

  • Визуализация данных о клиенте (карточка клиента) на основании номера абонента (CallerID)
Свяжитесь с нами для получения подробной информации.
Колл Центр

Only edit this fieldset if “Функционал” is set to “Колл Центр”.

D Q V J F
IP АТС

Only edit this fieldset if “Функционал” is set to “IP АТС”.

Кастомные решения

Only edit this fieldset if “Функционал” is set to “Все сложно”.

IP АТС Asterisk и FreeSWITCH

Настроим Asterisk, FreeSWITCH, IP АТС.

Установка Asterisk 13/14 + FreePBX 13 на CentOS 7

$
0
0

Установка Asterisk 13/14 + FreePBX 13 на CentOS 7

CentOS 7 64-bit Asterisk 13, FreePBX 13 , libpri, DAHDI, Mysql (mariadb), apache2, lame, php, httpd.conf, php.ini

Выключение SELinux

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

Зависимости

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y kernel-devel kernel-headers
yum install -y e2fsprogs-devel  keyutils-libs-devel krb5-devel libogg \
libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \
php php-gd php-mysql php-pdo php-mbstring ncurses-devel \
mysql-connector-odbc unixODBC unixODBC-devel \
audiofile-devel libogg-devel openssl-devel zlib-devel  \
perl-DateManip sox git wget net-tools psmisc
yum install -y gcc gcc-c++ make gnutls-devel \
libxml2-devel ncurses-devel subversion doxygen \
texinfo curl-devel net-snmp-devel neon-devel  \
uuid-devel libuuid-devel sqlite-devel sqlite \
speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel \
libsrtp libsrtp-devel xmlstarlet

Сделайте полный апдейт

 yum update -y

Перезагрузите компьютер

 reboot

Установка mysql (mariadb)

1: Установим mariadb (MySQL)

 yum -y install mariadb-server mariadb mariadb-devel

2: Запустим и включим автозагрузку mariadb (MySQL)

 systemctl start mariadb.service
 systemctl enable mariadb.service

3: Запустим интерактивный конфигуратор (будет предложено задать пароль пользователя root для mysql и др.)

 mysql_secure_installation

показать

показать

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Установите PearDB

 pear uninstall db
 pear install db-1.7.14

SRTP

  cd /usr/src && wget http://sourceforge.net/projects/srtp/files/srtp/1.4.4/srtp-1.4.4.tgz
tar zxvf srtp-1.4.2.tgz && 
cd srtp && autoconf && 
./configure CFLAGS=-fPIC --prefix=/usr && 
make && 
make runtest && 
make install

Pjproject

Для установки Pjproject и Asterisk 14, рекомендуется использовать Pjproject Bundled Version.
В этом случаекомпиляцию Pjproject из исходниковможно пропустить.
Описание установки pjproject при компиляции Asterisk 14.

Компиляция Pjproject из исходников

 cd /usr/src && git clone https://github.com/asterisk/pjproject pjproject 
cd pjproject/ && 
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video &&
make dep &&
make &&
make install &&
ldconfig &&
ldconfig -p | grep pj

Вывод ldconfig -p | grep pj

Вывод ldconfig -p | grep pj

        libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
        libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
        libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
        libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
        libpjnath.so (libc6,x86-64) => /usr/lib/libpjnath.so
        libpjmedia.so (libc6,x86-64) => /usr/lib/libpjmedia.so
        libpjmedia-videodev.so (libc6,x86-64) => /usr/lib/libpjmedia-videodev.so
        libpjmedia-codec.so (libc6,x86-64) => /usr/lib/libpjmedia-codec.so
        libpjmedia-audiodev.so (libc6,x86-64) => /usr/lib/libpjmedia-audiodev.so
        libpjlib-util.so (libc6,x86-64) => /usr/lib/libpjlib-util.so
        libpj.so (libc6,x86-64) => /usr/lib/libpj.so

libjansson

 cd /usr/src && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar zvxf jansson-2.5.tar.gz && 
cd jansson-2.5 && 
./configure --prefix=/usr/ && 
make clean && 
make && 
make install && 
ldconfig

Исходники

cd /usr/src &&  
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-1.5.0.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz

Lame

cd /usr/src && 
tar zxvf lame-3.98.4.tar.gz && 
cd lame-3.98.4 && 
./configure && 
make && 
make install 

DAHDI & LibPRI

 yum install "kernel-devel-uname-r == $(uname -r)"
cd /usr/src && 
tar xvfz dahdi-linux-complete-current.tar.gz && 
cd dahdi-linux-complete-* && 
make all && 
make install && 
make config
cd /usr/src && 
tar xvfz libpri-1.5.*.tar.gz && 
cd /usr/src/libpri-1.5.* && 
make && 
make install

SpanDSP

cd /usr/src && wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar zxvf spandsp-0.0.6.tar.gz && 
cd spandsp-0.0.6 && 
./configure && 
make && 
make install &&
ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2

Asterisk 12/13/14

cd /usr/src && 
tar xvfz asterisk-14*.tar.gz &&
cd asterisk-14.*
./contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

Asterisk 13

Asterisk 13

cd /usr/src && 
tar xvfz asterisk-13*.tar.gz &&
cd asterisk-13.* &&
./configure --libdir=/usr/lib64 --with-crypto --with-ssl=ssl --with-srtp &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

Asterisk 12

Asterisk 12

cd /usr/src && 
tar xvfz asterisk-12-current.tar.gz &&
cd asterisk-12.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'

 --->  Add-ons (See README-addons.txt)  
             --- extended ---
             XXX chan_mobile
             [*] chan_ooh323
             [*] format_mp3
             [*] res_config_mysql
             --- deprecated ---
             [*] app_mysql
             [*] app_saycountpl
             [*] cdr_mysql

  ---> Core Sound Packages
            [*] CORE-SOUNDS-RU-GSM
  --->  Extras Sound Packages
            [*] EXTRA-SOUNDS-EN-GSM  
make && make install && make config && ldconfig
 sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g'  /usr/sbin/safe_asterisk

Создайте пользователя Asterisk и задайте права пользователя.

useradd -m asterisk &&
chown asterisk.asterisk /var/run/asterisk &&
chown -R asterisk.asterisk /etc/asterisk &&
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk &&
chown -R asterisk.asterisk /usr/lib64/asterisk 

Настроим httpd (Apache)

cp /etc/php.ini /etc/php.ini_orig &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /etc/php.ini &&
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini &&
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf &&
sed -i 's/AllowOverride None/AllowOverride All/'  /etc/httpd/conf/httpd.conf &&
systemctl restart httpd &&
systemctl enable httpd

FreePBX

freepbx13

pear install Console_Getopt
cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar zxvf freepbx-13.0-latest.tgz &&
cd freepbx &&
./start_asterisk start
 ./install -n

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

freepbx start set user login

Can Not Connected To Asterisk

Если появится предупреждение Can Not Connected To Asterisk, а Asterisk точно запущен, закомментируйте инклюды в файле /etc/asterisk/manager.conf

;#include manager_additional.conf
;#include manager_custom.conf

Установка Asterisk

Таблица реалтайм очереди Asterisk

$
0
0
Таблица реалтайм очереди Asterisk

queues;

Field Type Null Key Default Extra
name varchar(128) NO PRI NULL
musiconhold varchar(128) YES NULL
announce varchar(128) YES NULL
context varchar(128) YES NULL
timeout int(11) YES NULL
ringinuse enum('yes','no') YES NULL
setinterfacevar enum('yes','no') YES NULL
setqueuevar enum('yes','no') YES NULL
setqueueentryvar enum('yes','no') YES NULL
monitor_format varchar(8) YES NULL
membermacro varchar(512) YES NULL
membergosub varchar(512) YES NULL
queue_youarenext varchar(128) YES NULL
queue_thereare varchar(128) YES NULL
queue_callswaiting varchar(128) YES NULL
queue_quantity1 varchar(128) YES NULL
queue_quantity2 varchar(128) YES NULL
queue_holdtime varchar(128) YES NULL
queue_minutes varchar(128) YES NULL
queue_minute varchar(128) YES NULL
queue_seconds varchar(128) YES NULL
queue_thankyou varchar(128) YES NULL
queue_callerannounce varchar(128) YES NULL
queue_reporthold varchar(128) YES NULL
announce_frequency int(11) YES NULL
announce_to_first_user enum('yes','no') YES NULL
min_announce_frequency int(11) YES NULL
announce_round_seconds int(11) YES NULL
announce_holdtime varchar(128) YES NULL
announce_position varchar(128) YES NULL
announce_position_limit int(11) YES NULL
periodic_announce varchar(50) YES NULL
periodic_announce_frequency int(11) YES NULL
relative_periodic_announce enum('yes','no') YES NULL
random_periodic_announce enum('yes','no') YES NULL
retry int(11) YES NULL
wrapuptime int(11) YES NULL
penaltymemberslimit int(11) YES NULL
autofill enum('yes','no') YES NULL
monitor_type varchar(128) YES NULL
autopause enum('yes','no','all') YES NULL
autopausedelay int(11) YES NULL
autopausebusy enum('yes','no') YES NULL
autopauseunavail enum('yes','no') YES NULL
maxlen int(11) YES NULL
servicelevel int(11) YES NULL
strategy enum('ringall','leastrecent','fewestcalls','random','rrmemory','linear','wrandom','rrordered') YES NULL
joinempty varchar(128) YES NULL
leavewhenempty varchar(128) YES NULL
reportholdtime enum('yes','no') YES NULL
memberdelay int(11) YES NULL
weight int(11) YES NULL
timeoutrestart enum('yes','no') YES NULL
defaultrule varchar(128) YES NULL
timeoutpriority varchar(128) YES NULL
Таблица операторов очереди Asterisk

queue_members;

Field Type Null Key Default Extra
queue_name varchar(80) NO PRI NULL
interface varchar(80) NO PRI NULL
membername varchar(80) YES NULL
state_interface varchar(80) YES NULL
penalty int(11) YES NULL
paused int(11) YES NULL
uniqueid int(11) NO UNI NULL auto_increment

Asterisk Realtime: extconfig.conf

$
0
0

Asterisk Realtime: extconfig.conf

Реалтайм Архитектура Asterisk - набор драйверов и функций для конфигурации в режиме реального времени. Существует два типаконфигурации - статический и динамический:

  1. Статический хранит конфигурации в БД, как конфигурационные файлы и также обновляет данные при перезагрузке модулей.
  2. Динамический используется для создания и обновления объектов в режиме реального времени, при совершении вызовов.

Оба режима могут использоваться одновременно.

Реалтайм архитектура поддерживает разные типы хранилищ. В данный момент, большинство драйверов основаны на SQL, но есть и поддержка других методов, например LDAPи CURL.

В данный момент поддерживаются следующие бэкенды:

  • ODBC: интегрированная в Asterisk UnixODBC подсистема поддерживает множество разных БД.
  • MySQL: нативная поддержка MySQL, интегрирована в Asterisk
  • PostgreSQL: нативная поддержка PostgreSQL, интегрирована в Asterisk
  • SQLite и SQLite3: для небольших БД можно использовать SQLite3.
  • LDAP: получайте учетные данные из LDAPдиректорий.
  • cURL: Получайте и отправляйте данные веб приложениям и связанным с ними БД.

Статическая конфигурация

Использует базы данных, как хранилище статических конфигураций. Конфигурации обновляются при загрузке модулей, как и в случае с конфигурационными файлами.

Все настройки записываются под одной категорией - [settings]

Конфиг ⇒ Драйвер БД, имя категории из конфига драйвера res_<driver>, таблица базы данных. Если таблица не указана, будет использовано имя конф. файла.

file.conf => driver,category DB res_....conf[,table[,priority]]

Пример записи для загрузки 'queues.conf' через ODBCи 'extensions.conf' из SQlite:

 queues.conf => odbc,asterisk,ast_config
 extensions.conf => sqlite,asterisk,ast_config

Следующие конфиги НЕ МОГУТбыть использованы в реалтайм хранилище:

  • asterisk.conf
  • extconfig.conf (данный файл)
  • logger.conf

Также, некоторые конфиги не загрузятся из Realtime хранилища, если драйвер БД (хранилища) не был, ранее, загружен оператором 'preload' в конфиге 'modules.conf':

  • manager.conf
  • cdr.conf
  • rtp.conf
  • features.conf
  • cel.conf
  • indications.conf

Списки контроля доступа (ACL) также не смогут быть использованы в manager.conf без предварительной загрузки драйвера хранилища. /etc/asterisk/modules.conf

[modules]
preload => res_odbc.so
preload => res_config_odbc.so

Структура таблицы статической базы данных

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

static ast_config.sql

create table ast_config (
 id int(11) NOT NULL auto_increment,
 cat_metric int(11) NOT NULL default '0',
 var_metric int(11) NOT NULL default '0',
 commented int(11) NOT NULL default '0',
 filename varchar(128) NOT NULL default '',
 category varchar(128) NOT NULL default '',
 var_name varchar(128) NOT NULL default '',
 var_val varchar(128) NOT NULL default '',
 PRIMARY KEY (id),
 KEY `filename_comment` (`filename`,`commented`)
)ENGINE = InnoDB;
  • 'cat_metric' и 'var_metric' определяют порядок (очередность). 'cat_metric' во всей конфигурации, а 'var_metric', внутри категории. Метрика с меньшим значением представляется раньше, метрика с большим позднее. На примере порядка выбора кодеков в sip.conf, это будет работать так: 'disallow=all' - метрика 0 представляется 1-й, затем 'allow=alaw' - метрика 1 и далее 'allow=g729'
  • Если поле 'commented' не равно '0', строка считается закомметированной и игнорируется.
  • `filename` - Конфиг которому предназначены данные (например extensions.conf).
  • 'category' - контекст диалплана или категория конфига.
  • `var_name` - опция (параметр) конфига, напрмер extenв диалплане.
  • `var_val` - собственно данные, после знака '⇒' в конфиге.

Пример статической конфигурации extensions.conf

extconfig.conf

 extensions.conf => odbc,asterisk,ast_config

Опции и диалплан в extensions.conf:

[general]
static=yes

[globals]
RECDIR=/mnt/record	; Директория записи

[from-internal]
exten => _9X.,1,Dial(PJSIP/${EXTEN:1}@trunk,60,trU(sub-monitor,s,1)
exten => _9X.,n,Hangup
[sub-monitor]
exten => s,1,Noop(**rec to mount**)
exten => s,n,MixMonitor(${RECDIR}/${UNIQUEID}.wav)
exten => s,n,Return

В таблице ast_config будут представлены так:

MariaDB [asterisk]> select * from ast_config;
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
| id | cat_metric | var_metric | commented | filename        | category      | var_name | var_val                                                            |
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
|  1 |          0 |          0 |         0 | extensions.conf | general       | static   | yes                                                                |
|  2 |          1 |          0 |         0 | extensions.conf | globals       | RECDIR   | /mnt/record                                                        |
|  3 |          2 |          0 |         0 | extensions.conf | from-internal | exten    | _9X.,1,Dial(PJSIP/${EXTEN:1}@siptrunk,60,trU(sub-monitor,s,1) |
|  4 |          2 |          1 |         0 | extensions.conf | from-internal | exten    | _9X.,n,Hangup                                                 |
|  5 |          3 |          0 |         0 | extensions.conf | sub-monitor   | exten    | s,1,Noop(**rec to mount**)                                         |
|  6 |          3 |          1 |         0 | extensions.conf | sub-monitor   | exten    | s,n,MixMonitor(${RECDIR}/${UNIQUEID}.wav)                          |
|  7 |          3 |          2 |         0 | extensions.conf | sub-monitor   | exten    | s,n,Return                                                         |
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
7 rows in set (0.00 sec)

Реалтайм конфигурация

Работа в режиме реального времени. Любые изменения в реалтайм хранилище, используются системой при новых вызовах, без перезагрузки модулей и применения настроек. Данные реалтайм хранилищ, могут модифицироваться во время выполнения диалплана, при помощи встроенных функций.

Конфигурация вызывает заданное семейство реалтайм в формате: драйвер базы данных, имя категории из конфига драйвера res_<driver>, таблица БД, приоритет (если таблица не задана, будет использовано имя семейства (family)): family => Driver DB,category DB res_...conf[,Table][,prioritet]

example => odbc,asterisk,alttable,1
example => mysql,asterisk,alttable,2
example2 => ldap,"dc=oxymium,dc=net",example2

Приоритет - необязательный параметр , применяется в случае ошибки получения данных. Если соединению с приоритетом 1 не удалось получить данные, будет произведена попытка получить данные через соединение с приоритетом 2. Приоритеты должны быть упорядочены: 1,2,3, но не 1,2,4

Доступные бакенды

  • odbc … res_config_odbc
  • sqlite … res_config_sqlite
  • sqlite3 … res_config_sqlite3
  • pgsql … res_config_pgsql
  • curl … res_config_curl
  • ldap … res_config_ldap
  • mysql … res_config_mysql (через add-ons в menuselect)

В конфигах res_pgsqlи res_config_sqliteБД назначаются в категории [general] и всегда используется эта БД. В res_config_mysqlБД тоже назначается в секции [general], но можно указать несколько баз данных (см. конфиг mysql)

Использование и подключение

Созданные семейства реалтайм можно подключать директивой switch ⇒ в диалплане, как в случае с extensions.conf:

 [default]
 switch => Realtime/mycontext@extensions 

или вызывать при помощи специальных функций диалплана (в описании функций, можно найти примеры):

пример extconfig.conf

Файлы конфигурации Asterisk


ARI - Asterisk REST Interface

$
0
0

ARI - Asterisk REST Interface

REST - Representational state transfer
REST - архитектура программного обеспечения для распределенных систем. REST очень простой интерфейс управления информацией без использования каких-то дополнительных уровней. Каждая единица информации однозначно определяется глобальным идентификатором, таким как URL. Каждый URLимеет строго заданный формат.

Краткая история Asterisk API

На момент создания Asterisk, в 1999 году, был локальной Private Branch Exchange (PBX) и настраивался при помощи статических файлов конфигурации.

Этого достаточно для реализации базовых задач, но требовался механизм для управления вызовами Asterisk внешними приложениями. Поэтому были добавлены два API: Asterisk Gateway Interface(AGI)и Asterisk Manager Interface (AMI).

Эти два интерфейса имеют разные задачи:

  • AGIпозволяет вызвать внешнее приложение (скрипт) из диаплана Asterisk и передать ему управление каналом. Интерфейс является синхронным - действия предпринятые через AGI не возвращаются, пока не будут завершены.
  • AMIинтерфейс позволяющий внешнему приложению отправлять Asterisk команды и/или считывать события, через TCP/IP протокол. В отличие от AGI, AMIявляется асинхронным интерфейсом управления событиями. По большей части, AMIиспользуется для получения информации о состоянии каналов и инициирования вызовов.

Используя оба API, вместе, могут быть разработаны сложные приложения, использующие Asterisk.

Тем не менее, в то время как AMIхорошо на контролирует вызовы, а AGI позволяет удаленному процессу выполнять план набора, ни один из этих интерфейсов не позволяет разработчику создавать свои собственные телекоммуникационные приложения. По сути, не было APIобращающегося напрямую к примитивам (channels, bridges) в Asterisk, необходимого для простого создания таких приложений.

Для приложений, полноценно взаимодействующих с Asterisk, был создан интерфейс ARI.

ARI: API для создания телекоммуникационных приложений.

ARIпозволяет разработчикам приложений создавать мощные, телекоммуникационные приложения на любом языке программирования. ARIпредоставляет доступ ресурсам Asterisk, обычно используемым для работы с ключевыми модулями - channels, bridges, endpoints, media и т.д. - через интуитивно понятный интерфейс REST (Representational state transfer).

  • Asterisk
  • Bridges
  • Channels
  • Endpoints
  • Events
  • Recordings
  • Sounds
  • Applications
  • Playbacks
  • Devicestates
  • Mailboxes

Являясь асинхронным интерфейсом, ARI передает состояние объектов и контролируется пользователем с помощью JSON событий через WebSocket.

Через контроль над фундаментальными ресурсами Asterisk, приложение написанное на любом языке, управляет логикой Asterisk.

ARIне замена для AMIили AGI. Скорее, он является дополнительным API:

  • AGIпозволяет контролировать выполнение плана набора канала
  • AMIвысокоуровневое управление вызовами.
  • ARIпозволяет заменить DialPlan Asterisk на диалплан вашего собственного приложения.

ari ami agi

Asterisk REST Interface (ARI)

Приступая к работе с ARI

Asterisk RESTful Interface (ARI) Swagger-UI

crontab freepbx error

$
0
0

crontab freepbx error

Unable to continue. Cron line added didn't remain in crontab on final check in /var/www/html/admin/libraries/BMO/Cron.class.php on line 103

Причина:

Вероятнее всего crontab файл /var/spool/cron/asterisk corrupted

Решение:

 rm -f  var/spool/cron/asterisk
 fwconsole chown
 fwconsole restart

будет создан новый файл /var/spool/cron/asterisk

Asterisk: queue_log в MySQL через unixODBC

$
0
0

Asterisk: queue_log в MySQL через unixODBC

Realtime лог очереди в нативную базу данных Asterisk.

SQL таблица лога очереди

Создадим таблицу в БД asterisk.

CREATE TABLE IF NOT EXISTS `queue_log` (
`time` varchar(32) DEFAULT NULL,
`callid` char(64) DEFAULT NULL,
`queuename` char(64) DEFAULT NULL,
`agent` char(64) DEFAULT NULL,
`event` char(32) DEFAULT NULL,
`data` char(64) DEFAULT NULL,
`data1` char(64) DEFAULT NULL,
`data2` char(64) DEFAULT NULL,
`data3` char(64) DEFAULT NULL,
`data4` char(64) DEFAULT NULL,
`data5` char(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Выключение текстового лога

Если имя таблицы не задано в extconfig.conf - queue_log ⇒ odbc,asterisk
Asterisk сам создаст таблицу с именем - queue_log, по умолчанию
при перезагрузке модуля logger:

*CLI> module reload logger
Module 'logger' reloaded successfully.
 Asterisk Queue Logger restarted

в файле /etc/asterisk/logger.confвыключите лог в файл:

 queue_log_to_file = no

в файле /etc/asterisk/asterisk.conf*

 [options]
 queue_adaptive_realtime = no

Если queue_adaptive_realtime = yes, то данные могутзаписываться в колонку data, с pipe в качестве разделителя, как в примере ниже. Если no, то всегдараспределяться по колонкам data1 - data5.

timecallidqueuenameagenteventdatadata1data2data3data4data5
2017-02-27 11:38:18.212707 1488184697.2048062 2 NONE ENTERQUEUE |9981138|1|

Конфигурация realtime family

в файле /etc/asterisk/extconfig.conf

 queue_log => odbc,asterisk,queue_log

где 'asterisk' ваш db конфиг в /etc/asterisk/res_odbc.conf:

[asterisk]
enabled => yes
dsn => asterisk
username => dbuser
password => dbpass
pre-connect => yes

Расшифровка значений событий очереди - queue_log events

eventdata1data2data3data4data5
ABANDONexitpositionenterpositionwaittime
AGENTDUMP
AGENTLOGINchannel
AGENTCALLBACKLOGINexten@context
AGENTLOGOFFchannellogintime
AGENTCALLBACKLOGOFFexten@contextlogintimereason
COMPLETEAGENTholdtimecalltimeorigposition
COMPLETECALLERholdtimecalltimeorigposition
CONFIGRELOAD
CONNECTholdtimeuniqueid
DIDdid number
ENTERQUEUEurlcalleridenterposition
EXITWITHKEYkeyposition
EXITWITHTIMEOUTexitpositionenterpositiontimeout
QUEUESTART
SYSCOMPAT
ATTENDEDTRANSFERApplicationuuid holdtime calltimeretry?
BLINDTRANSFER number context holdtime calltime retry
PAUSE Reason
UNPAUSE Reason

Пример принятого вызова в таблице MySQL:

timecallidqueuenameagenteventdata1data2data3
2017-02-17 19:58:25.661590 1487339905.409426 991 NONE DID 3216111
2017-02-17 19:58:25.671737 1487339905.409426 991 NONE ENTERQUEUE 9981138 1
2017-02-17 19:58:27.540265 1487339905.409426 991 Tanya CONNECT 2 1487339905.409427 1
2017-02-17 19:59:32.108944 1487339905.409426 991 Tanya COMPLETECALLER 2 65 1

В 19:58:25.66 вызов поступил на номер 3216111 с номера 9981138
В 19:58:25.67 попал в очередь 991 сразу на первую позицию и был отвечен агентом Tanya в 19:58:27.54, когда находился на первой же позиции в очереди. Время ожидания составило 2 секунды, а время разговора 65 секунд.

Пример принятого вызова с последующим сопровождаемым переводом:

timecallidqueuenameagenteventdata1data2data3data4data5
2017-01-07 13:22:08.418825 1483773699.76487 999 NONE DID3216111
2017-01-07 13:22:08.445013 1483773699.76487 999 NONE ENTERQUEUE 4226789 1
2017-01-07 13:22:22.203683 1483773699.76487 999 Christa Paffgen CONNECT NULL 14 1483773740.76488 1
2017-01-07 13:23:35.928089 1483773699.76487 999 Christa Paffgen ATTENDEDTRANSFER BRIDGE 3fd42053-51ec-4b7a-9174-e6d096a827ce 14 73 1

Обратите внимание, что в данном случае используются колонки data4и data5.

Пример пропущенного вызова (ожидающий абонент повесил трубку)

timecallidqueuenameagenteventdatadata1data2data3
2017-01-02 12:27:39.6532421483338440.1685998NONEDIDNULL318
2017-01-02 12:27:39.6837651483338440.1685998NONEENTERQUEUENULL82702131
2017-01-02 12:27:54.7009611483338440.1685998JarboeRINGNOANSWERNULL15000
2017-01-02 12:28:14.7270201483338440.1685998JarboeRINGNOANSWERNULL15000
2017-01-02 12:28:21.7995131483338440.1685998NONEABANDONNULL1142

Пауза агента в обслуживании очереди с указанием причины (lunch break):

time callid queuename agent event data data1 data2 data3 data4 data5
2017-03-23 16:30:34.232289 NONE 77777 77778 PAUSE NULL lunch break
2017-03-23 16:45:36.639872 NONE 77777 77778 UNPAUSE NULL Back from lunch

Добавление и удаление динамического интерфейса в очередь:

time callid queuename agent event data data1 data2 data3 data4 data5
2017-03-23 13:54:32.450580 MANAGER 77777 Local/77779@from-queue/n ADDMEMBER NULL
2017-03-23 17:55:09.392784 MANAGER 77777 Local/77779@from-queue/n REMOVEMEMBER NULL
Другие страницы с тегом 'queue':

asterisk.conf

$
0
0

asterisk.conf

/etc/asterisk/asterisk.conf

В файле конфигурации asterisk.conf Вы определяете следующее:

  • Местоположение, права доступа и владельца сокета, которые используется для подключения удаленной консоли управления сервером.
  • Местоположение различных директорий, используемых сервером Asterisk для определения местоположения файлов конфигурации, библиотек, скриптов и место, где будут создаваться лог фалы.
  • Параметры командной строки запуска сервера, используемые по умолчанию.

Пример конфигурации.

Директории

Директории используемые в Asterisk.

[directories](!)
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /var/lib/asterisk
astdbdir => /var/lib/asterisk
astkeydir => /var/lib/asterisk
astdatadir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk
astsbindir => /usr/sbin

astetcdir => /etc/asterisk

Конфигурационные .confфайлы.

ls -1 /etc/asterisk

ls -1 /etc/asterisk

asterisk.conf
ccss.conf
ccss_general_additional.conf
ccss_general_custom.conf
cdr_adaptive_odbc.conf
cdr.conf
cdr_mysql.conf
cdr_mysql.conf.bak
cel.conf
cel_custom_post.conf
cel_general_additional.conf
cel_general_custom.conf
cel_odbc.conf
cel_odbc_custom.conf
chan_dahdi_additional.conf
chan_dahdi.conf
chan_dahdi.conf.bk
chan_dahdi.conf.template
confbridge_additional.conf
confbridge.conf
confbridge_custom.conf
dahdi-channels.conf
dahdi-channels.conf.bak
enum.conf
extensions_additional.conf
extensions.conf
extensions_custom.conf
extensions_custom.conf.sample
extensions_override_freepbx.conf
features_applicationmap_additional.conf
features_applicationmap_custom.conf
features.conf
features_featuremap_additional.conf
features_featuremap_custom.conf
features_general_additional.conf
features_general_custom.conf
freepbx_featurecodes.conf.template
freepbx_menu.conf.template
freepbx_module_admin.conf
globals_custom.conf
http_additional.conf
http.conf
http_custom.conf
iax_additional.conf
iax.conf
iax_custom.conf
iax_custom_post.conf
iax_general_additional.conf
iax_general_custom.conf
iax_registrations.conf
iax_registrations_custom.conf
indications.conf
localprefixes.conf
logger.conf
logger_general_additional.conf
logger_general_custom.conf
logger_logfiles_additional.conf
logger_logfiles_custom.conf
manager_additional.conf
manager.conf
manager.conf.bak
manager_custom.conf
meetme_additional.conf
meetme.conf
modem.conf
modules.conf
musiconhold_additional.conf
musiconhold.conf
musiconhold_custom.conf
phone.conf
phpagi.conf
privacy.conf
queuerules_additional.conf
queuerules.conf
queuerules_custom.conf
queues_additional.conf
queues.conf
queues_custom.conf
queues_custom_general.conf
queues_general_additional.conf
queues_post_custom.conf
res_digium_phone_additional.conf
res_digium_phone_applications.conf
res_digium_phone.conf
res_digium_phone_devices.conf
res_digium_phone_firmware.conf
res_digium_phone_general.conf
res_fax.conf
res_fax_custom.conf
res_fax_digium.conf
res_fax_digium_custom.conf
res_odbc_additional.conf
res_odbc.conf
res_odbc_custom.conf
rtp_additional.conf
rtp.conf
rtp_custom.conf
sip_additional.conf
sip.conf
sip_custom.conf
sip_custom_post.conf
sip_general_additional.conf
sip_general_custom.conf
sip_nat.conf
sip_notify_additional.conf
sip_notify.conf
sip_notify_custom.conf
sip_registrations.conf
sip_registrations_custom.conf
udptl.conf
udptl_custom.conf
version
vm_email.inc
vm_general.inc
voicemail.conf
voicemail.conf.template
zapata.conf.template

astmoddir => /usr/lib(64)/asterisk/modules

Модули (applications, codec, functions)

modules

modules

app_adsiprog.so
app_alarmreceiver.so
app_amd.so
app_authenticate.so
app_cdr.so
app_celgenuserevent.so
app_chanisavail.so
app_channelredirect.so
app_chanspy.so
app_confbridge.so
app_controlplayback.so
app_dahdibarge.so
app_dahdiras.so
app_db.so
app_dial.so
app_dictate.so
app_directed_pickup.so
app_directory.so
app_disa.so
app_dumpchan.so
app_echo.so
app_exec.so
app_externalivr.so
app_festival.so
app_flash.so
app_followme.so
app_forkcdr.so
app_getcpeid.so
app_ices.so
app_image.so
app_jack.so
app_macro.so
app_meetme.so
app_milliwatt.so
app_minivm.so
app_mixmonitor.so
app_morsecode.so
app_mp3.so
app_mysql.so
app_nbscat.so
app_originate.so
app_page.so
app_parkandannounce.so
app_playback.so
app_playtones.so
app_privacy.so
app_queue.so
app_readexten.so
app_read.so
app_record.so
app_saycountpl.so
app_sayunixtime.so
app_senddtmf.so
app_sendtext.so
app_sms.so
app_softhangup.so
app_speech_utils.so
app_stack.so
app_system.so
app_talkdetect.so
app_test.so
app_transfer.so
app_url.so
app_userevent.so
app_verbose.so
app_voicemail.so
app_waitforring.so
app_waitforsilence.so
app_waituntil.so
app_while.so
app_zapateller.so
bridge_builtin_features.so
bridge_multiplexed.so
bridge_simple.so
bridge_softmix.so
cdr_adaptive_odbc.so
cdr_csv.so
cdr_custom.so
cdr_manager.so
cdr_mysql.so
cdr_odbc.so
cdr_radius.so
cdr_syslog.so
cel_custom.so
cel_manager.so
cel_odbc.so
cel_radius.so
chan_agent.so
chan_bridge.so
chan_console.so
chan_dahdi.so
chan_iax2.so
chan_local.so
chan_mgcp.so
chan_mobile.so
chan_motif.so
chan_multicast_rtp.so
chan_ooh323.so
chan_oss.so
chan_phone.so
chan_sip.so
chan_skinny.so
chan_unistim.so
codec_adpcm.so
codec_alaw.so
codec_a_mu.so
codec_dahdi.so
codec_g722.so
codec_g726.so
codec_gsm.so
codec_ilbc.so
codec_lpc10.so
codec_ulaw.so
format_g719.so
format_g723.so
format_g726.so
format_g729.so
format_gsm.so
format_h263.so
format_h264.so
format_ilbc.so
format_jpeg.so
format_mp3.so
format_pcm.so
format_siren14.so
format_siren7.so
format_sln.so
format_vox.so
format_wav_gsm.so
format_wav.so
func_aes.so
func_audiohookinherit.so
func_base64.so
func_blacklist.so
func_callcompletion.so
func_callerid.so
func_cdr.so
func_channel.so
func_config.so
func_curl.so
func_cut.so
func_db.so
func_devstate.so
func_dialgroup.so
func_dialplan.so
func_enum.so
func_env.so
func_extstate.so
func_frame_trace.so
func_global.so
func_groupcount.so
func_hangupcause.so
func_iconv.so
func_jitterbuffer.so
func_lock.so
func_logic.so
func_math.so
func_md5.so
func_module.so
func_odbc.so
func_pitchshift.so
func_presencestate.so
func_rand.so
func_realtime.so
func_sha1.so
func_shell.so
func_speex.so
func_sprintf.so
func_srv.so
func_strings.so
func_sysinfo.so
func_timeout.so
func_uri.so
func_version.so
func_vmcount.so
func_volume.so
pbx_ael.so
pbx_config.so
pbx_dundi.so
pbx_loopback.so
pbx_lua.so
pbx_realtime.so
pbx_spool.so
res_adsi.so
res_ael_share.so
res_agi.so
res_calendar_caldav.so
res_calendar_ews.so
res_calendar_exchange.so
res_calendar_icalendar.so
res_calendar.so
res_clialiases.so
res_clioriginate.so
res_config_curl.so
res_config_ldap.so
res_config_mysql.so
res_config_odbc.so
res_config_sqlite3.so
res_config_sqlite.so
res_convert.so
res_crypto.so
res_curl.so
res_digium_phone.so
res_fax.so
res_fax_spandsp.so
res_format_attr_celt.so
res_format_attr_h263.so
res_format_attr_h264.so
res_format_attr_silk.so
res_http_websocket.so
res_limit.so
res_monitor.so
res_musiconhold.so
res_mutestream.so
res_mwi_blf.so
res_odbc.so
res_phoneprov.so
res_pktccops.so
res_realtime.so
res_rtp_asterisk.so
res_rtp_multicast.so
res_security_log.so
res_smdi.so
res_speech.so
res_srtp.so
res_stun_monitor.so
res_timing_dahdi.so
res_timing_pthread.so
res_timing_timerfd.so
res_xmpp.so

astvarlibdir => /var/lib/asterisk

Скрипты, документация, звуковые файлы, изображения, лицензии,

ls -1 /var/lib/asterisk/

ls -1 /var/lib/asterisk/

/agi-bin
astdb.sqlite3
/bin
/documentation
/images
/keys
/licenses
/moh
/phoneprov
/sounds
/static-http

ls -1 /var/lib/asterisk/bin

ls -1 /var/lib/asterisk/bin

archive_recordings
audio-email.pl
backup.php
callback
callerid_updater.php
enc
endpoint_firmware.php
fax2mail.php
faxpro_background.php
faxpro_helper.php
freepbx-cron-scheduler.php
freepbx_engine
freepbx_engine_hook_dahdiconfig
freepbx_engine_hook_endpoint
freepbx_engine_hook_pagingpro
freepbx_engine_hook_restapps
freepbx_engine_hook_sysadmin
freepbx_engine_hook_xmpp
freepbx_setting
gen_amp_conf.php
generate_hints.php
generate_queue_hints.php
libfreepbx.confgen.php
module_admin
one_touch_record.php
opencnam-alert.php
pagepro-scheduler.php
pagepro-startup.php
queue_reset_stats.php
restore.php
retrieve_conf
retrieve_parse_amportal_conf.pl

schedtc.php
storage.php

astspooldir => /var/spool/asterisk

Директории для файлов создаваемых Asterisk в процессе работы. Например: Записи разговоров, принятые факсы, голосовая почта, call-файлы итд.

 ls -1  /var/spool/asterisk/
/fax
/meetme
/monitor
/outgoing
/sysadmin
/system
/tmp
/voicemail

astrundir => /var/run/asterisk

Место куда Asterisk записывает UNIX control socket файл (asterisk.ctl) и файл ID процесса (asterisk.pid)

ls -1  /var/run/asterisk/
asterisk.ctl
asterisk.pid

astlogdir => /var/log/asterisk

Файлы логов Asterisk. Настройки вывода логов производятся в файле Asterisk logger.conf

 ls -1  /var/log/asterisk
/cdr-csv ;директории CDR файлов
/cdr-custom

full
queue_log

а также могут быть:

 fail2ban   ; 
 freepbx_debug 
 freepbx.log

astsbindir => /usr/sbin

Исполняемые файлы Asterisk.

 ls /usr/sbin | grep asterisk
 asterisk
 rasterisk
 safe_asterisk

Раздел (секция) [options]

live_dangerously

Включить выполнение «опасных» функций из внешних источников (AMI, AGI и тд)
Некоторые функции и приложения (например, такие как SHELL)
опасны тем, что могут предоставлять дополнительные привилегии. По умолчанию = no.

Параметр Значение по умолчанию / ПримерОписание
verbose 0 Устанавливает уровень детализации (verbose) консоли и лога . Это значние также может быть установлено в консоли коммандой 'core set verbose <0-9> или off.
debug 0 Задает значение уровня отладки (debug). по умолчанию - 0
alwaysfork no всегда в фоновом режиме, даже с опциями -v или -d
nofork no Отключить фоновое выполнение.
quiet no Работать тихо (-q). Уменьшает выхлоп консоли.
timestamp no Временные отметки в выводе консоли(-T) CLI verbose output
execincludes no Разрешить #EXEC записи в файлах конфигурации
console no Всегда запускать в консольном режиме, с приглашением CLI.
highpriority no Запускать Asterisk c наивысшим приоритетом в режиме реального времени.
initcrypto noЗагружать ключи из ../astkeydir при старте.
nocolor no Цветная консоль.
dontwarn no Отключить предупреждения (warning messages).
dumpcore no Делать дамп (содержимое рабочей памяти процесса, ядра)при падении
languageprefix yes Как находится путь к звуковому файлу с языковым префиксом. По умолчанию, 'yes' - перфикс языка в пути к файлу перед подкаталогов, например ../ru/digits/1.gsm. Если 'no' то префикс после имени каталога, например: (digits/ru/1.gsm).
internal_timing yes Включить внутренний источник синхронизации для аудио
systemname not set Уникальное имя Asterisk. Используется как часть UNIQUEID в CDR. По умолчанию не задано
autosystemname no Автоматом задавать 'systemname' на основании имени хоста
maxcalls not set Максимальное кол-во одновременных входящих вызовов. По умолчанию не ограничено
maxload not set/0.9 Максимальная нагрузка на процессор, при которой Asterisk прекратит новые соединения.
minmemfree not set /256
cache_record_files yes / noКэшировать записи
record_cache_dir <dir> директория кэша записей
transmit_silence no Транслировать тишину, если нет другог источника звука
transcode_via_sln yes перекодировать кодеки через SLINEAR
runuser asterisk Владелец Asterisk.
rungroup asterisk Группа Asterisk.
documentation_language en / es / ru Язык документации
hideconnect no Не показывать сообщения о подключении удаленных консолей

asterisk.conf

asterisk.conf

[options]
;verbose = 3
;debug = 3
;alwaysfork = yes               ; Same as -F at startup.
;nofork = yes                   ; Same as -f at startup.
;quiet = yes                    ; Same as -q at startup.
;timestamp = yes                ; Same as -T at startup.
;execincludes = yes             ; Support #exec in config files.
;console = yes                  ; Run as console (same as -c at startup).
;highpriority = yes             ; Run realtime priority (same as -p at
                                ; startup).
;initcrypto = yes               ; Initialize crypto keys (same as -i at
                                ; startup).
;nocolor = yes                  ; Disable console colors.
;dontwarn = yes                 ; Disable some warnings.
;dumpcore = yes                 ; Dump core on crash (same as -g at startup).
;languageprefix = yes           ; Use the new sound prefix path syntax.
;internal_timing = yes
;systemname = my_system_name    ; Prefix uniqueid with a system name for
                                ; Global uniqueness issues.
;autosystemname = yes           ; Automatically set systemname to hostname,
                                ; uses 'localhost' on failure, or systemname if
                                ; set.
;mindtmfduration = 80           ; Set minimum DTMF duration in ms (default 80 ms)
                                ; If we get shorter DTMF messages, these will be
                                ; changed to the minimum duration
;maxcalls = 10                  ; Maximum amount of calls allowed.
;maxload = 0.9                  ; Asterisk stops accepting new calls if the
                                ; load average exceed this limit.
;maxfiles = 1000                ; Maximum amount of openfiles.
;minmemfree = 1                 ; In MBs, Asterisk stops accepting new calls if
                                ; the amount of free memory falls below this
                                ; watermark.
;cache_record_files = yes       ; Cache recorded sound files to another
                                ; directory during recording.
;record_cache_dir = /tmp        ; Specify cache directory (used in conjunction
                                ; with cache_record_files).
;transmit_silence = yes         ; Transmit silence while a channel is in a
                                ; waiting state, a recording only state, or
                                ; when DTMF is being generated.  Note that the
                                ; silence internally is generated in raw signed
                                ; linear format. This means that it must be
                                ; transcoded into the native format of the
                                ; channel before it can be sent to the device.
                                ; It is for this reason that this is optional,
                                ; as it may result in requiring a temporary
                                ; codec translation path for a channel that may
                                ; not otherwise require one.
;transcode_via_sln = yes        ; Build transcode paths via SLINEAR, instead of
                                ; directly.
;runuser = asterisk             ; The user to run as.
;rungroup = asterisk            ; The group to run as.
;lightbackground = yes          ; If your terminal is set for a light-colored
                                ; background.
;forceblackbackground = yes     ; Force the background of the terminal to be
                                ; black, in order for terminal colors to show
                                ; up properly.
;defaultlanguage = en           ; Default language
documentation_language = en_US  ; Set the language you want documentation
                                ; displayed in. Value is in the same format as
                                ; locale names.
;hideconnect = yes              ; Hide messages displayed when a remote console
                                ; connects and disconnects.
;lockconfdir = no               ; Protect the directory containing the
                                ; configuration files (/etc/asterisk) with a
                                ; lock.
;stdexten = gosub               ; How to invoke the extensions.conf stdexten.
                                ; macro - Invoke the stdexten using a macro as
                                ;         done by legacy Asterisk versions.
                                ; gosub - Invoke the stdexten using a gosub as
                                ;         documented in extensions.conf.sample.
                                ; Default gosub.
;live_dangerously = no          ; Enable the execution of 'dangerous' dialplan
                                ; functions from external sources (AMI,
                                ; etc.) These functions (such as SHELL) are
                                ; considered dangerous because they can allow
                                ; privilege escalation.
                                ; Default yes, for backward compatability.

; Changing the following lines may compromise your security.
;[files]
;astctlpermissions = 0660
;astctlowner = root
;astctlgroup = apache
;astctl = asterisk.ctl

[compat]
pbx_realtime=1.6
res_agi=1.6
app_set=1.6

Установка Asterisk 14 + Freepbx 13 Ubuntu 16.04

$
0
0

Установка Asterisk 14 + Freepbx 13 Ubuntu 16.04

Установка Asterisk 14 и FreePBX 13. Первоначальная настройка FreePBX с нуля. Кодек Opus. php5.6. Odbc. Тотальное руководство.

Данное руководство можно использовать, как для установки чистого Asterisk, так и в связке с Freepbx.

При установке системы, на стадии software selectionвыберите, как минимум openssh.ubuntu-16-software-selection Если выбран LAMP сервер, или позднее, при установке mysql-serverиз репозитория, вам будет предложено задать пароль root пользователя MySQL. Если оставить поле пустым, задать пароль можно будет после установки FreePBX 13 командой mysql:

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Password');

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

 mysql_secure_installation

Задайте пароль root пользователя системы

$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password update successfully

Получите права супер пользователя

 $ sudo -i

Сделайте апдейт системы

 # apt update && sudo apt upgrade -y

Установите требуемые зависимости

apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\
 mysql-client bison flex sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev\
 libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev\
 uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev\
 libsrtp0-dev libspandsp-dev libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet

Установка php5.6 вместо php7.0

Ubuntu 16 по умолчанию ставит из репозитория php7.0, а FreePBX с ним не дружит. Если вы планируете использовать не чистый Asterisk, надо установить php5.6.

 apt install -y software-properties-common python-software-properties
 add-apt-repository ppa:ondrej/php
 apt  update -y
 apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6
 apt install -y php-pear
 a2dismod php7.0
 a2enmod php5.6
 systemctl restart apache2

Перезагрузите сервер, чтобы загрузить свежую версию ядра после апдейта. Если вы уверены, что загружена последняя версия, можно не перезагружать.

 reboot

Убедитесь, что mod_rewrite включен, чтобы избежать возможных атак.

  a2enmod rewrite
  service apache2 restart

Поддержка Console_Getopt

 pear install Console_Getopt

Asterisk 14 установка

Как использовать данное руководство.

Блоки команд с ключом '&&' могут быть скопированы вместе и будут выполняться последовательно. '&&' выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово контролировать процесс установки, выполните каждую команду отдельно, без ввода '&&'.

Скачайте исходные файлы

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-14-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите Lame (mp3)

 cd /usr/src &&
 tar zxvf lame-3.98.4.tar.gz &&
 cd lame-3.98.4 &&
 ./configure &&
 make &&
 make install  &&
 echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите DAHDI и LibPRI

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите pjproject

(Требуется для поддержки драйвера SIPканала PjSIP)

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
  --disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите jansson

cd /usr/src/jansson &&
autoreconf -i &&
./configure &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите Asterisk

cd /usr/src && 
tar xvfz asterisk-14-current.tar.gz &&
rm -f asterisk-14-current.tar.gz &&
cd asterisk-* &&
./configure &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'. 'res_config_mysql' вынесено в addons по условиям лицензирования.

В разделе Core Sound Packagesвыберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packagesвыберите дополнительные звуковые файлы.

Asterisk 14 + OPUS

Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translatorsубедитесь, что модуль кодека доступен для компиляции и отметьте для установки.

opus install

opus install

Installing modules from codecs...
codec_opus: Remote package version 14.0_1.0.1 (262145)
codec_opus: Downloading http://downloads.digium.com/pub/telephony/codec_opus/asterisk-14.0/x86-64/codec_opus-14.0_1.0.1-x86_64.tar.gz
codec_opus: Installing.
codec_opus: Installed.

после установки asterisk:

 asterisk -rx 'core show translation recalc' | grep opus
           ulaw  alaw   gsm  g726 g726aal2 adpcm  slin  slin  slin  slin  slin  slin  slin  slin  slin lpc10  ilbc  g722 testlaw  opus  opus
     opus 23500 23500 23500 23500    23500 23500 17500 17500 17500 17500 17500 17500  9000 17000 17000 23500 23500 23500   23500     - 23500
     opus 15000 15000 15000 15000    15000 15000  9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250   15000 23000     -

Для сохранения нажмите Save & Exitи продолжите установку.

make &&
make install &&
make config &&
ldconfig

Если вы не планируете использовать FreePBX, команда make basic-pbxустановит минимальный начальный набор конфигов Asterisk.

Запуск от имени пользователя 'Asterisk'

Расcкомментируйте в /etc/default/asterisk

 AST_USER="asterisk"
 AST_GROUP="asterisk"
Создайте пользователя Asterisk и задайте права пользователя.
useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk

Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли

 asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 14.2.0 currently running on ubuntu (pid = 1269)
ubuntu*CLI>
Убедитесь, что Asterisk запущен под своим пользователем:
  ps aux | grep asterisk
 asterisk  1269  4.7 11.4 1446068 57504 ?       Ssl  07:57   0:07 /usr/sbin/asterisk -U asterisk -G asterisk

FreePBX 13: установка и настройка с нуля

Настроим Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/5.6/apache2/php.ini &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /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 &&
systemctl restart apache2

настроим ODBC

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
EOF

Скачайте FreePBX

cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
Распакуйте и установите
tar vxfz freepbx-13.0-latest.tgz &&
cd /usr/src/freepbx &&
./install -n

Если при установке Ubuntu вы задали rootпароль MySQL
запустите скрипт установки без ключа -n.
Установка пройдет в интерактивном режиме,
во время которого вам будет предложено ввести пароль:

./install
Database engine [mysql]:
Database name [asterisk]:
CDR Database name [asteriskcdrdb]:
Database username [root]:
Database password:

install -h

install -h

/usr/src/freepbx# ./install -h
PHP Warning:  Declaration of FreePBX\Install\FreePBXHelpCommand::setCommand(FreePBX\Install\FreePBXInstallCommand $command) should be compatible with Symfony\Component\Console\Command\HelpCommand::setCommand(Symfony\Component\Console\Command\Command $command) in /usr/src/freepbx/installlib/installhelpcommand.class.php on line 15
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
Usage:
 install [--dbengine="..."] [--dbname="..."] [--cdrdbname="..."] [--dbuser="..."] 
[--dbpass="..."] [--user="..."] [--group="..."] [--dev-links] [--webroot="..."] 
[--astetcdir="..."] [--astmoddir="..."] [--astvarlibdir="..."] [--astagidir="..."] 
[--astspooldir="..."] [--astrundir="..."] [--astlogdir="..."] [--ampbin="..."] [--ampsbin="..."] 
[--ampcgibin="..."] [--ampplayback="..."] [-r|--rootdb] [-f|--force]

Options:
 --dbengine            Database engine (default: "mysql")
 --dbname              Database name (default: "asterisk")
 --cdrdbname           CDR Database name (default: "asteriskcdrdb")
 --dbuser              Database username (default: "root")
 --dbpass              Database password (default: "")
 --user                File owner user (default: "asterisk")
 --group               File owner group (default: "asterisk")
 --dev-links           Make links to files in the source directory instead of copying (developer option)
 --webroot             Filesystem location from which FreePBX files will be served (default: "/var/www/html")
 --astetcdir           Filesystem location from which Asterisk configuration files will be served (default: "/etc/asterisk")
 --astmoddir           Filesystem location for Asterisk modules (default: "/usr/lib/asterisk/modules")
 --astvarlibdir        Filesystem location for Asterisk lib files (default: "/var/lib/asterisk")
 --astagidir           Filesystem location for Asterisk agi files (default: "/var/lib/asterisk/agi-bin")
 --astspooldir         Location of the Asterisk spool directory (default: "/var/spool/asterisk")
 --astrundir           Location of the Asterisk run directory (default: "/var/run/asterisk")
 --astlogdir           Location of the Asterisk log files (default: "/var/log/asterisk")
 --ampbin              Location of the FreePBX command line scripts (default: "/var/lib/asterisk/bin")
 --ampsbin             Location of the FreePBX (root) command line scripts (default: "/usr/sbin")
 --ampcgibin           Location of the Apache cgi-bin executables (default: "/var/www/cgi-bin")
 --ampplayback         Directory for FreePBX html5 playback files (default: "/var/lib/asterisk/playback")
 --rootdb (-r)         Database Root Based Install. Will create the database user and password automatically along with the databases
 --force (-f)          Force an install. Rewriting all databases with default information
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

ubuntu16-freepbx13-welcome

Первоначальная настройка FreePBX 13

Advanced Settings

Поддержка русского языка в интерфейсе

Чтобы отображался выбор локализаций FreePBX, включите данную опцию в Settings > Advanced Settings:

Show Language setting - YesNo

Если переключение на русский не работает, выполните следующие действия:

 echo "russian         ru_RU.UTF-8" >>  /etc/locale.alias
 locale-gen ru_RU
 systemctl restart apache2
Country Indications Tone

Выберите тоны КПВ, занято и тд в российском стандарте, если требуется:

Settings > Anvanced Settings - Dialplan and Operational

freepbx13-advanced-settings-country-indication-tones.png Обратите внимание на опцию CW Enabled by Default.
Можно отключить Call Waiting, по умолчанию, для вновь создаваемых екстеншенов.
По умолчанию включено.

Speaking Clock Time Format

Установите 24-х часовой формат времени. freepbx13-advanced-settings-speaking-clock-time-format

Ringtime default

Измените время вызова екстеншена по умолчанию, если требуется: freepbx13-advanced-settings-ringtime-default

SIP channel driverопределяет использование драйверов SIP. По умолчанию и chan_sipи res_pjsipвключены, но можно выбрать какой-то один из них.

Установка Asterisk

function 'PJSIP_HEADER'

$
0
0
function 'PJSIP_HEADER' Gets, adds, updates or removes the specified SIP header from a PJSIP session. [Description] Examples: ; ; Set 'somevar' to the value of the 'From' header. exten => 1,1,Set(somevar=${PJSIP_HEADER(read,From)}) ; ; Set 'via2' to the value of the 2nd 'Via' header. exten => 1,1,Set(via2=${PJSIP_HEADER(read,Via,2)}) ; ; Add an 'X-Myheader' header with the value of 'myvalue'. exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue) ; ; Add an 'X-Myheader' header with an empty …

Команда Asterisk Dial

$
0
0
[asterisk приложение dial] Команда Asterisk Dial Важнейшее приложение плана набора Asterisk - Dial. Полное описание. Примеры использования опций. Команда диалплана Asterisk "Dial"

Уведомления в Telegram из FreeSWITCH и Asterisk

$
0
0
Уведомления в Telegram из FreeSWITCH и Asterisk Уведомления о пропущенных вызовах в Telegram для FreeSWITCH и Asterisk. Передача данных из FreeSwitch или Asterisk в Telegram при помощи Telegram Bot Api.

Настройка Asterisk

$
0
0
Настройка Asterisk Подробные руководства и справочные материалы по настройке Asterisk. Документация постоянно обновляется и дополняется. Установка

Скачать Asternic Call Center Stats Lite - [Скачать Asternic Call Center Stats Lite]

$
0
0
Скачать Asternic Call Center Stats Lite * asternic-stats-1.5 * asterisk stats mod Asternic CDR Stats freePBX Module * Asternic CDR 1.5.1

Call Центр на Asterisk - [Текущее состояние агентов (realtime):]

$
0
0
Call Центр на Asterisk Центр обработки входящих вызовов. Русскоязычный Веб-интерфейс. Статистика работы агентов и очередей в режиме реального времени. Недорогой, эффективный, легко настраиваемый

Установка Asterisk 13 + FreePBX 12 Ubuntu 14

$
0
0
Установка Asterisk 13 + FreePBX 12 Ubuntu 14 Первоначальная настройка Ubuntu При установке Ubuntu выберите обязательно OpenSSH server и LAMP сервер. Установите дополнительные пакеты на ваше усмотрение.
Viewing all 1041 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>