Подключить FreePBX к МойСклад

Результат: при звонке сотрудник видит в МойСклад карточку звонка с контрагентом, звонок с длительностью и записью попадает в журнал звонков МойСклад, а незнакомые номера превращаются в контрагентов, заказы покупателя или задачи по вашим правилам.

МойСклад работает только с FreePBX и Asterisk, транки на chan_sip и chan_pjsip подходят оба. Yeastar S и P с МойСклад не подключаются.

Что потребуется

Что Откуда
Администратор МойСклад Включает телефонию и выпускает ключи от своего имени (шаги 1 и 2)
Внутренние номера сотрудников на FreePBX Вписываются в МойСклад на шаге 1
Публичный адрес FreePBX и пароль AMI-пользователя callbee Настройка AMI
Ссылка на записи Публикация записей

Шаг 1. Включите телефонию в МойСклад

  1. В МойСклад откройте Решения → Мои решения → МойСклад Phone API. Если решения нет в списке, найдите его в Каталоге решений, раздел «Телефония», и установите.
  2. В поле «Адрес провайдера телефонии» вставьте https://api.callbee.io/crm/moysklad, именно с https://. На этот адрес МойСклад отправляет звонок по клику на номер.
  3. Нажмите «Создать новый ключ доступа» и скопируйте значение «Ключ доступа». Это ключ Phone API для шага 3.
  4. В блоке «Внутренние номера» впишите напротив каждого сотрудника, который работает со звонками, его внутренний номер на FreePBX, например 300. По этому номеру МойСклад решает, кому показать карточку звонка, а Callbee при создании интеграции берёт отсюда внутренние номера сотрудников.
  5. Отметьте «Установлено» и нажмите «Сохранить».
Окно «МойСклад Phone API»: адрес провайдера, ключ доступа, внутренние номера, флажок «Установлено»
Окно «МойСклад Phone API»: адрес провайдера, ключ доступа, внутренние номера, флажок «Установлено»

Шаг 2. Создайте токен JSON API

Через JSON API Callbee ищет и создаёт контрагентов, создаёт заказы и задачи и загружает справочники: сотрудников, юрлица, статусы заказов.

  1. Войдите в МойСклад под администратором, откройте меню пользователя (имя справа вверху) → «Настройки».
  2. Слева выберите Обмен данными → Токены и нажмите «+ Токен».
  3. Скопируйте токен: он понадобится на шаге 3.
Раздел «Обмен данными → Токены» в настройках МойСклад
Раздел «Обмен данными → Токены» в настройках МойСклад

Шаг 3. CRM & PBX

В my.callbee.io откройте Интеграции и нажмите «Создать».

Шаг 1 мастера для МойСклад: выбор CRM, ключ Phone API, ключ JSON API, PBX
Шаг 1 мастера для МойСклад: выбор CRM, ключ Phone API, ключ JSON API, PBX
Поле Значение
Выбор CRM MOYSKLAD
Ключ Phone API ключ доступа из шага 1
Ключ JSON API токен из шага 2
PBX ASTERISK

Адрес аккаунта вводить не нужно: Callbee определяет аккаунт МойСклад по ключу JSON API. Подсказка «Подключение МойСклад» в мастере повторяет шаги 1 и 2, а кнопка «Копировать» копирует адрес https://api.callbee.io/crm/moysklad.

Нажмите «Продолжить».

Шаг 4. AMI

Шаг 2 мастера: AMI сервер, имя пользователя callbee, пароль
Шаг 2 мастера: AMI сервер, имя пользователя callbee, пароль
Поле Значение
AMI сервер публичный адрес FreePBX и порт через двоеточие: pbx.company.by:5038
AMI имя пользователя callbee — имя секции в manager_custom.conf
AMI пароль пароль из той же секции, без пробелов в начале и конце

Все три поля обязательны: без имени пользователя или пароля мастер покажет под полем Username is a required field или Secret is a required field и дальше не пустит.

Нажмите «Продолжить».

Шаг 5. Asterisk

Шаг 3 мастера: ссылка на запись разговора, игнорировать линии
Шаг 3 мастера: ссылка на запись разговора, игнорировать линии
Поле Значение
Ссылка на запись разговора адрес, по которому папка записей FreePBX открывается из интернета, например https://recs.company.by/; адрес с /monitor или /monitor/ на конце тоже подойдёт
Игнорировать линии (DID) городские номера, звонки на которые не нужно передавать в МойСклад, через пробел. Обычно пусто

