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

Введение

Назначение

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

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

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

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

API → Сервер

При включении интерфейса событий вызовов автоматически открывается дополнительный фиксированный порт 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 абонент

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

Абоненты → 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 предназначено для инициирования вызовов без возможности отслеживания их состояния.