WebSDK

Web SDK (Software Development Kit) - это инструментарий разработки программного обеспечения, который позволяет разработчикам интегрировать функциональность телефонии напрямую в веб-приложения. Exolve WebSDK позволяет создавать приложения, которые могут совершать и принимать звонки в окне браузера.

Github проект МТС Exolve WebSDK

Установка

Exolve WebSDK совместим с версией NodeJS 18 и выше. Если у вас ещё нет NodeJS подходящей версии, вы можете скачать его с официального сайта. Чтобы установить SDK, выполните одну из следующих команд в консоли:

Для менеджера пакетов NPM:

npm install @mts-exolve/web-voice-sdk

Для менеджера пакетов Yarn:

yarn install @mts-exolve/web-voice-sdk

Создание объекта SipInstance

createSipInstance(props): {
    get SIPInstance(): UA;
    get audioElement(): HTMLAudioElement;
    call(target, onConfirmed?) => RTCSession;
    onIncomingCall(cb) => void;
    register() => Promise<unknown>;
    unregister() => Promise<unknown>;
}

Параметры props:

CreateSipInstanceProps: {
    sipLogin: string;
    sipPassword: string;
}

sipLogin - SIP логин из настроек SIP-аккаунта в приложении Exolve.

sipPassword - пароль из настроек SIP-аккаунта в приложении Exolve.

Методы

getSipInstance

Метод для получения объекта JSSIP инстанса.

const sip = createSipInstance();
sip.SIPInstance

register

Метод для регистрации, необходим для получения входящих звонков.

const sip = createSipInstance();
sip.register()

unregister

Метод для отмены регистрации.

const sip = createSipInstance();
sip.unRegister()

onIncomingCall

Метод принимает функцию, которая вызывается при входящем звонке. Принимает три параметра:

  • accept - метод принятия звонка
  • decline - метод сброса входящего звонка
  • event - объект события в чистом виде от JSSIP
const sip = createSipInstance();
sip.onIncomingCall((accept, decline, event) => {
    // accept()
    // decline()
});

call

Метод для совершения исходящего вызова. Принимает два параметра:

  • номер телефона
  • функция, которая будет вызвана в случае, если звонок приняли
const sip = createSipInstance();
sip.call("79992223311", () => {
  // ... звонок приняли, идет разговор
});

Пример использования

// 1. create SDK instance
const sdk = createSipInstance({
  sipLogin: "[sip login]",
  sipPassword: "[sip password]",
})

// 2. registration
await sdk.register();

// 2. unregister
await sdk.unregister();

// 3. register callback for incoming call
sdk.onIncomingCall((accept, decline, event) => {
  // call accept() - for accept incoming call
  // call decline() - for decline incoming call
  console.log(event) // event object 
  console.log(event.session) // RTCSession object
});

// 4. make a call
const session = sdk.call("[target number like 79992223322]", () => {
  // on confirmed callback
})

// stop this call
session.terminate()

console.log(session) // RTCSession for call