Запись передаётся в МойСклад ссылкой, файл остаётся на АТС, поэтому адрес должен открываться из интернета. Рекомендуем HTTPS с действующим сертификатом: МойСклад открыт по HTTPS, и запись по http:// браузер может не проиграть. Как строится ссылка — Звонки в МойСклад, раздел «Записи разговоров».

Поле можно оставить пустым и заполнить позже на вкладке «Инфо» (шаг 8). Пока оно пустое, ссылки на записи ведут на https://norecordsurl.local/ и не открываются, а в «Логах» интеграции при запуске появляется NO RECORD URL.

Нажмите «Продолжить».

Шаг 6. Все линии (DID)

Шаг 4 мастера: режим при исходящем вызове и режим входящих линий
Шаг 4 мастера: режим при исходящем вызове и режим входящих линий

Что создавать в МойСклад, если номер, с которого звонят или на который звонит сотрудник, в МойСклад не найден.

Поле Значения
Режим при исходящем вызове Ничего, Контрагент, Контрагент + Заказ
Входящие линии Ничего, Задача, Контрагент, Контрагент + Заказ — для всех городских номеров, у которых нет своей линии

По умолчанию в обоих полях стоит «Контрагент». Что делает каждый режим — Звонки в МойСклад. Юрлицо и статус заказа мастер не спрашивает, а ответственного за линию ставит сам: проверьте и при необходимости смените их после создания (шаг 10).

Нажмите «Продолжить».

Шаг 7. Регион

Шаг 5 мастера: регион и часовой пояс, кнопка «Создать»
Шаг 5 мастера: регион и часовой пояс, кнопка «Создать»
Поле Значение
Регион код региона, где развёрнут ваш сервис Callbee: BY — Беларусь, RU — Россия, DE — Финляндия и остальная Европа
Часовой пояс пояс офиса, например Europe/Minsk; по умолчанию подставляется пояс вашего браузера

В этом поясе Callbee пишет время звонка в МойСклад и в комментарий заказа, по нему же работают расписания умной маршрутизации.

Нажмите «Создать». Интеграция создаётся с пробной лицензией TRIAL на 14 дней и сразу получает статус ACTIVE.


Шаг 8. Проверьте карточку интеграции

Новая интеграция появится в разделе «Интеграции»: MOYSKLAD / ASTERISK, название аккаунта МойСклад, лицензия и число пользователей.

Список «Интеграции» с интеграцией МойСклад
Список «Интеграции» с интеграцией МойСклад

Чтобы открыть карточку, нажмите на ID интеграции или на кнопку настроек справа в строке. В карточке слева — состояние интеграции, кнопки запуска, перезапуска и остановки, «ID интеграции», «Аккаунт МойСклад», версия, регион и лицензия. Справа вкладки «Инфо», «Линии», «Пользователи», «Лицензия», «Логи».

Вкладка «Инфо» интеграции МойСклад: журнал звонков, настройка AMI, настройки, регион
Вкладка «Инфо» интеграции МойСклад: журнал звонков, настройка AMI, настройки, регион

На вкладке «Инфо» четыре блока, у каждого кнопка «Редактировать»:

Блок Что в нём
Журнал звонков подключён ли журнал звонков кабинета (пункт меню «Журнал звонков»). Журнал наполняет отдельный сервис на АТС, он ставится командой из этого блока; до этого блок показывает «не активен». На звонки в МойСклад журнал не влияет. Имена клиентов из МойСклад в журнал кабинета не подставляются
Настройка AMI Сервер, Имя пользователя, Пароль — из шага 4
Настройки Аккаунт МойСклад, Ключ Phone API, Ключ JSON API, Управление пользователями МойСклад, Ссылка на запись разговора, Игнорировать линии (DID)
Регион Регион, Часовой пояс — из шага 7
Форма «Редактировать настройки»: ключи МойСклад, переключатель «Управление пользователями МойСклад», ссылка на запись
Форма «Редактировать настройки»: ключи МойСклад, переключатель «Управление пользователями МойСклад», ссылка на запись

Изменения на вкладках применяются без перезапуска интеграции, кроме адреса, имени пользователя и пароля AMI и ключей МойСклад: после их изменения перезапустите интеграцию кнопкой в карточке.

Шаг 9. Включите сотрудников

Список сотрудников и их внутренние номера Callbee берёт из МойСклад: при создании интеграции и по кнопке «Синхронизация» на вкладке «Пользователи». Сам список не обновляется: если вы добавили сотрудника или поменяли внутренний номер в МойСклад, нажмите «Синхронизация».

