Инструменты пользователя

Инструменты сайта


how-to:freepbx

FreePBX

Установка FreePBX 12 на Ubuntu 14.04

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

Устанавливаем iksemel, dahdi, libpri, pjproject, jansson и asterisk:

sudo apt-get install -y libiksemel-utils dahdi libpri1.4 libpj2 libjansson4 asterisk asterisk-mp3 asterisk-mysql
sudo cp -R /etc/asterisk /etc/asterisk.org

Дополнительные звуковые файлы:

sudo apt-get install -y asterisk-core-sounds-ru
wget -q http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz -O- | sudo tar xzv -C /usr/share/asterisk/sounds/en/
wget -q --no-check-certificate https://github.com/pbxware/asterisk-sounds-additional/tarball/master -O- | sudo tar xzv --strip-components 1 -C /usr/share/asterisk/sounds/ru/

исправляем ссылку к звукам custom:

sudo rm /usr/share/asterisk/sounds/custom
sudo ln -s /var/lib/asterisk/sounds/custom /usr/share/asterisk/sounds/

Устанавливаем базу данных, php-cli, php-db, php5-mysql:

sudo apt-get install -y mariadb-server php5-cli php-db php5-mysql curl sox php5-curl

Генерируем пароль и создаем базы:

export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`
mysql -u root -e "CREATE DATABASE asterisk;\
CREATE DATABASE asteriskcdrdb;" -p

Устанавливаем разрешения на созданные базы:

mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';\
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';\
FLUSH PRIVILEGES;" -p

Сам freepbx с помощью git:

export VER_FREEPBX=12.0
cd /usr/src
sudo apt-get install -y git
sudo git clone http://git.freepbx.org/scm/freepbx/framework.git freepbx
cd freepbx
sudo git checkout release/${VER_FREEPBX}

или скачиваем архив:

wget -P /tmp http://mirror.freepbx.org/freepbx-12.0.1beta5.tgz
tar -xzf /tmp/freepbx-12.0.1beta5.tgz -C /tmp
cd /tmp/freepbx

Презапускаем asterisk и устанавливаем freepbx:

sudo sed -i 's/latin1/utf8/' SQL/newinstall.sql
sudo service asterisk stop
sudo ./start_asterisk start
sudo ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}

…проверяем чтоб не было ошибок…

sudo amportal a ma installall
sudo amportal a reload
sudo amportal chown



http://wiki.freepbx.org/display/HTGS/Installing+FreePBX+12+on+Ubuntu+Server+14.04+LTS

http://it-pages.ru/russkaya-ozvuchka-dlya-asterisk-freepbxelastixasterisknow.html

Установка FreePBX 13 на Ubuntu 16.04

Устанавливаем iksemel, dahdi, libpri, pjproject, jansson и asterisk:

sudo apt-get install -y libiksemel-utils libpj2 libjansson4 asterisk asterisk-mp3 asterisk-mysql
sudo cp -R /etc/asterisk /etc/asterisk.org

Если будет использоваться аналоговая телефония, то доустанавливаем:

sudo apt-get install -y asterisk-dahdi

Настраиваем systemd без автозагрузки.

Дополнительные звуковые файлы:

sudo apt-get install -y asterisk-core-sounds-ru
wget -q http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz -O- | sudo tar xzv -C /usr/share/asterisk/sounds/en/
wget -q --no-check-certificate https://github.com/pbxware/asterisk-sounds-additional/tarball/master -O- | sudo tar xzv --strip-components 1 -C /usr/share/asterisk/sounds/ru/

исправляем ссылку к звукам custom:

sudo rm /usr/share/asterisk/sounds/custom
sudo ln -s /var/lib/asterisk/sounds/custom /usr/share/asterisk/sounds

Предыдущая версия исправления

Предыдущая версия исправления

#sudo mkdir /var/lib/asterisk/sounds/custom
sudo rm /usr/share/asterisk/sounds/custom
sudo mkdir /usr/share/asterisk/sounds/custom
sudo ln -s /usr/share/asterisk/sounds/custom /var/lib/asterisk/sounds/en
sudo ln -s /usr/share/asterisk/sounds/custom /var/lib/asterisk/sounds/ru


FreePBX 13 и ниже не работает на PHP7

Добавляем репозиторий с PHP5.6:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

базу данных и php-cli, php-db, php-mysql:

sudo apt-get install -y mariadb-server curl sox php5.6-curl php5.6-cli php-db php5.6-mysql php5.6-curl php5.6-common php5.6-xml php5.6-mbstring

Настраиваем mariadb, генерируем пароль и создаем базы:

export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`
mysql -u root -e "CREATE DATABASE asterisk CHARACTER SET utf8 COLLATE utf8_general_ci;\
CREATE DATABASE asteriskcdrdb CHARACTER SET utf8 COLLATE utf8_general_ci;" -p

