Page tree
Skip to end of metadata
Go to start of metadata

WebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. Благодаря данному протоколу, у разработчиков появляется много возможностей для интеграции сервиса онлайн АТС с веб-приложениями при помощи javascript.

(warning) Для работы используем версию socket.io-client 0.9.0.

(warning) Все примеры websocket api, приведенные ниже, работают с библиотекой api.onlinepbx.ru/lib/onpbx_ws_api_2.js.

(warning) Библиотека для использования на сервере: https://www.npmjs.com/package/onpbx-ws-api.

(warning) Ваши вопросы по работе с API вы можете задать, написав на почту support@onlinepbx.ru.





Подключение

Инициализация подключения — onpbx.connect({параметры})

onpbx.connected — переменная содержит статус подключения к WS:// ( true | false )

ОпцияПримечаниеОписание опции
domainобязательноДоменное имя для подключения.
keyобязательноAPI-ключ.

Пример:


{
  "domain": "demo.onpbx.ru",
  "key": "123"
}


Команды

onpbx.command ("команда", {параметры}, [колбэк функция])

1. "make_call" — совершить звонок.
ОпцияПримечаниеОписание опции
fromобязательноКто (номер абонента или внешний).
toобязательноКому соединить (любой номер).
from_orig_number
Номер, который высветится у вызываемого.
from_orig_name
Имя, которое высветится у вызываемого.
domain_to
Домен, на который нужно отправить звонок по умолчанию совпадает с доменом звонящего.
from_name
Имя, которое высветится у того, для кого вызываем.
gate_from
Транк для звонка вызываемого (если не указан, то выбирается автоматически в соответствии с правилами набора, если указан то правила игнорируются и изменения номера не производится).
gate_to
Транк для звонка тому, с кем нужно соединить.

Запрос:


{
  "from": "77777777777",
  "to": "88001006729",
  "from_orig_number": "88001006729",
  "from_orig_name": "onlinePBX inc.",
  "domain_to": "example.onpbx.ru",
  "from_name": "Vasya",
  "gate_from": "73432048020",
  "gate_to": "73432048020"
}

Ответ:


{
  "status": true,
  "data": {
    "uuid": "ac1fc137-265e-460b-8f5d-151bd389484e"
  },
  "hash": "wILGN1lQsS3ptIuW"
}



2. "transfer" — перевод активной сессии на другой номер.
ОпцияПримечаниеОписание опции
uuidобязательноuuid сессии.
toобязательноКуда нужно перевести (любой номер).
gate_to
Аналогично make_call.
domain_to
Аналогично make_call.

Запрос:


{
  "uuid": "19ff59fb-2cfc-1230-66b7-00199988ac0c",
  "to": "88001006729",
  "gate_to": "73432048020",
  "domain_to": "example.onpbx.ru"
}

Ответ:


{
  "status": true,
  "hash": "IBundefinedEGEzdoGXp3KR3"
}
3. "bridge" — соединение двух активных сессий.
ОпцияПримечаниеОписание опции
uuidобязательноuuid сессии.
to_uuidобязательноuuid второй сессии.

Запрос:


{
  "uuid": "19ff59fb-2cfc-1230-66b7-00199988ac0c",
  "to_uuid": "c519f6b8-283f-4c1b-bfec-5042a1592d68"
}

Ответ:


{
  "status": true,
  "hash": "t33Xfa9tcjcN4qA0"
}
4. "eavesdrop" — подключение к активной сессии для прослушки.
ОпцияПримечаниеОписание опции
uuidобязательноuuid сессии к которой нужно подключиться.
fromобязательноВнутренний или внешний номер.
gate_from
Аналогично make_call.

Запрос:


{
  "uuid": "19ff59fb-2cfc-1230-66b7-00199988ac0c",
  "from": "222",
  "gate_from": ""
}

Ответ:


{
  "status": true,
  "data": {
    "uuid": "1582f1d4-4afc-468c-8658-b89aaf56edd3"
  },
  "hash": "gUr3K5tdQundefinedqbW4E6"
}
5. "hangup_call" — завершение звонка.
ОпцияПримечаниеОписание опции
uuidобязательноuuid сессии.

Запрос:


{
  "uuid": "19ff59fb-2cfc-1230-66b7-00199988ac0c"
}

Ответ:


{
  "status": true,
  "hash": "t33Xfa9tcjcN4qA0"
}
6. "subscribe" — изменение подписки на события.
ОпцияПримечаниеОписание опции
eventsобязательноОбъект событий для изменения, либо строка 'list' для вывода списка. Ниже указаны параметры по умолчанию, не забудьте включить нужный.
calls
Каналы/звонки.
blf
Статусы абонентов.
messages
Сообщения.
callback
Колбэк строчка.
api
Функция в разработке.
registration
Регистрации.

Запрос:


{
  "events": {
    "calls": false,
    "blf": true,
    "messages": false,
    "callback": true,
    "api": false,
    "registration": false
  }
}

Ответ:


{
  "status": true,
  "text": "Subscriptions are updated",
  "data": {
    "calls": false,
    "blf": true,
    "fax": false,
    "conference": false,
    "messages": false,
    "callback": true,
    "api": false,
    "registration": false
  },
  "hash": "HzYgQQwjE28xkYYw"
}
7. "reboot_phone" — перезагрузить телефон (работает только на cisco и некоторых моделях yealink).
ОпцияПримечаниеОписание опции
numобязательноНомер телефона.
model
Модель телефона (yealink/cisco).

Запрос:


{
  "num": "222",
  "model": "yealink"
}

Ответ:


{
  "status": true,
  "hash": "h6zTtouUrY6EYfd6"
}
8. "reloadgw" - перезагрузить транк.
ОпцияПримечаниеОписание опции
numобязательноНомер транка.

Запрос:


{
  "num": "73432048020"
}

Ответ:


{
  "status": true,
  "hash": "D4jah0CA7czPpAhl"
}
9. "sip_message" — отправить sip-сообщение (не поддерживается некоторыми телефонами и веб-клиентами).
ОпцияПримечаниеОписание опции
numобязательноНомер телефона.
textобязательноТекст сообщения (максимум 200 символов).

Запрос:


{
  "num": "222",
  "text": "Hello World!"
}

Ответ:


{
  "status": true,
  "hash": "Qd4PelbvCram9Vni"
}
10. "flush_reg" — удалить регистрацию абонента (не сможет принимать звонки до повторной регистрации).
ОпцияПримечаниеОписание опции
numобязательноНомер телефона.

Запрос:


{
  "num": "222"
}

Ответ:


{
  "status": true,
  "hash": "OaEVdkhgL7bBuR2T"
}
11. "trunk_list" — список транков и их состояние (нет параметров).
ОпцияПримечаниеОписание опции
data
Переменная data в колбэк функции.
extension
Номер транка.
desc
Название транка.
dest
Номер назначения в АТС.
uri
SIP-адрес.
status
Cтатус регистрации.

Запроса нет, так как нет параметров.

Ответ:


{
  "status": true,
  "data": [
    {
      "extension": "88001006729",
      "desc": "zebra",
      "dest": "6201",
      "uri": "005815@sip.zebra.ru",
      "status": "REGED"
    }
  ],
  "hash": "9lbCrsfPXD6optBT"
}
12. "user_list" — список зарегистрированных пользователей (нет параметров).
ОпцияПримечаниеОписание опции
data
Переменная data в колбэк функции.
name
Имя пользователя.
local_ip
Локальный адрес.
local_port
Локальный порт.
exp
UNIX timestamp времени когда закончится регистрация.
realm
SIP-домен.
uid
Внутренний номер.
ip
Внешний адрес.
port
Внешний порт.
agent
Устройство пользователя.

Запроса нет, так как нет параметров.

Ответ:


{
  "status": true,
  "data": [
    {
      "name": "Vyacheslav",
      "local_ip": "172.27.0.58",
      "local_port": "5060",
      "exp": 1375525567000,
      "realm": "example.onpbx.ru",
      "uid": "222",
      "ip": "213.222.45.85",
      "port": "5060",
      "agent": "Cisco/SPA303-7.4.9c"
    }
  ],
  "hash": "Vlltjwe5XXKfVAa4"
}
13. "message" — рассылка сообщения другим подключенным клиентам в этом домене.
ОпцияПримечаниеОписание опции
dataобязательноИнформация, которую нужно отправить (строка, объект или число).
target
По умолчанию — 'domain'. Допустимо два значения: 'domain' — отправит сообщение всем в пределах домена и 'browser' — отправит сообщения во все открытые вкладки отправителя.

Запрос:


{
  data : "Hi All!"
  target : "domain"
}

Ответ:


{
  "status": true,
  "hash": "SKP6Gu1cLeJdjxel"
}
14. Ответ при ошибке.
ОпцияОписание опции
statusСтатус.
textТекст ошибки.

