Разбираемся с FreePBX и интегрируем его с Битрикс24 и не только
Изучаем логику работы
В упрощенном виде диалплан занимается только первым пакетом, иногда также в процессе разговора совершается перевод звонков, нажатия кнопок (DTMF), разные интересности типа FollowMe, RingGroup, IVR и прочего.
Что внутри Invite пакета
Вся логика работы FreePBX построена на включении друг в друга разных контекстов через include и вызов через Gosub, Macro и обработчики Handler. Рассмотрим контекст входящих вызовов FreePBX
Вызов проходит по всем контекстам сверху вниз по очереди, в кажом контексте могут быть вызовы других контекстов как макросов (Macro), функций(Gosub) или просто переходы (Goto), поэтому реальное дерево того, что вызывается можно отследить только в логах.
Где в этом алгоритме звонка мы должны поставлять информацию о начале звонка в CRM, где начинать запись, где оканчивать запись и отсылать ее вместе с информацией о звонке на CRM?
Интеграция с внешними системами
Что такое интеграция АТС и CRM? Это настройки и программы, которые конвертируют данные и события между двумя этими платформами и пересылают друг другу. Самым распространенным способом взаимодействия независимых систем является API, а самым популярным способом доступа к API является HTTP REST. Но только не для asterisk.
Внутри Asterisk есть:
Event: Newchannel Privilege: call,all Channel: PJSIP/VMS_pjsip-0000078b ChannelState: 4 ChannelStateDesc: Ring CallerIDNum: 111222 CallerIDName: 111222 ConnectedLineNum: ConnectedLineName: Language: en AccountCode: Context: from-pstn Exten: s Priority: 1 Uniqueid: 1599589046.5244 Linkedid: 1599589046.5244
Пример вывода ARI при инициации звонка
Удобство или неудобство, возможность или невозможность работы с тем или иным API определяются задачами, которые необходимо решить. Задачи для интеграции с CRM следующие:
Отследить начало вызова, куда его перевели, вытащить CallerID, DID, времена начала и конца, может быть данные из директории (для поиска связи телефона и пользователя CRM)
Начать и окончить запись звонка, сохранить в нужном формате, сообщить по окончании записи где лежит файл
Инициировать звонок по внешнему событию (из программы), позвонить внутреннему номеру, внешнему и соединить их
Опционально: интегрировать с CRM, группами дозвона и FollowME для автоматического перевода звонков при отсутствии на месте(по информации CRM)
Придумываем интеграцию заново
Обновления в FreePBX 15
9 октября 2018 проходил AstriCon 2018. На конференции присутствовали многие компании, среди которых была Sangoma. Эта компания многим изветна своей разработкой FreePBX. 17.08.2018 они заявили у себя на сайте о старте альфа тестировании новой версии FreePBX 15. В этой статье будет рассмотрены нововведения для FreePBX 15.
Backup
В FreePBX 15 модуль резервирования был переделан простым, гибким и пригодным для использования. Все опции хранения обработаны в модуле Filestore, который предлагает большое количество опций для бережного хранения данных. Вы можете разделить бекапирование настроек отдельных модулей. Нажав в в разделе Basic Information кнопку Modules.
Эта документация основывается на предрелизной версии. Псосле выпуска версии данных и функционал может поменяться.
Если вы обновляетесь с предыдущей версии, все ваши бекапы переходят в новую версию.
Если это установка с 0. То вам необходимо будет настроить все бэкапы, а также работу модуля Filestore.
Для настройки Файлового хранилища (Filestore) можете пройти по этой ссылке.
Также вы можете восстанавливать бекапы из консоли.
| fwconsole backup —restore /path/to/your/backup.tar.gz |
Модуль API позволяет администраторам системы конфигурировать и управлять системой FreePBX удаленно, при этом автоматизированно.
Restful – также называемый RESTful веб сервисом. Основывается на технологии REST (representational state transfer). Ахитректурный стиль и подход для связи. Часто используется в веб разработках.
GraphQl – это open source продукт. Является прослойкой общения клиентской программы и сервера. Подрубнее можно почитать тут.
WARNING
Чтобы использовать API требует использования oauth 2.0.
Чтобы подключиться и использовать API, вы должны будете сначала создать приложение в Applications API
Сервер VoIP для небольшой компании (FreePBX 14, Asterisk 15, Ubuntu 16.04) часть 1
Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. Начнем с начала. В нашей компании задумались о переходе на SIP и встал вопрос? как это реализовать.
Были рассмотрены несколько вариантов:
Ubuntu 16.04 у нас являться корпоративным стандартом, сервера Ubuntu Server 16.04, как рабочая OS Ubuntu Desktop 16.04. Основной же сервер построен на базе Zentyal 5.0. Сервера и рабочие ПК устанавливаются по сети по TFTP. Если будет интересно опишу все нюансы установки Zentyal (а их приличное количество).
Аппараты решили не покупать, у каждого сотрудника есть сотовый либо на Android, либо на iOS, так, что проблем с клиентами нет, сотрудники имеют доступ к рабочему Wi-FI. Так же клиенты SIP стоят на рабочих ПК. Так же есть доступ к SIP через Интернет, безопасность тоже учтена, порты подключения изменены, пароли для SIP достаточно сложны.
Переходим к самой сути. В сети полно документации по установке FreePBX 13 на Ubuntu 16.04, А вот каr установить FreePBX 14 нету, даже официальном wiki FreePBX есть только для CentOS 7 и Debian 8.8, но было большое желание и стремление сделать задуманное.
1. Установку Ubuntu Server 16.04 описывать не буду, это просто даже для новичка.
1.1. Все манипуляции я проводил по root sudo su
3. Займемся PHP, для FreePBX 14 необходим PHP 5.6, по умолчанию в Ubunty 16.04 идет PHP 7.0
Удаляем весь PHP, если он есть в системе:
Устанавливаем репозиторий PHP 5.6:
sudo add-apt-repository ppa:ondrej/php
Обновляемся и устанавливаем PHP:
sudo apt update
sudo apt install php5.6
4. Mysql который идет в репозитории не совместим с FreePBX 14, нам нужна MariaDB, добавим её в репозиторий:
5. Нам так же необходим nodejs:
6. Установим теперь всё необходимое:
6.1. Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial.
Скачиваем нужный коннектор:
И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:
cd mariadb-connector-odbc-3.0.2-ga-debian-x86_64/lib
cp libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
7. Теперь по рекомендациям FreePBX необходимо перезагрузиться, я этого не делал.
8. Убедимся, что mod_rewrite включен, чтобы избежать возможных атак.
a2enmod rewrite
service apache2 restart
9. Включим поддержку Console_Getopt
pear install Console_Getopt
10. Переходим к установке Asterisk 15 (фактически это часть wiki с FreePBX для Debina 8.8):
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-15-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
Скомпилируем и установим Lame (mp3):
cd /usr/src &&
tar zxvf lame-3.98.4.tar.gz &&
cd lame-3.98.4 &&
./configure &&
make &&
make install
Скомпилируем и установим DAHDI и LibPRI (Мы платы не используем, но кто знает, что захочется потом):
Скомпилируем и установим pjproject:
Скомпилируем и установим jansson:
Если вы хотите использовать кодек Opus, перед началом компиляции Asterisk необходимо установить xmlstarlet:
sudo apt install xmlstarlet
Скомпилируем и установим Asterisk:
Для себя я выбрал ‘format_mp3’ и ‘res_config_mysql’, а так же включил ‘codec_opus’
Сохраняем изменения и продолжаем установку:
Пока все собиралось я успел налить себе кофе и продолжил.
Настроим запуск от имени пользователя ‘Asterisk’
Расcкомментируйте в /etc/default/asterisk:
Создаём пользователя Asterisk и задаём права пользователя:
11. Переходим к FreePBX 14
Скачаем и установим FreePBX:
11.1. Для русификации FreePBX необходима локаль ru_RU.UTF-8:
echo «russian ru_RU.UTF-8» >> /etc/locale.alias
locale-gen ru_RU
systemctl restart apache2
12. Создадим скрипт запуска для systemd:
В файл /etc/systemd/system/freepbx.service вставляем:
[Unit]
Description=FreePBX VoIP Server
After=mariadb.service
systemctl enable freepbx.service
На этом установка и первоначальная настройка закончена. Будут вопросы, всегда готов ответить.
Обновление с 14 FreePBX на 15 FreePBX
Анонс: В данной статье проведем обновление FreePBX с 14 до 15 версии. Описание: В данный момент все еще идет альфа тестирование нового FreePBX и несмотря на то, что до полной готовности новой версии FreePBX все еще далеко в альфа-тестировании поучаствовать и опробовать новую версию может любой желающий. Установка: Обновляться будем с FreePBX 14.0.3.1 Для начала […]
Анонс: В данной статье проведем обновление FreePBX с 14 до 15 версии.
Описание: В данный момент все еще идет альфа тестирование нового FreePBX и несмотря на то, что до полной готовности новой версии FreePBX все еще далеко в альфа-тестировании поучаствовать и опробовать новую версию может любой желающий.
Установка:
Обновляться будем с FreePBX 14.0.3.1
Для начала стоит сделать резервную копию или снимок виртуальной системы перед обновлением. Как сделать бэкап FreePBX вы можете прочесть на нашем сайте по следующей ссылке.
Инструкция по обновлению есть на официальном форуме разработчика ссылка на следующий сайт.

