@novosystem/softphone-core v2.0.4
Документация по классу Softphone
static create(token)
Создает экземпляр Softphone
- @param {string} token токен авторизации
static create(config)
Создает экземпляр Softphone
- @param {string} config.token токен авторизации
- @param {string} config.ringtone.url URL рингтона. Если не указан, то используется стандартный рингтон
- @param {number} config.ringtone.volume громкость рингтона в процентах. Если не указана, то используется стопроцентная громкость
- @param {string} config.ringtone.deviceId ID устройства, использующегося для воспроизведения рингтона. Если не указано, то используется устройство по умолчанию
- @param {string} config.holdMusic.url URL музыки удержания. Если не указан, то используется стандартная музыка
- @param {number} config.holdMusic.volume громкость музыки удержания в процентах. Если не указана, то используется стопроцентная громкость
- @param {number} config.microphone.volume громкость микрофона в процентах. Если не указана, то используется стопроцентная громкость
- @param {string} config.microphone.deviceId ID микрофона. Если не указано, то используется микрофон по умолчанию
- @param {number} config.remoteStreamVolume громкость голоса собеседника в процентах. Если не указана, то используется стопроцентная громкость
- @param {string} config.outputDeviceId ID устройства, использующегося для воспроизведения прочих звуков. Если не указано, то используется устройство по умолчанию
- @param {boolean} config.shouldPlayCallEndingSignal true, если следует проигрывать сигнал завершения звонка. Если не указано, то сигнал не проигрываетсяю
static debug()
Включает режим отладки
call(phoneNumber)
Совершает исходящий звонок. Выбрасывает исключение, если софтфон не готов к использованию или если все каналы заняты звонками.
- @param {string} phoneNumber номер телефона.
answer()
Отвечает на входящий звонок. Выбрасывает исключение, если софтфон не готов к использованию, если в данный момент нет входящего звонка, или если звонок уже принят.
terminate()
Завершает звонок. Выбрасывает исключение, если софтфон не готов к использованию, или если в данный момент нет звонка.
hold()
Удержание звонка.
unhold()
Снятие звонка с удержания.
mute()
Выключает микрофон
unmute()
Включает микрофон
sendDTMF(dtmf)
Отправляет DTMF. Выбрасывает исключение, если софтфон не готов к использованию, или если в данный момент не происходит разговор.
- @param {string} dtmf DTMF-сообщение которое нужно отправить. Например "#1234" для перевода звонка на номер 1234.
setChannel(channel)
Выбирает канал. Выбрасывает исключение, если производится попытка выбрать несуществующий канал.
- @param {number} channel номер канала
setStatus(status)
Выбирает статус сотрудника
- @param {number} status идентификатор статуса сотрудника
destroy()
Выключает софтфон. Выбрасывает исключение, если софтфон выключен.
disable()
Приостанавливает работу Softphone
enable()
Возобновляет работу Softphone
updateSettings(settings)
Обновляет настройки звука
- @param {string} settings.ringtone.url URL рингтона. Если не указан, то используется стандартный рингтон
- @param {number} settings.ringtone.volume громкость рингтона в процентах. Если не указана, то используется стопроцентная громкость
- @param {string} settings.ringtone.deviceId ID устройства, использующегося для воспроизведения рингтона. Если не указано, то используется устройство по умолчанию
- @param {string} settings.holdMusic.url URL музыки удержания. Если не указан, то используется стандартная музыка
- @param {number} settings.holdMusic.volume громкость музыки удержания в процентах. Если не указана, то используется стопроцентная громкость
- @param {number} settings.microphone.volume громкость микрофона в процентах. Если не указана, то используется стопроцентная громкость
- @param {string} settings.microphone.deviceId ID микрофона. Если не указано, то используется микрофон по умолчанию
- @param {number} settings.remoteStreamVolume громкость голоса собеседника в процентах. Если не указана, то используется стопроцентная громкость
- @param {string} settings.outputDeviceId ID устройства, использующегося для воспроизведения прочих звуков. Если не указано, то используется устройство по умолчанию
- @param {boolean} settings.shouldPlayCallEndingSignal true, если следует проигрывать сигнал завершения звонка. Если не указано, то сигнал не проигрываетсяю
on(eventName, handler)
Добавляет обработчик события
@param {string|string[]} eventName название события или массив названий событий.
- 'sending' - совершается исходящий звонок
- 'progress' - происходит дозвон
- 'confirmed' - происходит разговор
- 'ended' - звонок завершился
- 'failed' - звонок завершился неудачно
- 'hold' - звонок удерживается
- 'unhold' - звонок снят с удержания
- 'channelChange' - смена канала
- 'error' - произошла ошибка
- 'enabled' - софтфон стал готовым к использованию
- 'destroyed' - софтфон был выключен
- 'disconnected' - потеряно соединение с сервером
@param {function} handler обработчик события.
В обработчик события 'error' передается мнемоника ошибки.
- 'registrationFailed' - Не удалось зарегистрировать SIP.
- 'authorzationFailed' - Не удалось авторизоваться с токеном указанным в конфиге.
- 'invalidToken' - Токен авторизации с которым удалось авторизоваться перестал быть валидным.
- 'telephonyIsUnavailable' - Телефония недоступна.
- 'microphoneAccessDenied' - Пользователь запретил в браузере доступ к микрофону. Нужно разрешить доступ и обновить страницу.
- 'appAlreadyOpened' - Приложение открыто в другом окне. Можно создать заново экземпляр Softphone и приложение заработает, а открытое в другом окне приложение, работать перестанет.
В обработчики событий 'sending', 'progress', 'confirmed', 'ended' и 'failed' передаются свойства сессии
- 'sessionId' - идентификатор звонка
- 'direction' - направление звонка
- 'phoneNumber' - номер телефона
- 'channel' - номер канала
В обработчик события 'channelChange' передается номер выбранного канала.
В обработчик событий 'hold' и 'unhold' передается номер канала.
onStateChange(handler)
Добавляет обработчик изменения состояния
- @param {function} handler обработчик изменения состояния
onStateChange(paramName, handler)
Добавляет обработчик изменения определнных параметров состояния
- @param {string|string[]} paramName название параметра состояния или массив названий параметров состояния.
- @param {function} handler обработчик изменения состояния
В обработчик изменения события передается объект, представляющий состояние софтфона. Объект имеет такие свойства:
- @property {string} state.error мнемоника ошибки
- @property {boolean} state.available true, если софтфон готов к использванию
- @property {boolean} state.connecting true, если происходит установление соедининия с сервером
- @property {boolean} state.destroyed true, если софтфон был выключен
- @property {number} state.channelsCount количество каналов
- @property {number} state.currentChannel канал, выбранный в данный момент
- @property {string} state.sessionId идентификатор звонка
- @property {string} state.direction направление звонка. 'incoming' или 'outgoing'
- @property {string} state.phoneNumber номер телефона позвонившего или того, кому звонит пользователь
- @property {boolean} state.holded true, если происходит удержание звонка
- @property {boolean} state.muted true, если микрофон выключен
@property {string} state.state состояние сессии.
- 'idle' - софтфон в данный момент не находится в звонке
- 'sending' - совершается исходящий звонок
- 'progress' - происходит дозвон
- 'confirmed' - происходит разговор
@property {object} state.channels каналы. Значением свойства является объект, ключами которого являются номера каналов, а значениями являются объекты с такими свойствами:
* @property {string} [**sessionId**] идентификатор сессии * @property {string} [**direction**] направление звонка. 'incoming' или 'outgoing' * @property {string} [**phoneNumber**] номер телефона позвонившего или того, кому звонит пользователь * @property {boolean} **holded**] true, если происходит удержание звонка * @property {boolean} [**muted**] true, если микрофон выключен * @property {string} [**state**] состояние сессии.
@property {{value: string, text: string}[]} state.devices.input опции для выпадающего списка устройств ввода
@property {{value: string, text: string}[]} state.devices.output опции для выпадающего списка устройств вывода
- @property {string} state.employee.name имя сотрудника
- @property {string} state.employee.shortPhoneNumber короткий номер телефона сотрудника
- @property {number} state.employee.currentStatus.id идентификатор текущего статуса сотрудника
- @property {string} state.employee.currentStatus.icon имя иконки текущего статуса сотрудника
- @property {string} state.employee.currentStatus.name название текущего статуса сотрудника
- @property {string} state.employee.currentStatus.color цвет текущего статуса сотрудника
- @property {string} state.employee.currentStatus.description описание текущего статуса сотрудника
@property {string} state.employee.statuses статусы сотрудника. Значением свойства является объект, ключами которого являются идентификаторы статусов, а значениями являются объекты с такими свойствами:
* @property {number} [**id**] идентификатор статуса сотрудника * @property {string} [**icon**] имя иконки статуса сотрудника * @property {string} [**name**] название статуса сотрудника * @property {string} [**color**] цвет статуса сотрудника * @property {string} [**description**] описание статуса сотрудника * @property {boolean} [**selectable**] true, если сотрудник может сам выбрать этот статус
window.downloadUISWebRTCLog()
Скачивает лог софтфона