При подключении скрипта создаётся глобальная переменная 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 // номер телефона, на который нужно перевести звонок
);
При интеграции с Android есть возможность послать SMS с телефона пользователя.
pz.sms(
phone, // номер телефона получателя SMS
text // текст SMS
);
pz.onEvent(
callback // функция, которая будет вызвана при получении события от сервера
);
Первым аргументом функция принимает объект event:
function (event) {
alert('Индентификатор звонка — ' + event.callID)
}
Для определения типа события можно использовать вспомогательные методы:
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 - СМС успешно отправлена, в ином случае - Не удалось отправить СМС на номер