npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@novosystem/softphone-core

v2.0.4

Published

UIS-WebRTC

Readme

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

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