Устанавливаем разрешения на созданные базы:

mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';\
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';\
FLUSH PRIVILEGES;" -p

Устанавливаем и настраиваем ODBC, после отключаем pooling:

sudo sh -c "echo Pooling = No >> /etc/odbcinst.ini"

затем добавляем подключение:

sudo sh -c "echo [MySQL-asteriskcdrdb] >> /var/lib/asterisk/.odbc.ini"
sudo sh -c "echo Description = MySQL connection to \'asteriskcdrdb\' database >> /var/lib/asterisk/.odbc.ini"
sudo sh -c "echo Driver = MySQL >> /var/lib/asterisk/.odbc.ini"
sudo sh -c "echo Database = asteriskcdrdb >> /var/lib/asterisk/.odbc.ini"
sudo sh -c "echo User = asteriskuser >> /var/lib/asterisk/.odbc.ini"
sudo sh -c "echo Password = ${ASTERISK_DB_PW} >> /var/lib/asterisk/.odbc.ini"
sudo sh -c "echo Socket = /var/run/mysqld/mysqld.sock >> /var/lib/asterisk/.odbc.ini"
sudo chmod 640 /var/lib/asterisk/.odbc.ini
sudo chown root:asterisk /var/lib/asterisk/.odbc.ini

Проверяем:

sudo su - asterisk -s /bin/bash -c "echo 'show tables' | isql MySQL-asteriskcdrdb"

Сам freepbx с помощью git:

export VER_FREEPBX=13.0
cd /usr/src
sudo apt-get install -y git
sudo git clone http://git.freepbx.org/scm/freepbx/framework.git freepbx
cd freepbx
sudo git checkout release/${VER_FREEPBX}

или скачиваем архив:

wget -P /tmp http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
sudo tar -xzf /tmp/freepbx-13.0-latest.tgz -C /usr/src
cd /usr/src/freepbx

Убираем лишние символы из asterisk.conf, перезапускаем asterisk и устанавливаем freepbx:

sudo sed -i "s/(\!)//" /etc/asterisk/asterisk.conf
sudo service asterisk stop
sudo ./start_asterisk start
sudo ./install -n --dbuser=asteriskuser --dbpass=${ASTERISK_DB_PW} --astagidir=/usr/share/asterisk/agi-bin --ampcgibin=/usr/lib/cgi-bin

Добавляем пользователя freepbx для управления asterisk:

sudo killall asterisk
sudo sh -c "echo [admin] > /etc/asterisk/manager.d/freepbx.conf"
sudo sh -c "cat /etc/amportal.conf | grep AMPMGRPASS | sed 's/AMPMGRPASS=/secret = /' >> /etc/asterisk/manager.d/freepbx.conf"
sudo sh -c "echo deny = 0.0.0.0/0.0.0.0 >> /etc/asterisk/manager.d/freepbx.conf"
sudo sh -c "echo permit = 127.0.0.1/255.255.255.0 >> /etc/asterisk/manager.d/freepbx.conf"
sudo sh -c "echo read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message >> /etc/asterisk/manager.d/freepbx.conf"
sudo sh -c "echo write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message >> /etc/asterisk/manager.d/freepbx.conf"
sudo sh -c "echo writetimeout = 5000 >> /etc/asterisk/manager.d/freepbx.conf"
sudo chmod 640 /etc/asterisk/manager.d/freepbx.conf
sudo chown root:asterisk /etc/asterisk/manager.d/freepbx.conf
sudo fwconsole start

