itl-webrtc
v1.0.1
Published
WebRTC SIP client library (ITooLabs) with TypeScript types
Maintainers
Readme
itl-webrtc
WebRTC SIP client library (ITooLabs) с поддержкой TypeScript типов.
Установка
npm install itl-webrtcПодключение
Библиотека монтируется в глобальный объект window.ITooLabs. Для использования в Next.js или других SPA импортируйте скрипт только на клиенте.
import "itl-webrtc";
// window.ITooLabs теперь доступен в браузереБыстрый старт
const client = window.ITooLabs.WebRTC.Factory.getInstance();
client.init({
APIHostName: "centrex.domain",
domain: "my.domain.name",
debug: (direction, data) => {
// direction: "in" | "out"
// data: объект сообщения
console.log(direction, data);
},
bind: true // по умолчанию true
});
client.addEventListener("SDKReady", () => {
client.connect();
});
client.addEventListener("ConnectionEstablished", () => {
client.login("user", "password");
});
client.addEventListener("AuthResult", (event) => {
if (event.result) {
const call = client.call("123456789", { dn: "Имя" }, { "P-Preferred-Identity": "sip:caller@host" });
call.addEventListener("Connected", () => {
// Звонок установлен
});
}
});Основные классы и методы
ITooLabs.WebRTC.Client
- init(config) — инициализация клиента.
config:APIHostName— адрес WebSocket сервераdomain— домен клиентаdebug(direction, data)— функция логированияbind— автосоздание SIP регистрации (по умолчанию true)
- addEventListener(event, handler) — подписка на событие (см. раздел "События")
- removeEventListener(event, handler) — отписка от события
- connect() / disconnect() — установить/разорвать соединение
- login(username, password, createAuthToken?) — авторизация по логину/паролю
- loginByToken(id, token), loginBySession(s), loginByAuthToken(username, token) — альтернативные способы авторизации
- call(num, customData?, extraHeaders?) — начать исходящий звонок
- getCallById(id) — получить звонок по идентификатору
- getActiveCall() — получить текущий активный звонок
ITooLabs.WebRTC.Call
- addEventListener(event, handler) — подписка на событие звонка
- removeEventListener(event, handler) — отписка от события звонка
- hangup() — завершить звонок
- cancel() — отменить исходящий звонок до соединения
- dial() — начать исходящий звонок (если noDial=true)
- provision() — подтвердить входящий звонок
- answer() — ответить на входящий звонок
- decline() / reject() — отклонить входящий звонок
- hold() — удержание звонка
- transfer(address, leg?) — перевод звонка
- sendTone(n), sendDTMF(n) — отправить DTMF-тон
- muteMicrophone() / unmuteMicrophone() — отключить/включить микрофон
- mutePlayback() / unmutePlayback() — отключить/включить динамики
Пример передачи АОНа
const headers = {};
if (callerId) {
headers["P-Preferred-Identity"] = "sip:" + callerId + "@" + location.host;
}
const call = client.call(phone, { dn: "Tester" }, headers);События
События клиента (ITooLabs.WebRTC.Events)
SDKReadyConnectionEstablishedConnectionFailedConnectionClosedAuthResultBindResultUnbindResultIncomingCallSourcesInfoUpdatedOnMessage
События звонка (ITooLabs.WebRTC.CallEvents)
ConnectedDisconnectedFailedInfoReceived
Состояния звонка (ITooLabs.WebRTC.CallState)
InitializedDialProvisionedHoldConnectedDisconnected
Типы
TypeScript типы доступны в types/itl_webrtc.d.ts.
Документация
Класс: ITooLabs.WebRTC.Client
- init(config) — инициализация клиента.
APIHostName: адрес WebSocket сервераdomain: домен клиентаdebug(direction, data): функция логированияbind: автосоздание SIP регистрации (по умолчанию true)
- addEventListener(event, handler) — подписка на событие (см. раздел "События")
- removeEventListener(event, handler) — отписка от события
- connect() / disconnect() — установить/разорвать соединение
- connected() / isConnected() — проверить соединение
- initialized() / isInitialized() — проверить инициализацию
- login(username, password, createAuthToken?) — авторизация по логину/паролю
- loginByToken(id, token), loginBySession(s), loginByAuthToken(username, token) — альтернативные способы авторизации
- bind() / unbind() — управление SIP регистрацией
- audioSources() — список аудиоустройств
- setAudioCodecPriority(codecs) — приоритет кодеков
- call(num, customData?, extraHeaders?) — начать исходящий звонок
- makeCall(num, customData?, extraHeaders?) — синоним call
- getCallById(id) — получить звонок по идентификатору
- getActiveCall() — получить текущий активный звонок
Класс: ITooLabs.WebRTC.Call
- addEventListener(event, handler) — подписка на событие звонка
- removeEventListener(event, handler) — отписка от события звонка
- hangup() — завершить звонок
- cancel() — отменить исходящий звонок до соединения
- dial() — начать исходящий звонок (если noDial=true)
- provision() — подтвердить входящий звонок
- answer() — ответить на входящий звонок
- decline() / reject() — отклонить входящий звонок
- hold() — удержание звонка
- transfer(address, leg?) — перевод звонка
- sendTone(n), sendDTMF(n) — отправить DTMF-тон
- muteMicrophone() / unmuteMicrophone() — отключить/включить микрофон
- mutePlayback() / unmutePlayback() — отключить/включить динамики
- cdr() / getCdr() — получить информацию о звонке
Пример передачи АОНа
const headers = {};
if (callerId) {
headers["P-Preferred-Identity"] = "sip:" + callerId + "@" + location.host;
}
const call = client.call(phone, { dn: "Tester" }, headers);События клиента (ITooLabs.WebRTC.Events)
SDKReadyConnectionEstablishedConnectionFailedConnectionClosedAuthResultBindResultUnbindResultIncomingCallSourcesInfoUpdatedOnMessage
События звонка (ITooLabs.WebRTC.CallEvents)
ConnectedDisconnectedFailedInfoReceived
Состояния звонка (ITooLabs.WebRTC.CallState)
InitializedDialProvisionedHoldConnectedDisconnected
Лицензия
MIT
