В данном приложении описано использование HTTP(S) API шлюза SMG для реализации сценария Click-to-Call – инициирования вызова между абонентами через внешний сервис.
Предварительная настройка
Перед началом работы необходимо выполнить следующие шаги:
1. Настроить API-сервер шлюза
- Убедиться, что API-сервер включен;
- Настроить интерфейс событий "Вызовы":
- Выбрать сетевой интерфейс;
- Указать порт;
- При необходимости включить TLS. В этом случае запросы будут выполняться по протоколу HTTPS.
API → Сервер
2. Получение токена авторизации
API ключ
API → Ключи
- Используется значение ключа напрямую как токен.
API аккаунт
Аккаунт должен иметь доступ к событиям вызовов.
API → Аккаунты
Авторизация происходит по имени пользователя и паролю
curl -X POST http://<IP>:<call_port>/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>:<call_port>/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
Описание
Метод инициирует установление двухстороннего вызова:
- Выполняется вызов абонента cdpn;
- После получения сигнала 100 Trying инициируется вызов cgpn;
- После ответа обоих абонентов устанавливается соединение.
Для инициирования вызова с помощью метода /make_call необходимо, чтобы для абонента-инициатора (CGPN, параметр from_number) был включен доступ к API (Абоненты → SIP-абоненты → Доступ к API).
Параметры запроса
| Параметр | Описание |
|---|---|
| from_number | Номер инициирующего абонента (cgpn). Для указанного абонента должен быть включен доступ к API |
| to_number | Номер вызываемого абонента (cdpn) |
Запрос:
curl -X POST "http://<IP>:<call_port>/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 предназначено для инициирования вызовов без возможности отслеживания их состояния.



