Skip to end of metadata
Go to start of metadata


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

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

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


 


 

Подключение

Инициализация подключения — 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_por Локальный порт
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" — соединение каналов
ОпцияПримечаниеОписание опции
aleg_uuid uuid А ноги
bleg_uuid uuid Б ноги

Пример:

 

data:{
  "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 : { ... }
}

 

 

 

 

 

 

 


 

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

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

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.