Кто участвует в звонках, решает переключатель «Управление пользователями МойСклад» на вкладке «Инфо», блок «Настройки»:

Переключатель Кто участвует в звонках Что видно на вкладке «Пользователи»
OFF (по умолчанию) все сотрудники из списка с внутренним номером, в пределах лицензии. Умная маршрутизация, AA и MR не работают ID пользователя и Номер, без настроек
ON только сотрудники с флажком «Активный». Новый сотрудник выключен, пока вы его не отметите Активный, ID пользователя, Номер, Умная маршрутизация, AA, MR, Редактировать
Вкладка «Пользователи» при выключенном управлении пользователями
Вкладка «Пользователи» при выключенном управлении пользователями

Чтобы настроить сотрудников по одному, включите «Управление пользователями МойСклад» («Редактировать» в блоке «Настройки» → переключатель → «Сохранить») и откройте вкладку «Пользователи»:

  1. У сотрудника нажмите «Редактировать» в конце строки.
  2. Отметьте «Активный».
  3. Проверьте «Номер»: он должен совпадать с внутренним номером сотрудника в МойСклад (шаг 1) и на FreePBX. Иначе карточка звонка уйдёт не тому сотруднику или никому.
  4. Для умной маршрутизации отметьте «Умная маршрутизация» и нажмите кнопку расписания рядом: по умолчанию пн–пт 09:00–18:00, суббота и воскресенье выключены.
  5. При необходимости отметьте AA (автоответ: при звонке по клику телефон сотрудника снимет трубку сам) или MR (номер зарегистрирован на нескольких устройствах: при звонке по клику вызов пойдёт на все). Если отмечены оба, действует MR, автоответа нет.
  6. Сохраните строку.
Вкладка «Пользователи» при включённом управлении пользователями: активный, номер, умная маршрутизация, AA, MR
Вкладка «Пользователи» при включённом управлении пользователями: активный, номер, умная маршрутизация, AA, MR
Окно «Время умной маршрутизации»: дни недели и часы
Окно «Время умной маршрутизации»: дни недели и часы

Активных сотрудников может быть не больше, чем лицензий: счётчики «Всего лицензий» и «Активные пользователи» — в левой части карточки.

Шаг 10. Настройте линии

Откройте вкладку «Линии».

Вкладка «Линии»: исходящие звонки и входящие линии
Вкладка «Линии»: исходящие звонки и входящие линии

Исходящие звонки. Нажмите «Редактировать», выберите «Режим при исходящем вызове» и сохраните. В режиме «Контрагент + Заказ» появляется «Статус заказа», а если в МойСклад несколько юрлиц — ещё и «Юрлицо».

Входящие линии. Строка All lines действует на все городские номера, у которых нет своей линии. Мастер создаёт её сам и сам ставит ответственного: проверьте его и при необходимости смените. Нажмите «Редактировать» в её строке и проверьте поля. Чтобы задать правила для отдельного номера, нажмите «Добавить линию».

Окно «Добавить линию (DID)»
Окно «Добавить линию (DID)»
Поле Что делает
Линия (DID) городской номер, как его передаёт FreePBX
Описание подпись для себя
Пользователь (ответственный за пропущенные) ведёт созданного контрагента и заказ, получает задачи
Входящие линии что создать при входящем с номера, которого нет в МойСклад: Ничего, Задача, Контрагент, Контрагент + Заказ
Юрлицо, Статус заказа на какое юрлицо и в каком статусе создаётся заказ в режиме «Контрагент + Заказ»; «По умолчанию» — первый статус заказа в МойСклад
Задача по пропущенному задача ответственному по каждому пропущенному входящему, в любом режиме
Умная маршрутизация, УМ по времени перевод входящего от известного контрагента на его владельца в МойСклад, в указанные часы; у сотрудника умная маршрутизация тоже должна быть включена (шаг 9)

Списки юрлиц, статусов и сотрудников Callbee берёт из МойСклад при создании интеграции. Если вы добавили их в МойСклад позже, нажмите «Синхронизация» на вкладке «Линии».

Сотрудники в списке «Пользователь» и на вкладке «Пользователи» показаны началом их ID в МойСклад, имена кабинет не хранит. Чтобы понять, кто есть кто, сверьте ID с колонкой «Номер» на вкладке «Пользователи».

Проверка

Интеграция должна быть со статусом ACTIVE. Откройте вкладку «Логи»: после запуска в ней появляются строки +++ integration start +++ employees: N, employees | … | count N, где N — число сотрудников в звонках, и AMI connected -> <адрес>, handler is ready.

  1. Позвоните с мобильного, которого нет в МойСклад, на городской номер компании. У сотрудника, чей внутренний номер звонит, в МойСклад появится карточка звонка.
  2. Ответьте, поговорите несколько секунд и положите трубку. В журнале звонков МойСклад появится звонок с длительностью и ссылкой на запись. По режиму линии появятся контрагент auto <номер>, заказ или задача. Журнал звонков МойСклад — CRM → Звонки: время, тип, номер, контрагент, сотрудник, длительность разговора, комментарий и ссылка на запись. Нажмите «Запись» в строке звонка: запись должна открыться и проиграться.
  3. Позвоните с другого мобильного и не отвечайте. В журнале появится пропущенный звонок с комментарием Пропущенный вызов, линия <городской номер>, а при включённой «Задаче по пропущенному» ответственный линии получит задачу Пропущенный звонок с <номер> на <городской номер>.
  4. Нажмите на номер контрагента в МойСклад. Сначала зазвонит внутренний телефон сотрудника, после ответа АТС наберёт клиента. Если сотрудник не ответил за 12 секунд, звонок отменяется. Пока АТС соединяет, МойСклад показывает окно «Исходящий звонок» с контрагентом и номером.

Если что-то не работает

Симптом или строка в «Логах» Причина и что делать
LICENSE NOT VALID Лицензия не активна, интеграция остановлена. Проверьте вкладку «Лицензия»
moysklad keys check failed (phone_token / json_api_token), stop МойСклад не принял ключ Phone API или токен JSON API. Выпустите их заново (шаги 1 и 2), вставьте в блоке «Настройки» на вкладке «Инфо» и перезапустите интеграцию
moysklad is unavailable (…), stop МойСклад не ответил после трёх попыток при запуске. Интеграция перезапустится сама; если строка повторяется, проверьте, открывается ли МойСклад
AMI authentication failed Неверное имя или пароль AMI. Настройка AMI
Connection failed (<адрес>, 5038)… Порт 5038 закрыт для Callbee. IP-адреса
Карточка не появляется у сотрудника Включено «Управление пользователями МойСклад», а сотрудник не отмечен «Активный»; его номер в кабинете не совпадает с внутренним номером в МойСклад; один внутренний номер записан у двух сотрудников — карточку получает только первый; городской номер в «Игнорировать линии (DID)»
Умная маршрутизация не переводит У контрагента нет владельца в МойСклад, или владелец не участвует в звонках (без номера, сверх лицензии, не отмечен «Активный»); выключено «Управление пользователями МойСклад»; у владельца не отмечена умная маршрутизация или сейчас вне его расписания; у линии не отмечена «Умная маршрутизация» или сейчас вне её часов
NO RECORD URL Не заполнена «Ссылка на запись разговора» в блоке «Настройки»
link record not found FreePBX не записал этот разговор. Проверьте, что запись разговоров на АТС включена
Ссылка «Запись» в CRM → Звонки не открывается или не играет Адрес записей не открывается из интернета или опубликован по http://. Публикация записей, рекомендуем HTTPS
organization is not set and account has N organizations, order not created Выберите «Юрлицо» в линии или в исходящих звонках
no responsible user, task not created Выберите «Пользователя» в линии
line "0" is missing in settings, … Нет линии All lines: добавьте её на вкладке «Линии»
license maxusers=N, dropped extensions: […] Сотрудников больше, чем лицензий: перечисленные внутренние номера в звонках не участвуют. Увеличьте лицензию или выключите лишних сотрудников
tz error '<имя>', fallback to Europe/Minsk Неизвестный часовой пояс: исправьте его в блоке «Регион» на вкладке «Инфо»
ami settings and moysklad keys changed, restart the integration to apply them Вы изменили AMI или ключи МойСклад: перезапустите интеграцию
click to call error - … not found in extension list Сотрудник не участвует в звонках на вкладке «Пользователи»
click to call error - … has no internal number У сотрудника пустой «Номер» на вкладке «Пользователи»
click to call <номер> status 1 / InUse Внутренний номер сотрудника занят
Клик по номеру в МойСклад: окно «Исходящий звонок» висит на «Соединение…», телефон сотрудника не звонит Проверьте «Адрес провайдера телефонии» в окне «МойСклад Phone API»: должно быть https://api.callbee.io/crm/moysklad (шаг 1)

Другие случаи: Решение проблем.