Інтеграція за протоколом 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);
}
};