Функционал доступен при наличии лицензии SMG-API.

Функционал доступен только для SMG-3016 и SMG-2016.

Введение

Назначение

Данная документация описывает использование HTTP API шлюза SMG для реализации сценария Click-to-Call — инициирования вызова между абонентами через внешний сервис.

Предварительная настройка

Перед началом работы необходимо выполнить следующие шаги:

1. Настроить API сервер шлюза

  • Убедиться, что API сервер включён и настроены интерфейсы событий вызовов и системы

API → Сервер

При включении интерфейса событий вызовов автоматически открывается дополнительный фиксированный порт 3999, который используется для управления вызовом.

  • Порт, указанный в WEB-интерфейсе, используется только для защищённого (TLS) подключения в рамках интеграции с Битрикс24 (Приложение Х) и в данной документации не рассматривается
  • Для работы click-to-call используется порт 3999

Порт 3999 используется для click-to-call и не может быть изменён.

2. Получение токена авторизации

API ключ

API → Ключи

  • Используется значение ключа напрямую как токен

API аккаунт

Аккаунт должен иметь:

  • доступ к событиям вызовов

API → Аккаунты

Авторизация происходит по имени пользователя и паролю

curl -X POST http://<IP>:3999/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{"login":"<login>","password":"<password>"}'

Ответ:

{"status":"ok","version":"v1","payload":{"token":"Y3CupaVwSpDcmK83kxzSlymZhEIeib"}}


SIP абонент

Абонент должен иметь:

  • включённый доступ к API
  • заданный пароль

Абоненты → SIP абоненты

Авторизация происходит по номеру абонента и паролю

curl -X POST http://<IP>:3999/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{"login":"<number>","password":"<password>"}'

Ответ:

{"status":"ok","version":"v1","payload":{"token":"UjovsML3mIAzIs66zevqnQGElCjwrU"}}


Токены API аккаунта и SIP-абонента истекают через 20 минут неактивности. API ключ не имеет ограничения по времени действия.

Click-to-Call

Описание

Метод инициирует установление двухстороннего вызова:

  1. Сначала выполняется вызов абонента cdpn
  2. После получения сигнала 100 Trying инициируется вызов cgpn
  3. После ответа обоих абонентов устанавливается соединение

Параметры запроса

ПараметрОписание
from_numberномер инициирующего абонента (cgpn)
to_numberномер вызываемого абонента (cdpn)

Запрос:

curl -X POST "http://<IP>:3999/api/v1/service/call/make_call" \
  -H "accept: application/json" \
  -H "Authorization: Bearer UjovsML3mIAzIs66zevqnQGElCjwrU" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "_name": "in",
      "_content": [
        {
          "_name": "request",
          "_content": [
            {
              "_name": "make_call",
              "_attributes": {
                "to_number": "<cdpn>",
                "from_number": "<cgpn>"
              }
            }
          ]
        }
      ]
    }
  ]'

Ответ:

ok                                                                       

Особенности

  • API не возвращает структурированный JSON-ответ
  • Ответ всегда представляет собой строку ok

API предназначено для инициирования вызовов без возможности отслеживания их состояния.

  • Нет меток