• Установка FreePBX 14 с Asterisk 18 на Debian 10 Buster

    ИНФОРМАЦИЯ. Немного актуализировал статью под новую версию Debian, чтобы установка из статьи проходила в режиме copy-paste без ошибок.

    Рассмотрим как установить FreePBX 14 в связке с Asterisk 18 на Debian 10 Buster.

     

    Подготовка системы

    Перед началом установки обновляем систему до актуального состояния:

    apt-get update && apt-get upgrade -y

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

    apt-get install build-essential linux-headers-`uname -r` apt-transport-https bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev -y
    ВНИМАНИЕ. Обязательно перезагружаем систему и после этого продолжаем установку.

     

    Устанавливаем PHP версии 5.6 (для корректной работы FreePBX fwconsole):

    curl https://packages.sury.org/php/apt.gpg | apt-key add -
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/deb.sury.org.list
    apt-get update && apt-get install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-mbstring php5.6-gd php5.6-xml php-pear -y

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

    curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
    apt-get install nodejs -y
    pear install Console_Getopt

    Устанавливаем поддержку MariaDB ODBC

    wget https://downloads.mariadb.com/Connectors/odbc/latest/mariadb-connector-odbc-3.1.9-debian-buster-amd64.tar.gz
    tar -zxvf mariadb*
    cp -v mariadb-connector-odbc-3.1.9-debian-buster-amd64/lib/mariadb/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
    
    ВНИМАНИЕ. На момент написание статьи версия MariaDB ODBC — 3.1.9, поэтому обращаем внимание на случай ошибок и при необходимости корректируйте версионность. Последние версии можно посмотреть на оф. сайте — https://downloads.mariadb.com/Connectors/odbc/latest/.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (3 голос(ов), в среднем: 3,33 из 5)
    Загрузка...
  • Использование режима DND с возможностью переадресации на Asterisk 16 + FreePBX 14

    Многие пользователи просили сделать возможность переадресации вызовов на мобильный при установке DND (do not disturb) режима на рабочем телефоне. Так как DND режим не предполагает переадресации, то пришлось свою обработку для этого режима.

     

    Все ниже описанные действия производились на Asterisk 16 + FreePBX 14.

     

    В итоге добавлена возможность активации\де-активации DND режима по звонку самому себе (на всякий слушай, вдруг кому будет так удобней), возможность задание переадресации для конкретных внутренних номеров (не всем пользователям нужно такое поведение DND режима).

     

    В файл /etc/asterisk/extentions_custom.conf добавляем (постарался подробно описать что делает и как работают секции):

    [from-internal-custom]
    include => dnd-on-off
    include => dnd-transfer-check
    
    exten => _XXXX,1,GoSub(dnd-on-off,s,1,(${EXTEN}))
    exten => _XXXX,n,GoSub(dnd-transfer-check,s,1,(${EXTEN}))
    exten => _XXXX,n,Goto(from-internal-additional,${EXTEN},1)
    
    
    [dnd-on-off]
    ; --------------------------------------------------------------------------
    ; Включение\Отключение режима DND по звонку самому себе
    ;
    ; -- Инструкция:
    ; При звонке на свой внутренний номер, включается или отключается режим DND.
    ; --------------------------------------------------------------------------
    ;
    exten => s,1,NoOp(DND - Activate\Deactivate)
    exten => s,n,ExecIf($["${CALLERID(number)}" = "${ARG1}"]?Goto(app-dnd-toggle,*76,1))
    exten => s,n,Return()
    
    
    [dnd-transfer-check]
    ; --------------------------------------------------------------------------------------------
    ; Задание необходимой переадресации на мобильный телефон в DND режиме.
    ;
    ; -- Инструкция:
    ; В условии REGEX("^()" в () указываем внутренние номера для которых необходимо перенаправлять
    ; входящие на мобильные при активном режиме DND. Прим. - REGEX("^(1100|1101)"
    ; --------------------------------------------------------------------------------------------
    ;
    exten => s,1,NoOp(DND transfer call)
    exten => s,n,ExecIf($[${REGEX("^(1100)" ${ARG1})}]?GoSub(dnd-transfer-call,s,1(${ARG1})))
    exten => s,n,Return()
    
    
    [dnd-transfer-call]
    ; ------------------------------------------------------------------------------------------------
    ; Проверка на включенный режим DND и указание номера для переадресации.
    ;
    ; -- Инструкция:
    ; Под указателем "insert DND transfer rule below" добавляем строку вида:
    ; exten => s-XXXX,1,Goto(outbound-allroutes,8XXXXXXXXXX,1), где вместо s-XXXX указываем внутренний 
    ; номер абонента, а вместо 8XXXXXXXXXX номер мобильного для переадресации.
    ;
    ; Прим. - exten => s-1100,1,Goto(outbound-allroutes,8800000000,1)
    ; ------------------------------------------------------------------------------------------------
    ;
    exten => s,1,NoOp(Transfer Call on DND activate)
    exten => s,n,GotoIf($["${DB(DND/${ARG1})}" != ""]?s-${ARG1},1)
    exten => s,n,Return()
    
    ; insert DND transfer rule below
    ;exten => s-XXXX,1,Goto(outbound-allroutes,8XXXXXXXXXX,1)

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Динамические конференции на Asterisk 16 + FreePBX 14

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

     

    В интернете есть несколько примеров реализации подобного рода задачи, но я решил реализовать по своему и так как мне нужно. Итак все ниже описанные действия производились на Asterisk 16 + FreePBX 14 + phpAGI.

    ИНФОРМАЦИЯ. По-умолчанию phpAGI задействован в FreePBX и дополнительных манипуляций по его настройки не требуется. Если ниже описанные действия будут применяться к голому Asterisk, то как настроить на нем phpAGI можно прочитать из этой статьи.

     

    — Техническое задание:
    • В активном разговоре нажать *7 — создание и перевод участников разговора в конференцию.
    • В конференции нажать *7 — после гудка набрать номер кого хотим пригласить в конференцию и нажимаем #.
    • Набрать внутренний номер с префиксом *7 (прим. *71100) — если конференция с набранным номером (прим. 1100) существует, то будет присоединение к ней, в противном случае будет создана новая конференция.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (3 голос(ов), в среднем: 3,67 из 5)
    Загрузка...
  • Уведомление о занятости абонента при входящем звонке на занятую линию с включенным Call Waiting в FreePBX 14

    В качестве памятки опишу способ доработки функции второй линии (Call Waiting) в FreePBX 14.

     

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

     

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

     

    Как оказалось в FreePBX есть определенная обработка macro-dialout-one-predial-hook описанная в /etc/asterisk/extensions.conf и которая срабатывает до момента непосредственного звонка абоненту. В этой обработке можно проверить статус выдываемого абонента и в случае если статус линии занят, то проигрывать звонящему сообщение и продолжить вызов.

     

    В файл конфигурации /etc/asterisk/extensions_custom.conf в секцию [from-internal-custom] добавляем:

    [from-internal-custom]
    
    ;----- Playback Wait for answer in INUSE line -----
    [macro-dialout-one-predial-hook]
    exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
    exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/wait_for_answer))
    exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
    ПОЯСНЕНИЕ. Возможные варианты состояния линии (DEVICE_STATE) — UNKNOWN, NOT_INUSE, INUSE, BUSY, INVALID, UNAVAILABLE, RINGING, RINGINUSE, ONHOLD (более подробно можно почитать в оф. документации)
    ИНФОРМАЦИЯ. По-умолчанию FreePBX смотрит каталог со звукам по пути — /var/lib/asterisk/sounds/ru

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 4,00 из 5)
    Загрузка...
  • Установка FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch

    Рассмотрим как установить FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch.

     

    Подготовка системы

    Перед началом установки обновляем систему до актуального состояния:

    apt-get update && apt-get upgrade -y

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

    apt-get install build-essential linux-image-amd64 linux-headers-* apt-transport-https bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev -y
    ВНИМАНИЕ. Обязательно перезагружаем систему и после этого продолжаем установку.

     

    Устанавливаем PHP версии 5.6 (для корректной работы FreePBX fwconsole):

    curl https://packages.sury.org/php/apt.gpg | apt-key add -
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/deb.sury.org.list
    apt-get update && apt-get install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-mbstring php5.6-gd php5.6-xml php-pear -y

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

    curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
    apt-get install nodejs -y
    pear install Console_Getopt

    Устанавливаем поддержку MariaDB ODBC

    wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.15/mariadb-connector-odbc-2.0.15-ga-debian-x86_64.tar.gz
    tar -zxvf mariadb*
    cp -v mariadb-connector-odbc-2.0.15-ga-debian-x86_64/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
    

     

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Маршрутизация входящего вызова в другой транк. Перенаправление звонков между транками в FreePBX 14

    Столкнулся недавно с задачей по маршрутизации звонков между несколькими FreePBX соединенными SIP-транками. Необходимо вызов пришедший из одного SIP-транка на определенный номерной план передать в другой SIP-транк.

     

    Имеется три АТС на базе FreePBX (13, 14) — FreePBX «A» (номерной план 1ХХ), FreePBX «B» (номерной план 2ХХ), FreePBX «C» (номерной план 3ХХ). Которые соединены между собой SIP-транками следующим образом:

    FreePBX «A» <—-SIP TRUNK «A»—-> FreePBX «B» <—-SIP TRUNK «B»—-> FreePBX «C»

     

    Для наглядности рассмотрим к примеру ситуацию когда необходимо дозваниваться с FreePBX «A» (1ХХ) до абонентов находящихся в FreePBX «С» (3ХХ) и в обратном направлении.

     

    Можно конечно решить задачу соединив отдельным SIP-транком  FreePBX «A» и FreePBX «С», но рассмотрим другой вариант, когда к примеру нет возможности соединить их на прямую, тогда в этом случае посредником для звонков будет выступать FreePBX «B», т.к. он имеет связь по SIP-транку с FreePBX «С» и FreePBX «A».

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Как изменить CallerID при входящем звонке FreePBX 14 в связке с Asterisk 16

    В работе имеется связка Asterisk 16.3.0 + FreePBX 14.0.11 и два SIP-провайдера. Задался вопросом как модифицировать/изменить номер телефона (CallerID) при входящем звонке, устанавливая префикс 8 в любом случае. Мне нужно это для удобства обратного набора, на поступивший внешний звонок.

     

    В моем случае один SIP-провайдер отдает номер телефона с префиксом 7, прим. 7800-800-80-80 (7XXXXXXXXXX), а другой вообще без префикса, прим. 800-800-80-80.

    Чтобы исправить это, нам  необходимо немного модифицировать dialplan, внеся в файл конфигурации /etc/asterisk/extensions_custom.conf следующий код:

    [from-pstn-custom]
    exten => _X.,1,ExecIF($[${VALID_EXTEN(fix-cid,${CALLERID(num)})}]?Gosub(fix-cid,${CALLERID(num)},1))
    
    [fix-cid]
    ; Входящий номер с кодом 7
    exten => _7XXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _7XXXXXXXXXX,n,Return()
    
    ; Входящий номер без кода страны
    exten => _XXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num)})
    exten => _XXXXXXXXXX,n,Return()

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (2 голос(ов), в среднем: 4,00 из 5)
    Загрузка...
  • Подключение GSM-модема USB Huawei E1550 к Asterisk 13 + chan_dongle на Debian 8 Jessie.

    Появилась интересная задача, которая заключается в том что нужно подключить GSM-модем USB HUAWEI E1550 к Asterisk 13 работающий на Debian 8 Jessie. Настроить возможность принимать/отправлять SMS, принимать/звонить с номера находящегося в GSM-модеме.

     

    Рекомендуется чтобы GSM-модем HUAWEI E1550 работал на прошивке версии: 11.608.12.00.143, а так же чтобы работал только в режиме «только модем».

     

    На момент написания статьи используемая версия Asterisk — 13.25.0, который развернут на Debian 8 Jessie (как развернуть Asterisk 13 на Debian 8 Jessie, можно по этой статье)

     

    Настройка системы и GSM-модема

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

    apt-get update && apt-get upgrade -y

     

    Устанавливаем необходимые пакеты для работы с USB GSM шлюзом:

    apt-get install usb-modeswitch minicom
    usb-modeswitch необходима для автоматического переключения устройства из режима, minicom необходима для подключения к последовательным портам (COM).

     

    Подключаем GSM-модем HUAWEI E1550, проверяем появились ли устройства ttyUSB*:

    ls -al /dev | grep ttyUSB
    
    crw-rw---- 1 root dialout 188, 0 фев 27 11:34 ttyUSB0
    crw-rw---- 1 root dialout 188, 1 фев 27 11:33 ttyUSB1
    crw-rw---- 1 root dialout 188, 2 фев 27 12:37 ttyUSB2

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 5,00 из 5)
    Загрузка...
  • Установка Asterisk 16 на Debian 9 Stretch

    Рассмотрим как выполнить установку из исходников Asterisk 16 на Debian 9 Stretch.

     

    Подготовка системы

    Перед началом установки обновляем систему до актуального состояния:

    apt-get update && apt-get upgrade -y

     

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

    apt-get install linux-headers-amd64 gcc make autoconf libtool libical-dev pkg-config default-libmysqlclient-dev -y

     

    Устанавливаем DAHDI, LibPRI, libSTRP

    Скачиваем исходники (dahdi, libpri, libstrp, asterisk) и распаковываем их:

    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 https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
    wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
    
    tar -zxvf dahdi-linux-complete-current.tar.gz 
    tar -zxvf libpri-current.tar.gz 
    tar -zxvf v2.2.0.tar.gz 
    tar -zxvf asterisk-16-current.tar.gz

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Подключение класса phpagi к AGI интерфейсу Asterisk (FreePBX)

    Используя в работе голый Asterisk, рано или поздно становится недостаточно стандартных инструментов, для решения нужных задач. В этом случае нам поможет интерфейс AGI, который позволяет Asterisk взаимодействовать со сторонними приложениями, к примеру с приложением написанным на PHP.

     

    Рассмотрим как настроить взаимодействие Asterisk с классом phpagi, посредством интерфейса AGI (Asterisk Gateway Interface).

    Все ниже действия будут производится на Debian 8 JessieAsterisk 13 и версией PHP — 5.6. Хочу обратить внимание что ниже описанное так же будет применимо к FreePBX

     

    Настройка Asterisk

    Для подключения класса phpagi, в конфигурационный файл (/etc/asterisk/manager.conf), добавляем параметры подключения его (прим. astphp):

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика