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