WebitelModule.js
Исходный код актуальной версии JavaScript библиотеки доступен на github.
Создать объект Webitel
Параметры:
@webitelOption {Object}:
@server {String} - строка соединения к серверу Webitel.
@account {String} - логин пользователя.
@secret {String} - пароль пользователя.
@debug {Bool} - режим отладки.
@reconnect {Int} - время переподключения в секундах, по умолчанию отключено.
@webrtc {Object} - настройки Webrtc.
Webitel(@webitelOption)
Соединиться с сервером
Работа с доменами
Создать домен
Параметры:
@domainName {String} - домен.
@customerId {String} - CustomerId.
@callback {Function} - callback Функция обратного вызова.
domainCreate(@domainName, @customerId, @callback).
Получить список доменов
Параметры:
@domainName {String} - домен (если не задан, список всех доменов).
@callback {Function} - callback Функция обратного вызова.
domainList(@domainName, @callback).
Удалить домен
Параметры:
@domainName {String} - домен.
@callback {Function} - callback Функция обратного вызова.
domainRemove(@domainName, @callback).
Работа с пользователями.
Список всех устройств и пользователей.
Параметры:
@domain {String} - обязательный для Root пользователя, домен по которому получить список.
@callback {Function} - callback Функция обратного вызова.
list_users(@domain , @callback).
webitel.list_users('10.10.10.22', function(res){ if (res.status == 1) throw new Error(res.response); var table = this.parseDataTable(); console.info(table.headers.join(' | ')); for (var key in table.data) { console.info(table.data[key].join(' | ')); } });
Список пользователей.
Параметры:
@domain {String} - обязательный для Root пользователя, домен по которому получить список.
@callback {Function} - callback Функция обратного вызова.
userList(@domain , @callback).
Создать пользователя.
Параметры:
@role {WebitelUserRoleType} - роль пользователя.
@login {String} - логин(номер) - пользователя.
@password {String} - пароль пользователя.
@domain {String} - домен пользователя.
@callback {Function} - callback Функция обратного вызова.
userCreate(@role , @login, @password , @domain, @callback ).
Обновить параметр пользователя.
Параметры:
@user {String} - пользователь которому нужно сменить значение параметра.
@domain {String} - обязательный для Root пользователя, домен пользователя которого нужно обновить.
@paramName {WebitelUserParamType} - название параметра который нужно сменить.
@paramValue {String} - значение параметра.
@callback {Function} - callback Функция обратного вызова.
userUpdate(@user , @domain , @paramName, @paramValue, @callback ).
Удалить пользователя.
Параметры:
@user {String} - пользователь которого нужно удалить.
@domain {String} - обязательный для Root пользователя, домен пользователя которого нужно удалить.
@callback {Function} - callback Функция обратного вызова.
userRemove(@user, @domain, @callback ).
Информация про текущего пользователя.
Параметры:
@callback {Function} - callback Функция обратного вызова.
whoami(@callback ).
Работа с устройствами.
Список устройств.
Параметры:
@domain {String} - домен по которому получить список.
@callback {Function} - callback Функция обратного вызова.
deviceList(@domain, @callback ).
Создать устройство.
Параметры:
@type {WebitelDeviceType} - тип устройства.
@login {String} - логин(номер) - устройства.
@password {String} - пароль устройства.
@domain {String} - домен устройства.
@callback {Function} - callback Функция обратного вызова.
deviceCreate(@type, @login, @password, @domain, @callback ).
Обновить параметр устройства.
Параметры:
@device {String} - устройство которому нужно сменить значение параметра.
@domain {String} - домен устройства которое нужно обновить.
@paramName {WebitelUserParamType} - название параметра который нужно сменить.
@paramValue {String} - значение параметра.
@callback {Function} - callback Функция обратного вызова.
deviceUpdate(@device, @domain, @paramName, @paramValue, @callback ).
Удалить устройство.
Параметры:
@device {String} - устройство которое нужно удалить.
@domain {String} - домен устройства которое нужно удалить.
@callback {Function} - callback Функция обратного вызова.
deviceRemove(@device, @domain, @callback ).
Управление звонками
Создать звонок.
Параметры:
@number {String} - номер куда нужно позвонить.
@useVideo {Boolean} - использовать видео при звонке Webrtc.
call(@number , @useVideo).
Завершить звонок.
Параметры:
@uuid {String} - идентификатор звонка.
hangup(@uuid).
Ответить на звонок(Webrtc).
Параметры:
@uuid {String} - идентификатор звонка.
@useVideo {Boolean} - использовать видео поток.
answer(@uuid, @useVideo ).
Поставить/снять звонок с удержания.
Параметры:
@uuid {String} - идентификатор звонка.
toggleHold(@uuid).
Поставить звонок на удержание.
Параметры:
@uuid {String} - идентификатор звонка.
hold(@uuid).
Снять звонок с удержания.
Параметры:
@uuid {String} - идентификатор звонка.
unhold(@uuid).
Отправить DTMF.
Параметры:
@uuid {String} - идентификатор звонка.
@digits {String} - сигнал.
dtmf(@uuid, @digits).
Перевести звонок.
Параметры:
@uuid {String} - идентификатор звонка.
@number {String} - номер звонка на который нужно перевести @uuid звонок.
transfer(@uuid, @number ).
Перевод с консультацией.
Параметры:
@uuid {String} - идентификатор звонка.
@number {String} - номер на который нужно сделать звонок с консультацией.
attendedTransfer(@uuid, @number ).
Отмена перевода с консультацией.
Параметры:
@uuid {String} - идентификатор звонка.
cancelTransfer(@uuid).
Соединить каналы звонков.
Параметры:
@callAUuid {String} - UUID звонка А.
@callBUuid {String} - UUID звонка B.
bridgeTransfer(@callAUuid , @callBUuid ).
Список активных каналов.
Параметры:
@domain {String} - фильтрация по домену (необязательный параметр).
@callback {Function} - callback Функция обратного вызова.
showChannel(@domain , @callback).
webitel.showChannel(function() { console.log(JSON.parse(this.responseText)) })
События звонка
Событие нового звонка.
Параметры:
@param {WebitelCall} - атрибуты звонка.
onNewCall(@param ).
Событие поднятия "Трубки".
Параметры:
@param {WebitelCall} - атрибуты звонка.
onAcceptCall(@param ).
Событие установки звонка на удержании.
Параметры:
@param {WebitelCall} - атрибуты звонка.
onHoldCall(@param ).
Событие снятия звонка с удержания.
Параметры:
@param {WebitelCall} - атрибуты звонка.
onUnholdCall(@param ).
Событие DTMF.
Параметры:
@param {Object}:
@call {WebitelCall} - атрибуты звонка.
@digits {String} - digits.
onDtmfCall(@param ).
Событие соединения с каналом.
Параметры:
@call {WebitelCall} - атрибуты звонка.
onBridgeCall(@param ).
Событие разъединение с каналом.
Параметры:
@call {WebitelCall} - атрибуты звонка.
onUnBridgeCall(@call ).
Событие смены UUID звонка.
Параметры:
@param {Object}:
@call {WebitelCall} - атрибуты звонка.
@newId {String} - новый UUID.
onUuidCall(@param).
Событие завершения звонка.
Параметры:
@call {WebitelCall} - атрибуты звонка.
onHangupCall(@param).
Событие новой Webrtc сессии.
Параметры:
@param {verto.dialog} - сеcсия Webrtc.
onNewWebRTCCall(@param).
// Нужно создать видео контейнер для обмена аудио - видео потока, и повашать на session.params.tag webitel.onNewWebRTCCall(function (session) { var video = document.createElement('video'); video.id = session.callID; document.getElementById('ctiPanelMainContainer').appendChild(video); session.params.tag = video.id; });
Событие завершения Webrtc сессии.
Параметры:
@param {verto.dialog} - сеcсия Webrtc.
onDestroyWebRTCCall(@param).
// Удалить контейнер который был создан на событии onNewWebRTCCall webitel.onDestroyWebRTCCall(function (session) { var videoTag = document.getElementById(session.callID); if (videoTag) videoTag.remove(); });
События сервера
Подписаться на события сервера
Параметры:
@eventName {String} - название события.
@handler {Function} - обработчик события.
@callback {Function} - callback Функция обратного вызова.
onServerEvent(@eventName, @handler, @callback).
Отписаться от события сервера
Параметры:
@eventName {String} - название события.
@callback {Function} - callback Функция обратного вызова.
unServerEvent(@eventName, @callback).
Событие успешного входа
Параметры:
@callback {Function} - функция события.
onConnect(@callback).
Отправить сообщение
Параметры:
@extension {String} - номер абонента.
@text {String} - текст сообщения.
@succeededCb {Function} - обработчик успешной отправки сообщения.
@failedCb {Function} - обработчик не успешной отправки сообщения.
Событие нового сообщения
Параметры:
@text {String} - текст сообщения.
Токен.
Генерация токена.
Параметры:
@password{String} - пароль пользователя.
@callback {Function} - callback Функция обратного вызова.
genToken(@password, @callback)
webitel.genToken('100', function(res) { console.log(JSON.parse(res)) });
Глобальные константы.
Типы ошибок.
WebitelErrorTypes = {
Call: 'CALL-ERROR',
Authentication: 'AUTH-ERROR',
Agent: 'AGENT-ERROR',
Connection: 'CONNECTION-ERROR',
Command: 'COMMAND-ERROR',
Event: 'EVENT-ERROR'
};
Направление звонка.
WebitelCallDirectionTypes = {
Inbound: 'inbound',
Outbound: 'outbound',
Callback: 'callback'
};
Роль пользователя.
WebitelUserRoleType = {
Admin: 'admin',
User: 'user'
};
Тип устройства.
WebitelDeviceType = {
Sip: 'sip'
};
Параметры пользователя.
WebitelUserParamType = {
User: 'user',
Password: 'password',
Role: 'role'
};
Состояние WebSocket.
ConnectionStatus = {
Connected: 1,
Disconnected: 2
};
Тип ответа выполнения команды.
WebitelCommandResponseTypes
Success: 0,
Fail: 1
};