GithubHelp home page GithubHelp logo

vedisoft / js-sdk Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 4.0 33 KB

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

JavaScript 100.00%

js-sdk's Introduction

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.onError(
    callback // функция, которая будет вызвана при получении ошибки
);

Коды ошибок в onDisconnect могут быть как стандартные, так и специальные для Простых звонков.

Список специальных кодов и их описание:

  • 4001: "Ошибка проверки лицензионного ключа (4001)",
  • 4002: "Лицензионный ключ недействителен (4002)",
  • 4003: "Истек срок использования лицензионного ключа (4003)",
  • 4004: "Лицензионный ключ не подходит для этого типа АТС-коннектора (4004)",
  • 4005: "Лицензионный ключ не подходит для этой версии АТС-коннектора (4005)",
  • 4006: "Нет лицензии на подключение этой CRM системы (4006)",
  • 4007: "Превышено максимальное допустимое количество пользователей (4007)",
  • 4008: "Ошибка авторизации (4008)",
  • 4009: "Соединение прервано из-за подключения пользователя с таким же добавочным номером (4009)

В объекте pz есть массив со специальными кодами и их описанием: pz.APPLICATION_ERRORS

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

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

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

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

Отправка SMS (только для интеграции с Android)

При интеграции с Android есть возможность послать SMS с телефона пользователя.

pz.sms(
    phone, // номер телефона получателя SMS
    text   // текст SMS
);

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

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

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

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

Event

Методы

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

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

Свойства

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

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

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

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

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

  • event.start - время начала вызова, в формате Timestamp
  • event.end - время окончания вызов, в формате Timestamp
  • event.duration - длина разговора, в секундах
  • event.direction - направление вызова: 0 – входящий, 1 – исходящий
  • event.record - ссылка на файл записи
  • event.missed - пропущенное ли это событие: 1 - пропущенное, 0 - не пропущенное (событие считается пропущенным, если при генерации его и на АТС-коннекторе клиент не был подключен к последнему)

Для событий статуса отправки SMS

  • event.result - результат отправки: 0 - СМС отправляется на номер, 1 - СМС успешно отправлена, в ином случае - Не удалось отправить СМС на номер

js-sdk's People

Contributors

gwaeron avatar sameoldmadness avatar vedisoft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

js-sdk's Issues

поле missed

Здравствуйте, поле missed для типа - завершенный звонок не приходит.
image
Такой хост: wss://mobile.prostiezvonki.ru:443

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.