Обновляем и устанавливаем модули:

sudo fwconsole ma updateall
sudo fwconsole ma downloadinstall voicemail dashboard asteriskinfo backup cdr sipsettings logfiles callrecording
sudo fwconsole ma enablerepo unsupported
sudo fwconsole ma updateall
sudo fwconsole ma downloadinstall customcontexts
sudo fwconsole ma refreshsignatures

Настраиваем Автозагрузку

Дальше настраиваем Web-сервер

Исключаем лишние модули: res_config_pgsql.so, chan_local.so, cel_tds.so, cel_pgsql.so, res_config_mysql.so, res_pjsip_phoneprov_provider.so

Перед установкой модуля DAHDi Config создаём файл /etc/asterisk/freepbx_chown.conf:

[custom]
file = /etc/dahdi/modules,0660,asterisk,asterisk
file = /etc/dahdi/system.conf,0660,asterisk,asterisk
file = /etc/modprobe.d/dahdi.conf,0660,asterisk,asterisk
rdir = /etc/asterisk/manager.d/,640,root,asterisk
file = /var/lib/asterisk/.odbc.ini,0640,root,asterisk
[blacklist]
directory = /var/spool/asterisk/monitor/

и запускаем:

sudo fwconsole chown

Подробнее о freepbx_chown.conf

Дополнительные модули

sudo fwconsole ma downloadinstall conferences customappsreg music fax featurecodeadmin findmefollow infoservices ivr queues recordings ringgroups soundlang timeconditions userman
sudo fwconsole ma enablerepo unsupported
sudo fwconsole ma downloadinstall customcontexts

Удаление FreePBX

