代码拉取完成,页面将自动刷新
Want see it in action? The project website, sipjs.com, has a live demo.
Looking for code to get started with? This repository includes demonstrations which run in a web browser.
To place a SIP call, either utilize the SimpleUser
class...
import { Web } from "sip.js";
// Helper function to get an HTML audio element
function getAudioElement(id: string): HTMLAudioElement {
const el = document.getElementById(id);
if (!(el instanceof HTMLAudioElement)) {
throw new Error(`Element "${id}" not found or not an audio element.`);
}
return el;
}
// Options for SimpleUser
const options: Web.SimpleUserOptions = {
aor: "sip:alice@example.com", // caller
media: {
constraints: { audio: true, video: false }, // audio only call
remote: { audio: getAudioElement("remoteAudio") } // play remote audio
}
};
// WebSocket server to connect with
const server = "wss://sip.example.com";
// Construct a SimpleUser instance
const simpleUser = new Web.SimpleUser(server, options);
// Connect to server and place call
simpleUser.connect()
.then(() => simpleUser.call("sip:bob@example.com"))
.catch((error: Error) => {
// Call failed
});
Or, alternatively, use the full API framework...
import { Inviter, SessionState, UserAgent } from "sip.js";
// Create user agent instance (caller)
const userAgent = new UserAgent({
uri: UserAgent.makeURI("sip:alice@example.com"),
transportOptions: {
server: "wss://sip.example.com"
},
});
// Connect the user agent
userAgent.start().then(() => {
// Set target destination (callee)
const target = UserAgent.makeURI("sip:bob@example.com");
if (!target) {
throw new Error("Failed to create target URI.");
}
// Create a user agent client to establish a session
const inviter = new Inviter(userAgent, target, {
sessionDescriptionHandlerOptions: {
constraints: { audio: true, video: false }
}
});
// Handle outgoing session state changes
inviter.stateChange.addListener((newState) => {
switch (newState) {
case SessionState.Establishing:
// Session is establishing
break;
case SessionState.Established:
// Session has been established
break;
case SessionState.Terminated:
// Session has terminated
break;
default:
break;
}
});
// Send initial INVITE request
inviter.invite()
.then(() => {
// INVITE sent
})
.catch((error: Error) => {
// INVITE did not send
});
});
Node module
npm install sip.js
UMD bundle
Clone this repository, then...
npm install
npm run build-and-test
For more info please see the Documentation.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。