Вкратце нам нужно будет вручную скачать определенный модуль, который и позволит нам обновиться до 15 версии. Скачиваем модуль по следующей ссылке.
Затем переходим по следующему пути: Admin – Module Admin

Затем нажимаем на Upload modules

Выбираем «Upload (From Hard Disk)»,

затем загружаем ранее скаченный файл и нажимаем на кнопку «Upload»

После чего пройдет процесс загрузки, который замет минуту-две. После веб страница перезагрузиться и новый модуль для обновления системы станет доступным.
Возвращаемся к списку модулей и ищем пункт «PBX Upgrader»

Как вы можете видеть выше на скриншоте у нас версия FreePBX ниже чем необходимо. Решается просто – обновлением FreePBX

Переключите Install, затем нажмите кнопку Process

Затем останется только подтвердить установку модуля

И дождаться установки

Обновление займет пару минут, после чего останется только вернуться к списку модулей

И применить настройки. После в Admin появится новый пункт «14 to 15 Upgrade Tool»

Заходим в него и проверяем, соответствует ли система требованиям для обновления

Чаще всего требуется обновить локальные и коммерческие модули для обновления и зарегистрировать систему.

После того как выполните все перечисленные пункты появится возможность начать процесс обновление

Выбираем наш дистрибутив

После чего ожидаем окончания обновления

