Инструкция

Инструкция для чистого Asterisk

1. Настройка Битрикс24.

1.1

Под администратором портала устанавливаем приложение:
Для облачного портала (Битрикс24): Модуль для облака (с ежемесячной оплатой 990 р. в мес)


Для коробочной версии портала:
      1. Вариант: Модуль для коробочного Битрикс (стоимость 20 000 рублей)
      2. Вариант: Модуль для облака (с ежемесячной оплатой 990 р. в мес)
Оба модуля идентичны по функциональности


1.2

Предоставляем права пользователям на работу с приложением: Все приложения - Покупки - Интеграция с Asterisk - Установить права доступа, там выбираем "Все авторизованные пользователи".
Для коробочной версии приложения права доступа настраивать не надо.



1.3

Для текущего пользователя указываем его внутренний номер телефона: Имя сверху справа -> Изменить личные данные



1.4

Разрешаем вызов click2call: CRM - Настройки - Другое - Прочие настройки - Форматирование, там выберите для Формат вывода ссылок "callto": callto:74952128506



2. Приложение для Google Chrome

2.1

Устанавливаем приложение для Google Chrome на компьютере пользователя: https://chrome.google.com/webstore/detail/asterisk-bx24/laogaidlljofjlconckjgbfebdbknlbb


2.2

Настраиваем приложение:

Адрес портала - https://<ваш портал>.bitrix24.ru
Asterisk адрес - http://<ваш сервер>/bx24asterisk
Asterisk логин - bx24
Asterisk пароль - ASTERISKMANAGERPASSWORD (будет определен позднее)
Адрес портала и адрес сервера должны быть указаны без завершающих слешей.



3. Настройка сервера Asterisk

3.1

Включаем AMI и поддержку AJAM
/etc/asterisk/manager.conf:


[general]
enabled = yes
webenabled = yes
httptimeout=60
port = 5038
bindaddr = 0.0.0.0

Чтобы в консоль Asterisk не выводилась информация о каждом подключении модуля, добавьте параметр в секцию general:

displayconnects=no

Для применения настроек выполняем команду:

$ service asterisk reload

3.2

Настраиваем пользователя для получения доступа
/etc/asterisk/manager.conf:

[bx24]
secret = ASTERISKMANAGERPASSWORD (заданный здесь пароль необходимо прописывать в приложениях для Google Chrome)
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.0
read = cdr,reporting,originate
write = reporting,originate

Перечитываем конфиги Asterisk

$ service asterisk reload

3.3

Публикуем AJAM интерфейс на порту 8088 в режиме HTTP
/etc/asterisk/http.conf:


[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes

4. Серверная часть

4.1

В папке вашего сайта на сервере где развернут Астериск (обычно это папка /var/www/html) создаем каталог bx24asterisk

$ mkdir bx24asterisk

4.2

В папку bx24asterisk скачиваем архив http://bx24asterisk.itgro.ru/bx24asterisk.tar.gz и распаковываем его.

$ wget http://bx24asterisk.itgro.ru/bx24asterisk.tar.gz
$ tar xvf ./bx24asterisk.tar.gz

4.3

Все файлы с расширением .example переименовываем в .php

$ mv ./bx24asterisk_config.example ./bx24asterisk_config.php
$ mv ./bx24asterisk_parser.example ./bx24asterisk_parser.php

В итоге, в директории должны оказаться:

/bx24asterisk_admin
bx24asterisk.php
bx24asterisk_config.php
bx24asterisk_core.php
bx24asterisk_forward.php
bx24asterisk_parser.php
bx24asterisk_readme.md
index.html

4.4

Проверяем права: все файлы и папка bx24asterisk должны принадлежать пользователю, под которым запущен веб-сервер. Обычно, это asterisk:asterisk (но нужно проверить для конкретного случая). Права на файлы 644, на папку 755.

$ chown -R asterisk:asterisk /var/www/html/bx24asterisk

4.5

Настраиваем bx24asterisk_parser.php
Указываем корректную версию Asterisk в классе парсера: 11 для версии 11 и ниже, 13 для 12 и 13 версии Asterisk.

class LocalAsteriskParser extends AsteriskParser_13

4.6

Для удобства настройки серверной части мы разработали административный интерфейс, который находится по адресу: http://<ваш сервер>/bx24asterisk/bx24asterisk_admin/configure.php

4.7

Если Вам необходимо защитить паролем административную часть - надо переименовать файлы (в папке bx24asterisk_admin) .htaccess.example и .htpasswd.example в .htaccess и .htpasswd соответственно. Если пароль не нужен - просто пропустите этот шаг.
Переходим в папку /bx24asterisk_admin и из нее выполняем команду:

$ mv .htaccess.example .htaccess
$ mv .htpasswd.example .htpasswd

Затем нужно создать пароль для доступа в административную часть. Из директории /bx24asterisk_admin надо выполнить команду:

$ htpasswd .htpasswd username


Вместо "username" подставьте желаемое имя пользователя, и вам будет предложено создать для этого пользователя пароль.


Если Вы устанавливаете серверные скрипты в папку отличную от /bx24asterisk_admin - в файле .htaccess поправьте соответствующим образом путь в параметре AuthUserFile


4.6.1

Заполняем реквизиты подключения к Asterisk из http.conf (практически во всех случаях они будут совпадать с настройками по-умолчанию). И заполняем реквизиты MySQL сервера с данными CDR. Без верного указания этих параметров система будет неработоспособна.

В том случае, если установлен Elastix, или FreePBX, данные подключения к СУБД хранятся в файле /etc/amportal.conf

$ cat /etc/amportal.conf | grep AMPDB

4.6.2

Блок "Обработка звонков"


Максимальная длина внутреннего номера - если у Вас, например, трехзначные внутренние номера (101, 102, 103) впишите цифру 3. Если параметр указан неверно, то возможны проблемы с определением направления звонка (входящий/исходящий).
Возможные префиксы номеров - при попытке найти контакт/лид в базе CRM Битрикс24 мы пытаемся сделать это для разных вариаций. Например, если определился номер 83431234567, то при текущем наборе префиксов мы попытаемся найти в CRM контакты/лиды 3431234567, 1234567, +73431234567 и другие (к номеру будет добавлен префикс, если его нет и вырезан - если он есть). Постарайтесь сократить количество префиксов до минимума и указывать первыми самые используемые префиксы (например: 7, +7 и 8), т.к. каждый префикс - это запрос на поиск сущности в CRM.
CID всех внешних транков, с которых осуществляются звонки - здесь необходимо указать ваши внешние номера телефонов, этот параметр влияет на отображение всплывающих окон при звонке.


Сопоставление внешних номеров с источниками лидов - этот функционал позволяет автоматически заполнять поле "Источник" при создании нового лида. Например если у Вас несколько внеших номеров и Вы хотите знать по какому номеру до Вас дозвонился клиент (например один номер опубликован в газете, а другой на радио).
Добавить новые источники лидов можно в настройках CRM (CRM - Настройки - Справочники - Источники), для этого у Вас должны быть административные права на портале Битрикс24.
В левой части надо указать внешний номер (CID транка), а в правой - ID источника. ID источника можно узнать щелкнув правой кнопкой мыши в форме добавления нового лида на выпадающем списке, и выбрав "Посмотреть код".


Используемые вами контексты можно посмотреть в базе CDR. Для этого откройте в новой вкладке страницу SQL-клиент (http://<ваш сервер>/bx24asterisk/bx24asterisk_admin/sql.php).


В поле ввода впишите следующий запрос и нажмите кнопку "Выполнить":

SELECT src, dst, dcontext, channel, did FROM cdr GROUP BY dcontext


После этого пропишите те контексты (колонка dcontext), которые используются для входящих и исходящих звонков в полях Контексты входящих звонков и Контексты исходящих звонков. Если не будут указаны все контексты, использующиеся при звонках - возможны проблемы с созданием дел и лидов по результатам звонка.


4.6.3

Раздел "Портал"


Тип - укажите тип Вашего портала: облако - для облачной версии портала (Bitrix 24), коробка - для коробочной версии. Если тип портала выбран неверно - приложение в Google Chrome не сможет соединиться с порталом и не будет работать.
Внутренние номера администраторов - здесь Вы можете указать телефонные номера пользователей, которые обладают административными правами в CRM. Эти пользователи могут автоматически создавать дела за других пользователей у которых не установлено или не запущено приложение в Google Chrome. Если Вам не нужны такие пользователи - оставьте поля пустыми. Если не заполнить это поле - не будут создаваться дела по пропущенным звонкам.
ID пользователя портала, назначаемого ответственным за создаваемые лиды - это поле необходимо заполнить для обработки пропущенных звонков. Чтобы узнать ID пользователя - перейдите в его профиль, в адресной строке браузера будет ссылка вида https://bx24asterisk.bitrix24.ru/company/personal/user/16/, номер в этой ссылке (в данном примере - 16) и будет ID пользователя. Важно: для регистрации пропущенных звонков необходимо чтобы была заполнена настройка "Внутренние номера администраторов" (см. выше).
Автоматически создавать лиды для неизвестных абонентов - эта настройка позволяет автоматически создавать лида, если его номер телефона не найден в CRM. Если лиды/контакты будут создаваться только вручную - снимите "галочку" у этой настройки. Внимание! Если не будет создан лид или контакт с номером звонящего - дело не будет зафиксировано в CRM.
Обрабатывать пропущенные звонки - данная настройка позволяет обрабатывать звонки по которым разговор не состоялся. Для ее корректной работы должны быть установлены настройки "Внутренние номера администраторов", "ID ответственного за создаваемые лиды" и "Автоматически создавать лиды для неизвестных абонентов"


4.6.4

Раздел "Click to call"


Шаблон канала - если у Вас используются PJSIP-каналы - измените значение этого поля PJSIP/#FROM#
Шаблон Caller ID - это текст, который будет отображаться в окне во время звонка через функцию "Click to call"
Обычно менять эти настройки нет необходимости, поэтому можете оставить их по-умолчанию.


4.6.5

Раздел "Создание дел в CRM"


Количество записей, возвращаемое в запросе истории - наш модуль пытается создавать дела в CRM 1 раз в минуту, а также сразу после завершения разговора. Данный параметр полезно увеличить в том случае, если ваши сотрудники много общаются по телефону при выключеном браузере, либо если вы хотите загрузить историю звонков, совершенных до установки нашего решения
Дата, начиная с которой для звонков создаются дела в CRM - если сервер Asterisk работает достаточно давно и в его базе данных было зафиксировано большое количество звонков до установки нашего решения - есть вероятность создания большого количества новых лидов, если их номеров нет в CRM. Вы можете установить эту настройку для получения истории звонков начиная с определенной даты.
Дата, начиная с которой для пропущенных звонков создаются дела в CRM - если установлена настройка "Обрабатывать пропущенные звонки" и Ваша АТС работает достаточно давно - в базе данных может накопиться большое количество неотвеченных звонков, которые будут сконвертированы в лиды в CRM. Чтобы этого избежать - установите дату начиная с которой будут обрабатываться пропущенные звонки.


4.6.6

Раздел "Прочие настройки"


Время кеширования списка активных звонков в секундах - чтобы снизить нагрузку на Asterisk, мы кешируем обращения к нему. Не рекомендуем изменять значение этого параметра.
Полный путь до папки с записями разговоров - чаще всего, это /var/spool/asterisk/monitor. Если не указан путь - не будут проигрываться записи в делах.
Временная зона сервера - указывается для корректной передачи времени и даты создаваемых дел. Список доступных временных зон можно найти здесь: http://php.net/manual/en/timezones.php. Если временная зона выбрана неверно - при создании дел будет проставляться некорректное время звонка.
Записывать в лог сообщения уровня info - оставляйте включенной эту настройку только для отладки приложения, если оно работает некорректно. Лог-файл разрастается довольно быстро.
Записывать в лог сообщения уровня debug - обычно для отладки работы достаточно логов уровня info. Не оставляйте включенной эту настройку. Лог-файл разрастается довольно быстро.
Получать данные из 2ГИС - если во время звонка не найден контакт или компания в CRM Битрикс24 - приложение отправит запрос в базу 2ГИС, для поиска информации о компании. При создании лида данные полученные из 2ГИС (если компания найдена) автоматически подставятся в соответствующие поля.
Разрешить браузерным клиентам автоматически скачивать архив с последней версией приложения - для автоматического получения обновлений серверных скриптов оставьте эту натройку включенной.

В результате, у вас должны появиться зеленые галочки на соединении с Asterisk и порталом Битрикс24:



5. Автоматический перевод звонка на ответственного

5.1

Для перевода звонков в диалплане нужно создать контекст, на который звонок будет попадать ДО голосового приветствия. Пример контекста:

[bx24transfer]
exten => 1,1,Set(TOEXT=${CURL(http://localhost/bx24asterisk/bx24asterisk_forward.php?phone=${CALLERID(num)})})
exten => 1,n,GotoIf($[${TOEXT}]?from-internal,${TOEXT},1:ivr-2,s,1)

Логика работы у него следующая: в файл bx24asterisk_forward.php передается номер звонящего. Ответ присваивается переменной TOEXT. Следующим шагом проверяется существование значения этой переменной (в переменной должен быть внутренний номер ответственного за лид/контакт/компанию). Если номер получен - осуществляется перевод звонка на ответственного (from-internal,${TOEXT},1 - в контексте "from-internal" создается звонок на номер TOEXT). Если ответ не получен - звонок попадает на голосовое приветствие (например vr-2,s,1).


5.2

Заполняем поля раздела "Портал"



5.2.1

В поле "Адрес" вписываем адрес Вашего портала. Если при обращении к порталу используется нестандартный порт (отличный от 80) - укажите его в поле "Порт".

5.2.2

Для корректной работы перевода звонков на портале должен быть пользователь, которому доступен просмотр всех сущностей CRM (контакты, компании, лиды). Это может быть какуже существующий пользователь, так и специально созданный для этих целей. Логин и пароль этого пользователя надо указать в соответствующих полях настройки. Важно: если Вы указываете данные существующего пользователя - имейте в виду, что пользователь может поменять пароль.

5.3

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


6. После завершения настройки обязательно выполните проверку по чек-листу

6.1

Проверяем появление окна



6.1.1

Окно появилось при входящем вызове

6.1.2

Окно появилось при входящем разговоре (желательно, разговор с номером, присутствующим в вашей базе контактов, или лидов)

6.1.3

Окно появилось при исходящем вызове

6.1.4

Окно появилось при исходящем разговоре (желательно, разговор с номером, присутствующим в вашей базе контактов, или лидов)

6.2

Проверяем создание дел: CRM



6.2.1

Появилось дело для завершенного входящего разговора в п 1.2

6.2.2

Появилось дело для завершенного исходящего разговора в п 1.4

6.2.3

Если включена запись звонков на АТС - в разделе дела "Описание" должен появиться проигрыватель в котором прослушивается запись звонка. А также должна быть работающая ссылка на скачивание файла записи.

6.3

Проверяем click2call



6.3.1

Нажмите на номер телефона контакта, должен пройти входящий вызов, подымите трубку, должен пойти исходящий вызов контакту

6.4

Проверяем создание лидов для совершенных разговоров (только если в bx24asterisk_config.php установлено 'create_leads_for_unknown_callers' => true)

6.4.1

Совершите разговор с неизвестным номером телефона, проверьте наличие нового лида

6.5

Проверяем пропущенные вызовы

6.5.1

Совершите входящий звонок и не дожидаясь ответа абонента повесьте трубку

6.5.2

Если функционал пропущенных вызовов настроен правильно (включено автосоздание лидов, назначен администратор и назначен ответственный за пропущенные вызовы) - через некоторое время должно появиться дело с названием "Пропущенный звонок". Если Вы звонили с номера, которого нет в CRM - должен создаться новый лид. Если номер есть в CRM - дело привяжется к существующему лиду/клнтакту/компании. Ответственный за дело - пользователь CRM, указанный в настройках.

6.6

Проверяем функционал перевода звонка на ответственного (если он настроен)

6.6.1

Совершите входящий звонок с номера, который есть в CRM и для которого назначен ответственный. У ответственного в профиле должен быть указан внутренний номер.

6.6.2

Звонок должен перейти на ответственного за сущность (лид/контакт/компанию).

7. Если что-то пошло не так

7.1

Откройте страницу "Проверка системы" в интерфейсе администрирования (http://<ваш сервер>/bx24asterisk/bx24asterisk_admin/check.php)



Проверьте, что все параметры в колонке "Текущее значение" были отмечены зеленым цветом и нет сообщений об ошибках.

7.2

Откройте страницу "Активные звонки" (http://<ваш сервер>/bx24asterisk/bx24asterisk_admin/active_calls.php) и введите логин и пароль (такие же как в приложении для Google Chrome)



Во время разговора массив "calls" должен быть заполнен. В его элементах "from" и "to" должны правильно отображаться номер звонящего и номер абонента, которому звонят.
Если это не так - проверьте правильно ли указана версия Asterisk в парсере (п. 4.5) и верно ли определены контексты входящих/исходящих звонков (п. 4.6.2).

7.3

Если во время тестирования возникли вопросы или что-то не работает – напишите нам в skype: itgro.bx24 или в онлайн-чат и мы поможем.

Первые 14 дней бесплатно

Вы ничем не рискуете, попробуйте
все возможности прямо сейчас!