Інтеграція за протоколом WSS

Інтеграція за протоколом WSS

 

},

"leg2":null,

"otherLegs":[

{


"id":120,

"type": 1, "displayName":"Support Vega", "ext":"911"


"id":"29",

"name":"Тест", "num":"+380567777777",

}],


"companyName":"Рекламна агенція", "url":"https://qwerty.pbx.vega.ua/features/crm/contacts/edit.jsp#/?id=1", "priority":2


"dialAt":1473973200000,

 

"bridgeAt":null, "serverTime":"1473973201000", "trunkNum":"567850550", "trunkName":"567850550"

 

}

 

 

 

event — подія, яка відбулася з телефонною системою Тип: String

 

 

 

Можливі значення:

 

-     call.dial (початок виклику);

 

-     call.bridge (на виклик відповіли);

 

-     call.hangup (виклик або розмову було завершено);

 

-     error (помилка).

 

 

 

uuid унікальний ідентифікатор виклику

 

Тип:String

 

 

 

parentUuid унікальний ідентифікатор батьківського виклику. Якщо виклик надходить на групу користувачів, потім в групі розподіляється на будь-кого зі співробітників, тоді виклик співробітнику буде посилатись на виклик в групу, як батьківський виклик.

 

 Тип: String

 

 

 

lgDirection напрямок виклику

 

Тип: Number;

 

 

 

Можливі значення:

 

1  внутрішній виклик;

 

2  вихідний виклик;

 

4 — вхідний виклик;

 

32 — встановлення на паузу (немає на місці);

 

64 — зняття з паузи (доступний).

 

 

 

leg — дані користувача (співробітника компанії), що виконує виклик або що приймає виклик (залежно від значення поля lgDirection);

 

Тип: Object

 

 

 

leg.id — ідентифікатор сутності на яку надійшов виклик або з якої він був здійснений (якщо lgDirection=2 – виклик був здійснений від користувача, якщо lgDirection=4 – виклик був прийнятий сутністю). Це поле може означати ідентифікатор користувача (співробітника компанії), групи користувачів (відділу компанії) або сценарію (IVR меню). Який тип сутності позначає даний ідентифікатор, можна дізнатися з параметра leg.type; Тип: Number

 

leg.type — тип сутності на яку надійшов виклик або від імені якої він був здійснений;

 

Тип: Number

 

Можливі значення:

 

1  користувач (співробітник);

 

2  — група (відділ співробітників);

4 — сценарій (IVR меню)

 

 

leg.ext — внутрішній номер сутності на яку надійшов виклик або з якої він був здійснений. Це може бути внутрішній номер користувача або групи користувачів. У випадку, якщо leg позначає сценарій, даний параметр буде дорівнювати null (оскільки у сценарії немає внутрішнього номера). Який тип сутності позначає даний параметр, можна дізнатися з параметра leg.type;

 

 Тип: String

 

 

leg.displayName імя сутності на яку надійшов виклик або з якої він був здійснений. Це може бути ім’я користувача, назва групи користувачів або сценарію. Який тип сутності позначає параметр можна дізнатися з параметра leg.type;

 

Тип: String

 

 

leg2 — дані користувача (співробітника компанії) що приймає внутрішній виклик. Дане поле завжди дорівнює null при вихідному і вхідному викликах;

 

Тип: Object

 

 

leg2.id — ідентифікатор сутності на яку надійшов внутрішній виклик (якщо це поле присутнє, тоді lgDirection=1). Дане поле може означати ідентифікатор користувача (співробітника компанії) або групи користувачів (відділу компанії). Який тип сутності позначає даний ідентифікатор, можливо дізнатися з параметра leg2.type;

 

Тип: Number

 

leg2.type тип сутності, на яку надійшов внутрішній виклик;

 

Тип: Number

 

 

 

Можливі значення:

 

1  користувач (співробітник);

 

2  — група (відділ співробітників)

 

 

leg2.ext — внутрішній номер сутності на який надійшов внутрішній виклик. Це може бути внутрішній номер користувача або групи користувачів. Який тип сутності позначає даний параметр, можна дізнатися з параметра leg2.type;

 

                                  

 

leg2.displayName — ім’я сутності на яку надійшов внутрішній виклик. Це може бути імя користувача, назва групи користувачів. Який тип сутності позначає даний параметр, можна дізнатися з параметра leg2.type;

 

Тип: String

 

 

 

otherLegs — деталі про клієнта. Дане поле є списком, оскільки може бути підключено кілька CRM систем і в результаті буде отримано список деталей з усіх підключених CRM. Поля даного списку, наведені нижче.

 

Тип: Array

 

otherLegs[0].id — ідентифікатор клієнта в CRM системі. null – якщо клієнта не існує; otherLegs[0].name — ім’я клієнта в CRM системі. null – якщо клієнт не існує;

otherLegs[0].num — номер телефону клієнта в CRM системі;

otherLegs[0].companyName — назва компанії клієнта в CRM системі. null – якщо клієнт не існує або не вказано назву компанії;

otherLegs[0].url — посилання на існуючий контакт в CRM, або на створення нового клієнта;

otherLegs[0].priority — пріоритет підключення, згідно якого був отриманий контакт.

 

 dialAt — час, коли зателефонували (кількість мілісекунд, що пройшли з 1970 року, GMT+0)

 

Тип: Number

 

bridgeAt — час, коли відповіли на виклик, null якщо відповіді поки немає (кількість мілісекунд, що пройшли з 1970 року, GMT+0)

 

Тип: Number

 

serverTime — час, коли подію було надіслано з серверу (кількість млісекунд, що пройшли з 1970 року,GMT+0)

 

Тип: Number

 

trunkNum – зовнішній номер, який використовується для приймання поточного вхідного виклику або здійснення вихідного виклику (залежно від значення поля lgDirection). Дане поле завжди дорівнює null при внутрішніх викликах;

 

Тип: String

 

trunkName – підпис для зовнішнього номеру, який використовується для приймання поточного вхідного виклику і здійснення вихідного виклику (залежно від значення поля lgDirection);

 

 Тип: String

 

 

 

Приклад

 

 

 

var _socket = new WebSocket('...');

 

 

 

_socket.onmessage = function(e) {

 

var data = JSON.parse(e.data); if(data["event"] == "call.dial") {

 

alert("Call from: " + data.otherLegs[0].num);

 

}

 

};

Завантажити повну інструкцію