При обновлении возникла следующая ошибка

Решение проблемы использование команды # fwconsole ma upgradeall после чего вновь запустите утилиту обновления на FreePBX 15.
По заврешению обновления примените настройки через Appay Config. Если вы все сделали правильно, то FreePBX обновится до 15 версии.

Поздравляем, вы установили 15 альфа версию FreePBX
FreePBX 15 Alpha Now Available for Testing
Andrew Nagy
It’s been a long time since we last updated you on the work in FreePBX 15. We started working on FreePBX 15 around August of last year. Throughout this time, we’ve continued to support FreePBX 14 and 13 with countless bug fixes and even a few new features. In this post we’d like to bring you up to speed on what’s been going on in FreePBX.
When we began working on FreePBX 15 our goal was to limit the number of features being added to focus on a small number of pain points we’ve repeatedly heard about from YOU! In fact, it’s your feedback that’s helped us to complete the 2 major features of this release; a reworked version of backup & restore with the ability to do between major version restores (want to back up from 14 and restore to 15? Now you can!) and a way to allow you to better integrate FreePBX into your existing workflow and processes using an API (Application Programming Interface).
Learn more about the new Backup and Restore in FreePBX 15 on our wiki: https://wiki.freepbx.org/pages/viewpage.action?pageId=114852215
While we’ve been quiet since January with our most recent blog post asking for additional feedback on FreePBX 15, the team has been hard at work ensuring we are able to deliver on what we promised and give everyone a chance to play with it. Without further ado, on behalf of the FreePBX and Sangoma team, we are officially releasing FreePBX 15.0 in alpha today for everyone to play with. In this alpha release, all open source FreePBX modules support the new backup & restore methods, which will allow for between major version restores. Instead of trying to group all data together in backup & restore each module is now responsible for its own data during the backup and restore process. Second, we have completed about 10 modules using our new built-in API, powered by GraphQL with more planned soon.
Learn more about the FreePBX API on our wiki https://wiki.freepbx.org/display/FPG/API
Now with that said, we also know that we asked you for feedback for what you wanted to see in FreePBX and we’ve been actively watching and listening to your suggestions. Unfortunately though, we were unable take on the added workload and really focus on any additional features you’ve ask for, but we look forward to working with the community to bring them to future releases of FreePBX.
Great, but how do I get FreePBX 15?
In the past, we’ve traditionally released an ISO and asked everyone to download and install for testing. However, we are taking a different approach this year with the hopes that it’s easier on YOU to test and provide feedback on the new functionality. This year we are releasing a version upgrade module but not through our traditional methods. Usually we release the version upgrade module via module admin, when we release our release candidates allowing customers to upgrade from the previous version, as we feel the product is close to its final release. This year we are releasing the version upgrade module at the link below which users can manually choose to download, upload and install to move to 15 and not wait for FreePBX 15 to be released as a Release Candidate. Once we feel FreePBX 15 is closer to an RC we will publish new ISOs and move the version upgrader into the module admin system in FreePBX.
However, before rushing off to upgrade your system, please note that this is NOT INTENDED FOR PRODUCTION USE. Let’s me say that one more time, please DO NOT INSTALL THIS ON A PRODUCTION SYSTEM! The version upgrade module is being provide for users to upgrade a new installation or backup of an existing system. The code will have bugs and at this point shouldn’t be relied on for production use.
To try out FreePBX 15, follow the following steps:
At this point you have done the equivalent of downloading and installing the module as if it had been available online. To complete the process, select the ’15 Upgrade Tool’ from the FreePBX Menu and follow the instructions on the screen to upgrade to the ALPHA version of FreePBX 15.