Пример ответа при ошибке:


{
  "status": false,
  "text": "CALL_REJECTED",
  "hash": "mAXgxFJundefinedvspIYGfc"
}

К содержанию



События

onpbx.on ("событие", function(data){...})

1."connect" - Событие о подключении к WS://.
ОпцияПримечаниеОписание опции
data
undefined.

В событии нет данных.

2. "disconnect" — Событие о отключении от WS://.
ОпцияПримечаниеОписание опции
data
undefined.

В событии нет данных.

3. "blf" — состояние абонентов (в сети, разговаривает, звонит).
ОпцияПримечаниеОписание опции
uid
Внутренний номер пользователя.
status
Статус (событие).
direction
Направление звонка ("in" / "out").
rank
Приоритет вкладки в браузере ("master" / "slave"). Master всегда только одна, остальные slave.
other_leg
Второй участник.
uuid
Уникальный идентификатор сессии.
timestamp
Время создания эвента (в формате UNIX timestamp - http://www.unixtimestamp.com/index.php).

Пример:


data:{
  "uid": "204",
  "status": "ringing",
  "direction": "out",
  "rank": "master",
  "other_leg": "73432048020",
  "uuid": "22c9e591-3784-4c64-8ebf-c8bfcef17776",
  "timestamp": 1452498750
}
4. "registration" — попытки регистрации пользователей.
ОпцияПримечаниеОписание опции
uid
Номер пользователя.
agent
Устройство пользователя.
state
Состояние регистрации: pre_register" — первичный запрос на регистрацию; "register_attempt" — запрос с логином/паролем; "register" — регистрация прошла успешно.
ip
Внешний IP адрес устройства.
port
Внешний порт.
expires
Секунд до окончания регистрации.

Пример:


data:{
  "uid": 201,
  "agent": "Cisco SPA303-g2",
  "state": "register",
  "ip": "8.8.8.8",
  "port": 5060,
  "expires": 3600
}
5. "channel_create" — создание нового канала.
ОпцияПримечаниеОписание опции

uuid


Идентификатор канала.
direction
«Направление канала» относительно АТС (inbound/outbound).
created_stamp
Время создания канала в формате unix timestamp.
state
Состояние канала.
endpoint
Конечная точка.
domain
SIP-домен.
caller_number
Номер звонящего.
caller_name
Имя звонящего.
destination_number
Номер назначения.
destination_host
SIP-домен назначения.
gate
Транк (номер телефона).
diversion
RDNIS промежуточный номер при переадресации.

Пример:


data:{
  "uuid": "5dc1cdca-9e80-4b94-9633-asdasdadasa",
  "direction": "inbound",
  "created_stamp": 1440864124272,
  "state": "CS_INIT",
  "endpoint": "9090001122",
  "domain": "example.onpbx.ru",
  "caller_number": "9090001122",
  "caller_name": "9090001122",
  "destination_number": "555",
  "destination_host": "555.127.255.XXX",
  "gate": "4951112233",
  "diversion": "555@XXX.145.43.XXX:5061"
}
6. "channel_destroy" — удаление канала.
ОпцияПримечаниеОписание опции
uuid
Идентификатор канала.
direction
«Направление канала» относительно АТС (inbound/outbound).
created_stamp
Время создания канала в формате unix timestamp.
state
Состояние канала.
endpoint
Конечная точка в АТС.
hangup_cause
Причина завершения звонка — http://api.onlinepbx.ru/lib/hangup_cause.js.

Пример:


data:{
  "uuid": "22c9e591-3784-4c64-8ebf-c8bfcef17776",
  "direction": "inbound",
  "created_stamp": "1375466463124",
  "state": "CS_DESTROY",
  "endpoint": "222@example.onpbx.ru",
  "hangup_cause": "NORMAL_CLEARING"
}
7. "channel_answer" — канал перешёл в состояние отвеченных.
ОпцияПримечаниеОписание опции
uuid
Идентификатор канала.
answered_stamp
Время ответа (таймстамп).
read_codec
Кодек приема.
read_rate
Частота приёма.
read_bitrate
Битрейт приёма.
write_codec
Кодек отправки.
write_rate
Частота отправки.
write_bitrate
Битрейт отправки.

Пример:


data:{
  "uuid": "22c9e591-3784-4c64-8ebf-c8bfcef17776",
  "answered_stamp": "1375466463124",
  "read_codec": "PCMU",
  "read_rate": "8000",
  "read_bitrate": "64000",
  "write_codec": "PCMA",
  "write_rate": "8000",
  "write_bitrate": "64000"
}
8. "channel_bridge" — соединение каналов.
ОпцияПримечаниеОписание опции
direction
«Направление канала» относительно АТС (inbound/outbound).
aleg_uuid
uuid А ноги.
bleg_uuid
uuid Б ноги.

Пример:


data:{
  "direction": "inbound",
  "aleg_uuid": "22c9e591-3784-4c64-8ebf-c8bfcef17776",
  "bleg_uuid": "129d1446-0063-122c-15aa-001a923f6a0f"
}
9. "channel_application" — выполнена команда на канале.
ОписаниеПримечаниеОписание опции
uuid
Идентификатор канала.
application
Пока поддерживается только один тип команды, в будущем будут еще.
application_data
Аргументы команды.

Пример:


data:{
  uuid : "22c9e591-3784-4c64-8ebf-c8bfcef17776",
  application : "transfer",
  application_data : { ... }
}







10. "channel_hold" — пользователь АТС поставил звонок на удержание.


Опции при входящем звонке в АТС

ОписаниеПримечаниеОписание опции
direction
«Направление канала» относительно АТС. outbound.
uuid
Идентификатор канала.
created_stamp
Время создания канала в формате unix timestamp.
domain
SIP-домен.
caller_number
Номер звонящего.
caller_name
Имя звонящего.
destination_number
Номер сотрудника .

Опции при исходящем звонке из АТС

ОписаниеПримечаниеОписание опции
direction
«Направление канала» относительно АТС. inbound.
uuid
Идентификатор канала.
created_stamp
Время создания канала в формате unix timestamp.
domain
SIP-домен.
caller_number
Добавочный сотрудника.
caller_name
Имя пользователя.
destination_number
Номер клиента.

Пример для входящего звонка:


channel_hold:{ 
"direction": "outbound",
"uuid": "7efa5a12-a1f0-4ddd-bc16-cf8b0ec3d560",
"created_stamp": 1580123956361,
"domain": "example.onpbx.ru",
"caller_number": "79064561235",
"caller_name": "Peter",
"destination_number": "100"
}

Пример для исходящего звонка:


channel_hold:{ 
"direction": "inbound",
"uuid": "7369ce36-f9e2-4e5a-a5f0-3f042a144db7",
"created_stamp": 1580123701481,
"domain": "example.onpbx.ru",
"caller_number": "100",
"caller_name": "Ivan",
"destination_number": "79064561235"
}
11. "channel_unhold" — пользователь АТС снял звонок с удержания.


Опции при входящем звонке в АТС

ОписаниеПримечаниеОписание опции
direction
«Направление канала» относительно АТС. outbound.
uuid
Идентификатор канала.
created_stamp
Время создания канала в формате unix timestamp.
domain
SIP-домен.
caller_number
Номер звонящего.
caller_name
Имя звонящего.
destination_number
Номер сотрудника.

Опции при исходящем звонке из АТС

ОписаниеПримечаниеОписание опции
direction
«Направление канала» относительно АТС. inbound.
uuid
Идентификатор канала.
created_stamp
Время создания канала в формате unix timestamp.
domain
SIP-домен.
caller_number
Добавочный сотрудника.
caller_name
Имя пользователя.
destination_number
Номер клиента.

Пример для входящего звонка:


channel_unhold:{ 
"direction": "outbound",
"uuid": "7efa5a12-a1f0-4ddd-bc16-cf8b0ec3d560",
"created_stamp": 1580123956361,
"domain": "example.onpbx.ru",
"caller_number": "79064561235",
"caller_name": "Peter",
"destination_number": "100"
}

Пример для исходящего звонка:


channel_unhold:{
"direction": "inbound",
"uuid": "7369ce36-f9e2-4e5a-a5f0-3f042a144db7",
"created_stamp": 1580123701481,
"domain": "example.onpbx.ru",
"caller_number": "100",
"caller_name": "Ivan",
"destination_number": "79064561235"
}


Пример использования

Подключение, звонки и события — api.onlinepbx.ru/example/ws_connect_call.html


Вы не нашли ответ на свой вопрос?

Обратитесь в нашу техническую поддержку:

+7 (495) 669-67-21
+7 (343) 302-01-37
+7 (812) 646-51-40

Почта — support@onlinepbx.ru