Создание учетной записи провайдера sip-телефонии
Предварительные условия
-
Выполнить аутентификацию для выполнения запросов API.
-
В лицензии присутствует достаточное количество свободных лицензий для провайдеров sip-телефонии доступных для рабочего домена.
Операции
Подготовка лицензии (опционально)
В случае если лицензии на провайдеров не были распределены на домен выполнить следующие операции, а затем перейти к созданию учетной записи
1. Выполнить аутентификацию для выполнения запросов API в мастер домене.
2. Выделить лицензии рабочему домену, в котором будут создаваться учетные записи.
$ curl -b <cookie_file_path> \
-X POST \
-H 'Content-Type: application/json' \
-d '{"lic":<lic_params>}' \ (1)
<api_prefix>/rest/v1/domain/domains/<domain_id> (2)
1 | <lic_params> – параметры лицензиипередаваемые дочернему домену. |
2 | <domain_id> – идентификатор домена. |
Например:
$ curl -b curl-master.cookies \
-X PATCH \
-H 'Content-Type: application/json' \
-d '{"lic":{"siptrunks":111}}' \
http://192.168.0.35/rest/v1/domain/domains/a98ddbe8-3dce-45c2-d7e6-74d435997ea5
<domain_entity> (1)
1 | <domain_entity> – измененная сущность домена. |
3. Выполнить аутентификацию для выполнения запросов API в рабочем домене.
4. Зарезервировать лицензии в рабочем домене.
$ curl -b <cookie_file_path> \
-X PATCH \
-H 'Content-Type: application/json' \
-d '{"key":"licowned","value":<license_content>' \ (1)
<api_prefix>/rest/v1/domain/settings/licowned
1 | <license_params> – параметры лицензии. |
Например:
$ curl -b curl-worker.cookies \
-X PATCH \
-H 'Content-Type: application/json' \
-d '{"key":"licowned","value":{"siptrunks":111}}' \
http://192.168.0.35/rest/v1/domain/settings/licowned
<response_body> (1)
1 | <response_body> – информация о зарезервированных параметрах лицензии. |
Создание провайдера и маршрутизация
1. Создать провайдера sip-телефонии.
$ curl -b <cookie_file_path> \
-X POST \
-H 'Content-Type: application/json' \
-d '{"code":"<code>","username":"<username>","pwd":"<pwd>","domain":"<domain>","serveridx":<serveridx>}' \ (1) (2) (3) (4) (5)
<api_prefix>/rest/v1/uc/providers
1 | <code> – код провайдера. |
2 | <username> – имя пользователя. |
3 | <pwd> – пароль. |
4 | <domain> – SIP сервер. |
5 | <serveridx> – телефонный номер. |
Например:
$ curl -b curl-worker.cookies \
-X POST \
-H 'Content-Type: application/json' \
-d '{"code":"test_code","username":"test_username","pwd":"test_pwd","domain":"sipprovider.ru","serveridx":18}' \
http://192.168.0.35/rest/v1/uc/providers
{
"alternative_proxies": "",
"code": "test_code",
"domain": "sipprovider.ru",
"enabled": 1,
"expires": 3600,
"ext": {
"ct": "2019-11-01T13:42:40.20Z",
"lwt": "2019-11-01T13:42:40.20Z"
},
"extaddrs": "",
"id": "8f99ae11-016e-2734-2950-e0d55e0cd13e",
"lic": {
"siptrunks": 123456789
},
"localdomain": "",
"login": "",
"media": 0,
"opts": {
"agat_chassis_id": "",
"agat_lm_id": "",
"agat_port_id": "",
"comment": "",
"title": ""
},
"pingmode": "none",
"pingsrv": "",
"pingtimeout": 10,
"proxyaddr": "",
"proxyport": 0,
"pwd": "test_pwd",
"reg": 1,
"reinvite": 1,
"serveridx": 18,
"translit": 0,
"transport": "udp",
"trunksout": 99999,
"username": "test_username"
}
2. Создать вектор маршрутизации.
$ curl -b <cookie_file_path> \
-X POST \
-H 'Content-Type: application/json' \
-d '{"vector":"<vector_name>","priority":"<priority>"}' \ (1) (2)
<api_prefix>/rest/v1/uc/routes (3)
1 | <vector_name> – название вектора. |
2 | <priority> – приоритет вектора. |
Например:
$ curl -b curl-worker.cookies \
-X POST \
-H 'Content-Type: application/json' \
-d '{"vector":"test_docs_external","priority":"5001"}' \
http://192.168.0.35/rest/v1/uc/routes
{
"dir": "*",
"ext": {
"ct": "2019-11-01T09:22:45.29Z",
"lwt": "2019-11-01T09:22:45.29Z"
},
"fromdomain": "*",
"fromextaccount": "*",
"fromnumber": "*",
"id": "f4a6be68-016e-2764-7d83-e0d55e0cd13e",
"opts": {
"comment": "",
"title": ""
},
"periods": [],
"priority": 5001,
"schedule": "all",
"tonumber": "*",
"vector": "test_docs_external"
}
2. Создать правило маршрутизации.
$ curl -b <cookie_file_path> \
-X POST \
-H 'Content-Type: application/json' \
-d '{"vector":"<vector_name>","action":"external","toextaccount":"<ext_account_code>","priority":"<priority>"}' \ (1) (2) (3)
<api_prefix>/rest/v1/uc/vectorrules (3)
1 | <vector_name> – название вектора. |
2 | <priority> – код провайдера sip-телефонии. |
3 | <priority> – приоритет вектора. |
Например:
$ curl -b curl-worker.cookies \
-X POST \
-H 'Content-Type: application/json' \
-d '{"vector":"test_docs_external","action":"external","toextaccount":"test_code","priority":"5001"}' \
http://192.168.0.35/rest/v1/uc/vectorrules
{
"action": "external",
"dir": "*",
"ext": {
"ct": "2019-11-01T10:21:34.50Z",
"lwt": "2019-11-01T10:21:34.50Z"
},
"fromdomain": "*",
"fromextaccount": "*",
"fromnumber": "*",
"id": "e666cf51-016e-2766-620d-e0d55e0cd13e",
"modfromnumber": "T",
"modtonumber": "T",
"opts": {
"comment": "",
"title": ""
},
"periods": [],
"priority": 5001,
"schedule": "all",
"todomain": "",
"toextaccount": "test_code",
"tonumber": "*",
"vector": "test_docs_external"
}