/js-sdk

Библиотека для интеграции js-приложения с сервисом Простые Звонки

Primary LanguageJavaScript

API

Prostiezvonki

Конфигурация

При подключении скрипта создаётся глобальная переменная prostiezvonki. Для удобства к ней можно обращаться через псевдоним pz.

Подключение к серверу

pz.connect({
    user_phone: '100',            // внутренний номер телефона сотрудника
    host: 'ws://localhost:10150', // адрес сервера
    client_id: 'password',        // пароль
    client_type: 'jsapi'          // тип приложения
});

Максимальная длина пароля — 32 символа.

Функция возвращает объект со статусом выполнения и, при наличии ошибки, текстом этой ошибки:

// всё хорошо
{
    result: 'ok'
}
// ошибка
{
    result: 'error',
    text: 'uh oh...'
}

Разрыв подключения

pz.disconnect();

Проверка состояния подключения

Можно определить, активно ли подключение в данный момент:

pz.isConnected();

либо подписаться на события подключения и отключения:

pz.onConnect(
    callback // функция, которая будет вызвана при подключении к серверу
);

pz.onDisconnect(
    callback // функция, которая будет вызвана при отключении от сервера
);

Исходящий звонок

pz.call(
    phone // номер телефона, на который будет совершён звонок
);

Перевод звонка

pz.transfer(
    call_id, // идентификатор звонка, полученный от сервера
    phone    // номер телефона, на который нужно перевести звонок
);

Получение событий

pz.onEvent(
    callback // функция, которая будет вызвана при получении события от сервера
);

Первым аргументом функция принимает объект event:

function (event) {
	alert('Индентификатор звонка — ' + event.callID)
}

Event

Методы

Для определения типа события можно использовать вспомогательные методы:

event.isTransfer()         // входящий запрос на переадресацию?
event.isIncoming()         // входящий вызов на менеджера?
event.isHistory()          // завершенный вызов?
event.isOutcoming()        // исходящий вызов?
event.isOutcomingAnswer()  // клиент поднял трубку при исходящем звонке?
event.isIncomingAnswer()   // менеджер поднял трубку при входящем звонке?

Свойства

Для всех типов:

  • event.type - тип события

     1  - входящий запрос на переадресацию
     2  - входящий вызов на менеджера
     4  - завершенный вызов
     8  - исходящий вызов
     16 - клиент поднял трубку при исходящем звонке
     32 - менеджер поднял трубку при входящем звонке
    
  • event.callID - идентификатор звонка

  • event.from - номер звонящего абонента

Для всех типов, кроме запроса на переадресацию:

  • event.to - номер вызываемого абонента

Для завершённого вызова

  • event.start - время начала вызова, в формате Timestamp
  • event.end - время окончания вызов, в формате Timestamp
  • event.duration - длина разговора, в секундах
  • event.direction - направление вызова: 0 – входящий, 1 – исходящий
  • event.record - ссылка на файл записи