Обмен сообщениями выполняется в режиме real-time по средством технологии WebSocket. Сообщения оформляются по протоколу WAMP v2 (Web Application Messaging Protocol).
Для работы с API потребуется одна из реализаций WAMP-клиента.
Для установления соединения с сервером потребуется немного программного кода в клиентского приложении:
var connection = new autobahn.Connection({ url: "ws://uniphone.mikolab.ru/ws", realm: "realm1" }); connection.onopen = function (session, details) { // Publish, Subscribe, Call and Register }; connection.onclose = function (reason, details) { // handle connection lost } connection.open();
Чтобы подписаться на получения всех сообщений в теме «provider.topics.calls» и получать оповещения о звонках, достаточно написать:
session.subscribe("provider.topics.calls", function (args) { console.log("New call data: ", args[0]); });
Чтобы поместить сообщение в теме «provider.topics.calls» достаточно одной строчки кода:
session.publish("provider.topics.calls", [callObject]);
Регистрация процедуры для удаленного вызова выполнятся таким образом:
var whois = function(args) { return '{"name":"MIKO LAB"}'; }; session.register("crm.methods.whois", whois);
Вызов удаленной процедуры выполняется так:
session.call('crm.methods.whois', ['+74952293042']).then(function (res) { console.log('This phone number belongs to ', res); }, console.log);