2.0.4 • Published 6 months ago

@novosystem/softphone-core v2.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

Документация по классу 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()

Скачивает лог софтфона