OpenSIPS / opensips-js

2 stars 0 forks source link

Getting started

Installation

Using npm:

$ npm i @voicenter-team/opensips-js

Usage

Firstly lets import the library and create the OpenSIPS instance:

import OpenSIPSJS from '@voicenter-team/opensips-js'

const openSIPSJS = new OpenSIPSJS({
    configuration: {
        session_timers: false,
        uri: 'sip:extension_user@domain',
        // --- Use password or authorization_jwt to authorize
        password: 'password',
        // or
        authorization_jwt: 'token',
    },
    socketInterfaces: [ 'wss://domain' ],
    pnExtraHeaders: {
        'pn-provider': 'acme',
        'pn-param': 'acme-param',
        'pn-prid': 'ZH11Y4ZDJlMNzODE1NgKi0K>'
    },
    sipDomain: 'domain',
    sipOptions: {
        session_timers: false,
        extraHeaders: [ 'X-Bar: bar' ],
        pcConfig: {},
    },
    modules: [ 'audio', 'video', 'msrp' ]
})

Then you can work with appropriate modules:

openSIPSJS.audio
openSIPSJS.video
openSIPSJS.msrp

OpensipsJS

OpensipsJS instance methods

OpensipsJS events

Event Callback interface Description
ready () => {} Emitted when opensips is initialized
changeActiveCalls (calls: { [key: string]: ICall }) => {} Emitted when active calls are changed
callAddingInProgressChanged (callId: string / undefined) => {} Emitted when any call adding state is changed
changeAvailableDeviceList (devices: Array<MediaDeviceInfo>) => {} Emitted when the list of available devices is changed
changeActiveInputMediaDevice (deviceId: string) => {} Emitted when active input device is changed
changeActiveOutputMediaDevice (deviceId: string) => {} Emitted when active output device is changed
changeMuteWhenJoin (value: boolean) => {} Emitted when mute on join value is changed
changeIsDND (value: boolean) => {} Emitted when is DND value is changed
changeIsMuted (value: boolean) => {} Emitted when mute value is changed
changeActiveStream (stream: MediaStream) => {} Emitted when active stream was changed
changeCallVolume (callId: string, volume: number) => {} Emits the volume meter's value for each participant
currentActiveRoomChanged (number / undefined) => {} Emitted when active room is changed
addRoom ({room: IRoom, roomList: {[id: number]: IRoom}}) => {} Emitted when new room was added
updateRoom ({room: IRoom, roomList: {[id: number]: IRoom}}) => {} Emitted when room was updated
removeRoom ({room: IRoom, roomList: {[p: number]: IRoom}}) => {} Emitted when room was deleted

WebrtcMetricsConfigType

Parameter Type Default
refreshEvery number undefined
startAfter number undefined
startAfter number undefined
verbose boolean undefined
pname string undefined
cid string undefined
uid string undefined
record boolean undefined
ticket boolean undefined

Also, there are next public fields on OpensipsJS instance:

OpensipsJS instance fields

Audio

Audio methods

Audio instance fields

MSRP

MSRP methods

MSRP instance fields

Video

Video methods

VisualizationConfigType

Parameter Type Default
foregroundThreshold number 0.5
maskOpacity number 0.5
maskBlur number 0
pixelCellWidth number 10
backgroundBlur number 15
edgeBlur number 3

KonvaDrawerOptions

Parameter Type
container number
width number
height number

KonvaScreenShareDrawerOptions

Parameter Type
strokeWidth number
strokeColor string

Video events

Event Callback interface Description
member:join (data) => {} Emitted when new member is joined
member:update (data) => {} Emitted when member data is changed
member:hangup (data) => {} Emitted when member leaves the conference
hangup () => {} Emitted when we leave the conference
screenShare:start () => {} Emitted when we share a screen
screenShare:stop () => {} Emitted when we stop a screen sharing
reconnect () => {} Emitted when reconnecting
mediaConstraintsChange () => {} Emitted when media constraints change
metrics:report () => {} Emitted on metric report
metrics:stop () => {} Emitted when metrics are stopped