sudo killall asterisk
sudo rm /var/log/asterisk/*
sudo rm -rf /etc/asterisk
sudo rm /etc/amportal.conf /etc/freepbx.conf
sudo rm -rf /var/lib/asterisk/bin /var/www/*
mysql -u root -e "DROP DATABASE asterisk; DROP DATABASE asteriskcdrdb; DROP USER asteriskuser@localhost; FLUSH PRIVILEGES;" -p

Music On Hold

Устанавливаем файлы moh и делаем ссылку на директорию куда смотрит freepbx:

sudo apt-get install asterisk-moh-opsound-wav
sudo rm -rf /var/lib/asterisk/moh
sudo ln -s /usr/share/asterisk/moh /var/lib/asterisk
sudo chown -R asterisk:asterisk /usr/share/asterisk/moh

Проверить конфигурацию moh можно в /etc/asterisk/musiconhold_additional.conf

Автозагрузка

Удаляем asterisk из автозагрузки:

sudo systemctl disable asterisk

Добавляем freepbx в systemd, добавляем файл /etc/systemd/system/freepbx.service:

freepbx.service

freepbx.service

[Unit]
Description=FreePBX VoIP Server
After=mysql.service
 
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start
ExecStop=/usr/sbin/fwconsole stop
 
[Install]
WantedBy=multi-user.target

Добавляем в автозагрузку:

sudo systemctl daemon-reload
sudo systemctl enable freepbx.service

http://wiki.freepbx.org/display/FOP/Example+systemd+startup+script+for+FreePBX

Web-сервер

Apache

Устанавливаем для PHP5.6:

sudo apt-get install libapache2-mod-php5.6

Меняем права запуска и разрешаем смотреть не свою дирректорию:

sudo sed '/memory_limit/s/128/256/' -i /etc/php/5.6/apache2/php.ini
sudo sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
echo "  /usr/share/asterisk/agi-bin/** r," | sudo tee -a /etc/apparmor.d/abstractions/apache2-common
sudo service apparmor restart
sudo service apache2 restart

/etc/apache2/sites-available/freepbx.conf:

freepbx.conf

freepbx.conf

<VirtualHost 0.0.0.0:80>

    ServerName ats.domain.com

    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options FollowSymLinks
        AllowOverride All
        DirectoryIndex index.php
        Require all granted
    </Directory>

</VirtualHost>


подключаем сайт:

sudo a2dissite 000-default
sudo a2ensite freepbx
sudo a2enmod rewrite
sudo service apache2 restart

Nginx

Устанавливаем nginx и php5-fpm

Добавляем пользователя www-data в группу asterisk:

sudo adduser www-data asterisk

Увеличиваем переменные:

sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/fpm/php.ini

/etc/nginx/sites-available/freepbx:

freepbx

freepbx

server {
    listen 80;
    server_name ats.domain.com;
    charset utf-8;

    # http://www.chromium.org/developers/how-tos/chrome-frame-getting-started
    add_header "X-UA-Compatible" "IE=Edge,chrome=1";

    location / {
        root   /var/www/html;
        index index.php;
    }

    # what to do with static files
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
        access_log off;
        expires 30d;
        root /var/www/html;
    }

    # what to do with php files
    location ~ .php$ {
        root   /var/www/html;
        fastcgi_index     index.php;
        include           /etc/nginx/fastcgi_params;
        keepalive_timeout 0;
        fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass      127.0.0.1:9000;

    }
}


подключаем сайт:

sudo ln -s /etc/nginx/sites-available/freepbx /etc/nginx/sites-enabled/
sudo nginx reload

http://askubuntu.com/questions/84189/how-to-install-asterisk-1-8-freepbx-2-9-nginx-php-fpm

iSymphony

Устанавливаем JRE:

sudo apt-get install openjdk-7-jre

Скачиваем и устанавливаем iSymphonyServer:

wget -P /tmp/ http://www.getisymphony.com/files/builds/isymphony/3.0.3_1564/iSymphonyServerV3-3.0.3.1564.tar.gz
tar -xzf /tmp/iSymphonyServerV3-3.0.3.1564.tar.gz -C /tmp
cd /tmp/iSymphonyServerV3-3.0.3.1564/install.sh

при запросе где находится jre указываем /usr/lib/jvm/java-7-openjdk-amd64/

Запускаем сервер:

sudo /opt/isymphony3/server/startup.sh

Добавляем в /etc/asterisk/manager_custom.conf:

manager_custom.conf

manager_custom.conf

[cxpanel]
secret = password
deny = 0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = all
write = all


password можно узнать:

sudo grep cxpanel /opt/isymphony3/server/conf/servers/default/asterisk.xml

Перегружаем модуль manager:

sudo asterisk -rx "manager reload"

Создаем /etc/init.d/isymphony:

isymphony

isymphony

#startup script for iSymphony for Debian installations
#!/bin/sh
### BEGIN INIT INFO
# Provides:          isymphony
# Required-Start:    $all
# Required-Stop:     $local_fs $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start isymphony at boot time
# Description:       Starts isymphony services at bootime
### END INIT INFO
#
case "$1" in
'start')
         /opt/isymphony3/server/startup.sh
         RETVAL=0
         ;;

'stop')
         /opt/isymphony3/server/shutdown.sh
         RETVAL=0
         ;;

*)      echo "Usage: $0 { start | stop }"
        RETVAL=1
        ;;
esac
exit $RETVAL


и добавлем в автозагрузку:

sudo chmod +x /etc/init.d/isymphony
sudo update-rc.d isymphony defaults

http://highsecurity.blogspot.ru/2014/04/isymphony-super-cool-unified.html

http://docs.getisymphony.com/display/ISYMDOCS/FreePBX,+Elastix+and+PBX+in+a+Flash+Installation#+FreePBX,+ElastixandPBXinaFlashInstallation-5.FreePBXModuleInstallation

Оправка факсов

Для отправки факсов на email необходим sendmail. Устанавливаем postfix без конфигурации «No configuration»:

sudo apt-get install postfix

http://it-pages.ru/asterisk-freepbx-nastrojjka-faksa.html

http://www.asterisk-pbx.ru/wiki/doku.php/system/postfix

CDR Reports

Конвертирование и очистка wav

  1. Очистка записей от звонков у которых статус не «ANSWERED»
  2. Сжатие остальных записей в mp3

Создаём /var/spool/asterisk/monitor/freepbx_monitor.sh:

freepbx_monitor.sh

freepbx_monitor.sh

#!/bin/bash

#Удаление записей отличающихся от статуса ANSWERED в базе
#Конвертирование wav в mp3 (apt install lame)
#
#Дополнительные параметры при вызове: -d, -m, -y
# -d - обработка за вчерашний день
# -m - обработка за предыдущий месяц
# -y - обработка за предыдущий год
# пример: ./freepbx_monitor.sh -d

#Куда пишем лог
LOG=/var/log/asterisk/freepbx_monitor.log
LOGERR=/var/log/asterisk/freepbx_monitor_err.log
#Где хранятся записи
DIRMON=/var/spool/asterisk/monitor
#Расширение
EXT=wav

#lame
LAME=/usr/bin/lame

DBNAME=asteriskcdrdb
DBUSER=`grep -i user /var/lib/asterisk/.odbc.ini | awk -F' = ' '{print $2}'`
DBPASS=`grep -i password /var/lib/asterisk/.odbc.ini | awk -F' = ' '{print $2}'`

#Обрабатываем дополнительные параметры при вызове скрипта
if [ "$1" ] ; then
 if [ "$1" == "-d" ] ; then
  DATE=`date -d "-1 day" +%Y/%m/%d`
 fi
 if [ "$1" == "-m" ] ; then
  DATE=`date -d "-1 month" +%Y/%m`
 fi
 if [ "$1" == "-y" ] ; then
  DATE=`date -d "-1 year" +%Y`
 fi
 DIRMON=$DIRMON/$DATE
fi

#Проверяем существование lame
if ! [ -x $LAME ] ; then
 echo $LAME not exists! | tee -a >> $LOGERR
 exit 0
fi

#Проверяем соединение
DBTEST=`mysql -h localhost -D$DBNAME -u$DBUSER -p$DBPASS -N -s -e "SELECT 1;" 2>&1`
if ! [ "$DBTEST" == "1" ]
then
 echo $DBTEST | tee -a $LOGERR
 exit 0
fi

SQLS="SELECT disposition FROM cdr WHERE uniqueid="
SQLU="UPDATE cdr SET recordingfile = '' WHERE uniqueid="

date +%F\ %T >> $LOG
echo DIRMON=$DIRMON >> $LOG

#Ищем все файлы расширение у которых .wav
FILES=( `find $DIRMON -iname *.$EXT -print` )

#Обрабатываем каждый файл
for FILE in ${FILES[@]}
 do
 #Обрезаем из имени файла, значение uniqueid
 UNIQUEID=${FILE##*-}
 UNIQUEID=${UNIQUEID%.*}
 #Имя без пути c заменой расширения на mp3
 FILENAME=${FILE##*/}
 FILENAME=${FILENAME%.$EXT}.mp3
 RESULTS=`mysql -h localhost -D$DBNAME -u$DBUSER -p$DBPASS -N -e "$SQLS \"$UNIQUEID\";" 2>&1`
 if [[ $RESULTS != *ANSWERED* ]] ; then
    RESULTU=`mysql -h localhost -D$DBNAME -u$DBUSER -p$DBPASS -N -e "$SQLU \"$UNIQUEID\";" 2>&1`
    if [ "$RESULTU" == "" ] ; then
      echo `ls -sh $FILE` $RESULTS >> $LOG
      rm $FILE
    else
      echo ${FILE##*/} $RESULTU | tee -a >> $LOGERR
    fi
 else
  RESULTR=`mysql -h localhost -D$DBNAME -u$DBUSER -p$DBPASS -N -e "UPDATE cdr SET recordingfile = '$FILENAME' WHERE uniqueid= \"$UNIQUEID\";" 2>&1`
  if [ "$RESULTU" == "" ] ; then
   RESULTL=`lame -S -h -b 16 $FILE ${FILE%.$EXT}.mp3 2>&1 | wc -l`
   if [ "$RESULTL" -ge "4" ] ; then
    rm $FILE
   else
    echo ${FILE##*/} convert error | tee -a >> $LOGERR
   fi
  else
   echo ${FILE##*/} $RESULTR | tee -a >> $LOGERR
  fi
 fi
done


Добавляем в крон:

sudo bash -c "echo '#' >/etc/cron.daily/freepbx_monitor"
sudo bash -c "echo '# Regular cron jobs for the freepbx_monitor.sh' >>/etc/cron.daily/freepbx_monitor"
sudo bash -c "echo '#' >>/etc/cron.daily/freepbx_monitor"
sudo bash -c "echo '0 0     * * *     asterisk   [ -x /var/spool/asterisk/monitor/freepbx_monitor.sh ] && /var/spool/asterisk/monitor/freepbx_monitor.sh -d' >>/etc/cron.daily/freepbx_monitor"
sudo bash -c "echo '0 1     1 * *     asterisk   [ -x /var/spool/asterisk/monitor/freepbx_monitor.sh ] && /var/spool/asterisk/monitor/freepbx_monitor.sh -m' >>/etc/cron.daily/freepbx_monitor"
sudo bash -c "echo '0 2     1 1 *     asterisk   [ -x /var/spool/asterisk/monitor/freepbx_monitor.sh ] && /var/spool/asterisk/monitor/freepbx_monitor.sh -y' >>/etc/cron.daily/freepbx_monitor"

Воспроизведение mp3 файлов

Способ 1:

sudo apt install mpg123

Способ 2:

sudo apt install libsox-fmt-mp3

и добавляем в /var/www/html/admin/libraries/media/Media/Driver/Drivers/SoxShell.php в функцию supportedCodecs:

$formats["in"]["mp3"] = "mp3";

patch

patch

--- SoxShell.php	2017-04-03 10:20:59.231353385 +0500
+++ SoxShell.php	2017-04-03 10:34:11.803407069 +0500
@@ -53,6 +53,7 @@
 		}
 		$formats["in"]["wav"] = "wav";
 		$formats["in"]["oga"] = "oga";
+		$formats["in"]["mp3"] = "mp3";
 		$formats["out"]["oga"] = "oga";
 
 		$f = array("",12,16,24,32,44,96,192);

Настройка

Advanced Settings

Dialplan and Operational

CW Enabled by Default - Возможность принятия второго вызова включена по умолчанию - true /false
Ожидание второго вызова (Call Waiting - yes) будет включаться по умолчанию при создании внутреннего номера. Установите опцию в noесли не хотите создавать внутренние номера с уже включенной опцией принятия второго вызова (например для агентов очереди колл-центра). Тогда пользователям можно будет включать эту возможность путём набора сервисного кода (по умолчанию - *70). В большинстве случаев этот параметр рекомендуется оставить так как есть. Таким образом многоканальным телефонам даётся возможность принимать несколько одновременных входящих соединений.

Disable -custom Context Includes - Отключить кастом включения в контексты - true/false
Обычно FreePBX автоматически генерирует кастомные контексты которые могут использоваться для добавления пользовательских диал-планов чтобы изменить стандартное поведение FreePBX. Все вложения такого рода вызывают обычно сообщения WARNING! в журнале если не найден контекст на который ссылается инклюд, но это не является ошибкой. Если вы уверены, что вам понадобятся вложения можно установить этот параметр в true. В противном случае FreePBX генерирует несуществующие инклюды в контекстах так же как в предыдущих версиях.

Extension Concurrency Limit - Лимит одновременных вызовов для внутренних номеров - 3
Количество одновременных исходящих вызовов которые может совершить внутренний номер. Это ОЧЕНЬ полезно в качестве дополнительной меры безопасности. В случае взлома системы ограничивает количество одновременных исходящих вызовов которые могут быть сделаны со взломанного внутреннего номера. По умолчанию, при создании внутреннего номера значение '0', что соответствует неограниченному количеству вызовов.

Feature Codes Beep Only - Использовать только звуковой сигнал для подтверждения операций сервисных кодов - true/false
Если установлено в true то вместо подтверждающих голосовых сообщений при активации и деактивации режимов FollowMe, CallWaiting, DND, итд, будет воспроизводиться просто звуковой сигнал.

Generate Diversion Headers - Генерировать заголовки перенаправления - true/false
Если установлено в true то исходящие вызовы, которые являются, на самом деле, последовательно перенаправленными входящими из Ring Groups, Follow Me или др., будут иметь дополнительные SIP заголовки diversion, в которых будет содержаться оригинальный DID на который пришёл начальный вызов, предполагая, что этот DID доступен. Это может быть полезно при соединениях с некоторыми операторами, которые могут требовать этого, в качестве обязательного условия при перенаправленных звонках.

Asterisk Dial Options - Опции передаваемые команде Dial() - Ttr
Опции передаваемые команде Dial() при совершении внутренних вызовов. Полный список команд содержится описании команды Dial(). Опции по умолчанию:
T - разрешает переадресацию вызова (transfer) вызывающему абоненту.
t - разрешает переадресацию вызова (transfer) ответившему абоненту.
r - генерирует КПВ.

Обновление через proxy

1. Для обновления через proxy, включаем использование wget:

SettingAdvanced Settings → Раздел GUI BehaviorUse wget For Module Admin: True

либо равнозначной командой:

sudo /var/lib/asterisk/bin/freepbx_setting MODULEADMINWGET 1

2. Прописываем адрес прокси в: SettingAdvanced Settings → Раздел Proxy Settings

либо равнозначной командой пример для proxy.domain.com (без аутентификационных данных):

sudo /var/lib/asterisk/bin/freepbx_setting PROXY_ENABLED 1
sudo /var/lib/asterisk/bin/freepbx_setting PROXY_ADDRESS proxy.domain.com:3128

или адрес прокси для wget можно прописать в глобальном файле конфигурации в /etc/wgetrc.

Модули

Очистка

Добавляем в крон:

echo '#!/bin/sh' | sudo tee /etc/cron.daily/freepbx
echo 'find /var/www/html/admin/modules/_cache/*.tgz.gpg -mtime +90 -exec rm {} \;' | sudo tee -a /etc/cron.daily/freepbx
sudo chmod +x /etc/cron.daily/freepbx

Проверка

Пример проверки подписи:

su -l asterisk -c 'gpg --verify /var/www/html/admin/modules/_cache/core-13.0.116.tgz.gpg'

Ручная установка

Downgrade модуля, на примере framework-13.0.190.5.tgz.gpg:

gpg --output /tmp/framework-13.0.190.5.tgz --decrypt /var/www/html/admin/modules/_cache/framework-13.0.190.5.tgz.gpg
sudo rm -rf /var/www/html/admin/modules/framework
sudo tar xzf /tmp/framework-13.0.190.5.tgz -C /var/www/html/admin/modules/
sudo chown -R asterisk:asterisk /var/www/html/admin/modules/framework

Обновляем через GUI или через консоль:

sudo fwconsole ma install framework

Оборудование

Настройка VoIP шлюза D-Link DVG-XXXX - http://www.lynks.ru/blog/nastroika-voip-shlyuza-d-link-dvg-xxxx

Grandstream GXW - http://awsswa.livejournal.com/17681.html

Ошибки

Заисает amportal при запуке:

amportal start
Please wait...
SETTING FILE PERMISSIONS
chattr : Operation not supported while reading flags on /var/www/html/cxpanel
Permissions OK
Removing any dangling symlinks
Dangling symlinks removed
STARTING ASTERISK

Изменил строчку в /usr/sbin/safe_asterisk в run_asterisk():

nice -n $PRIORITY ${ASTSBINDIR}/asterisk -f ${CLIARGS} ${ASTARGS}> /dev/${TTY} 2>&1 </dev/${TTY} &

WARNING res_odbc.c: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified

Нужно установить и настроить ODBC драйвер:

sudo apt-get install libmyodbc

/etc/odbcinst.ini

[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
sudo odbcinst -q -d

ответ: [MySQL]

Следующие настройки берем из /etc/asterisk/res_odbc_additional.conf

/etc/odbc.ini

[MySQL-asteriskcdrdb]
Description           = MySQL connection to 'asteriskcdrdb' database
Driver                = MySQL
Database              = asteriskcdrdb
Server                = localhost
UserName              = asteriskuser
Password              = password
Port                  = 3306
Socket                = /var/run/mysqld/mysqld.sock

http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/installing_configuring_odbc.html

WARNING ccss.c: Usage of cc_callback_macro is deprecated. Please use cc_callback_sub instead.

sudo sed -i 's/cc_callback_macro/cc_callback_sub/' /var/www/html/admin/modules/campon/functions.inc.php

WARNING func_callerid.c: CALLERPRES is deprecated. Use CALLERID(name-pres) or CALLERID(num-pres) instead.

sudo sed -i 's/CALLERPRES()/CALLERID(name-pres)/' /var/www/html/admin/modules/core/functions.inc.php
sudo sed -i 's/CALLERPRES()/CALLERID(name-pres)/' /var/www/html/admin/libraries/extensions.class.php

pbx_config.c: The use of '_.' for an extension is strongly discouraged and can have unexpected behavior. Please use '_X.' instead at line 1645 of /etc/asterisk/…conf

sudo sed -i "s/'_\.'/'_X\.'/" /var/www/html/admin/modules/core/functions.inc.php
sudo sed -i "s/_\./_X\./" /var/www/html/admin/modules/core/etc/extensions.conf
sudo sed -i "s/'_\.'/'_X\.'/" /var/www/html/admin/modules/queues/functions.inc/dialplan.php

Reading /etc/asterisk/asterisk.conf...Error! Unable to read /etc/asterisk/asterisk.conf or it was missing a directories section

Необходимо удалить символы (!) в первой строчке /etc/asterisk.org/asterisk.conf:
с

[directories](!)

на

[directories]

Table 'asterisk.voicemail_admin' doesn't exist

Необходиммо установить модуль voicemail для версии 12 и ниже:

sudo amportal a ma download voicemail
sudo amportal a ma install voicemail

либо для версии 13 и выше:

sudo fwconsole ma download voicemail
sudo fwconsole ma install voicemail

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

  1. FreePBX поддерживает только MyISAM

Исправление для InnoDB.

http://community.freepbx.org/t/fatal-error-when-updateing-core/28392

http.c: Invalid sessionlimit '' at line 15 of http.conf

FreePBX Advanced Settings → Session Limit: 100

findmefollow Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT)

После установки модуля findmefollow при нажатии в web интерфейсе Apply появляется ошибка.
Необходимо изменить таблицу:

ALTER TABLE findmefollow CONVERT TO CHARACTER SET utf8;

Одной командой:

mysql -u`grep -i user /var/lib/asterisk/.odbc.ini | awk -F' = ' '{print $2}'` -p`grep -i password /var/lib/asterisk/.odbc.ini | awk -F' = ' '{print $2}'` -e "ALTER TABLE findmefollow CONVERT TO CHARACTER SET utf8;" asterisk
how-to/freepbx.txt · Последнее изменение: 127.0.0.1