大家好,欢迎来到IT知识分享网。
Module JsSIP
JsSIP主要模块
Module Getters
name
返回字符串“JsSIP”。
version
返回字符串形式的JsSIP版本号。
console.log(JsSIP.version); => "X.Y.Z"
JsSIP.debug
Node.js和浏览器调试。
从版本0.6.0开始,JsSIP包含Node 调试模块,适用于Node.js和浏览器。JsSIP通过JsSIP.debug访问器访问公开模块。
在浏览器中调试
默认情况下,JsSIP不向浏览器控制台记录任何内容。为了启用调试,请在浏览器控制台中运行以下命令并重新加载页面:
> JsSIP.debug.enable('JsSIP:*');
请注意,日志记录设置会存储在浏览器LocalStorage中。要禁用它,请在浏览器控制台中运行以下命令并重新加载页面:
> JsSIP.debug.disable('JsSIP:*');
为了在默认情况下启用它,请在
<script src='js/jssip-X.Y.Z.min.js'></script> <script>JsSIP.debug.enable('JsSIP:*');</script>
在Node.js中调试
在运行Node脚本/命令之前,按如下方式设置DEBUG
环境变量:
$ export DEBUG="JsSIP:*"
或者下面方式运行它:
$ DEBUG="JsSIP:*" node my_script.js
部分调试
区别于”JsSIP:*”(它可以对所有JsSIP组件进行调试),可以对单个组件进行调试,如下所示:
- 在浏览器中:
> JsSIP.debug.enable('JsSIP:Transport JsSIP:RTCSession*');
- 在Node.js中:
$ DEBUG="JsSIP:Transport JsSIP:RTCSession*" node my_script.js
JsSIP源代码树中的每个文件都提供了一个与文件名及其相对路径匹配的不同调试标识符(全部以“JsSIP:”开头)。
例如,要启用调试DTMF
(其类定义在src/RTCSession/DTMF.js
)添加”JsSIP:RTCSession:DTMF”到您的DEBUG变量(节点)或传递给JsSIP.debug.enable()
方法(浏览器)。使用”JsSIP:RTCSession*”启用调试JsSIP.RTCSession
类及其所有子类。
Class JsSIP.UA
JsSIP SIP用户代理类。
实例化
用户代理关联到SIP用户帐户。这个类需要一些配置参数用于通过配置对象提供的初始化。检查完整的UA配置参数列表。
如果任何强制性参数未定义或由于格式错误的参数值,此类的实例化将引发异常。
抛出
CONFIGURATION_ERROR
例:
var socket = new JsSIP.WebSocketInterface('wss://sip.example.com'); var configuration = { sockets : [ socket ], uri : 'sip:', ha1 : '350fe29ce3890bd85db0a95cf7', realm : 'sip.example.com' }; var ua = new JsSIP.UA(configuration);
实例方法
start()
连接到信令服务器,如果先前停止,则恢复以前的状态。如果要重新开始,请在UA配置中的register参数
设置为true
的情况下向SIP域注册。
stop()
保存当前的注册状态并在正常注销并终止活动会话(如果有)后断开与信令服务器的连接。
register()
注册UA。
注意:如果在UA配置参数中将register参数
设置为true
,则UA将自动注册。
unregister(options=null)
取消注册UA。
参数
参数 | 说明 |
---|---|
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
all | 可选Boolean用于取消注册同一SIP用户的所有绑定。默认值是false。 |
var options = { all: true }; ua.unregister(options);
registrator()
获取JsSIP.Registrator实例。
call(target, options=null)
拨打多媒体电话。
参数
参数 | 说明 |
---|---|
target | 通话的目的地。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。 |
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
mediaConstraints | Object有两个有效的字段(audio和video)指示会话是否打算使用音频和/或视频以及要使用的约束条件。默认值都是audio并video设置为true。 |
mediaStream | MediaStream 传送到另一端。 |
pcConfig | Object代表RTCPeerConnection RTCConfiguration。 |
rtcConstraints | Object 代表RTCPeerconnection约束。 |
rtcOfferConstraints | Object代表RTCPeerconnection的限制createOffer()。 |
rtcAnswerConstraints | Object表示用于RTCPeerconnection约束createAnswer()(将被用于将来的输入REINVITE或UPDATE与SDP提供)。 |
eventHandlers | 可以Object将事件处理程序注册到每个通话事件中。为每个要通知的事件定义一个事件处理程序。 |
extraHeaders | Array的Strings额外SIP头的INVITE请求。 |
anonymous | Boolean字段指示是否应该匿名完成该呼叫。默认值是false。 |
sessionTimersExpires | Number (以秒为单位)默认的会话定时器间隔(默认值为90,不要设置较低的值)。 |
例:
// HTML5 <video> elements in which local and remote video will be shown var views = { 'selfView': document.getElementById('my-video'), 'remoteView': document.getElementById('peer-video') }; // Register callbacks to desired call events var eventHandlers = { 'progress': function(data){
/* Your code here */ }, 'failed': function(data){
/* Your code here */ }, 'confirmed': function(data){
/* Your code here */ }, 'ended': function(data){
/* Your code here */ } }; var options = { 'eventHandlers': eventHandlers, 'extraHeaders': [ 'X-Foo: foo', 'X-Bar: bar' ], 'mediaConstraints': {
'audio': true, 'video': true}, 'pcConfig': { 'iceServers': [ { 'urls': ['stun:a.example.com', 'stun:b.example.com'] }, { 'urls': 'turn:example.com', 'username': 'foo', 'credential': ' 1234' } ] } }; ua.call('sip:', options);
sendMessage(target, body, options=null)
使用SIP MESSAGE方法发送即时消息。
参数
参数 | 说明 |
---|---|
target | 消息的目的地。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。 |
body | 消息内容。String代表消息的主体。 |
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
contentType | 可选String代表正文的内容类型。默认text/plain。 |
eventHandlers | Object事件处理程序的选项可以注册到每个JsSIP.Message事件。为每个要通知的事件定义一个事件处理程序。 |
extraHeaders | 可选Array的每个MESSAGE请求都Strings带有额外的SIP头。 |
例:
var text = 'Hello Bob!'; var eventHandlers = { 'succeeded': function(data){
/* Your code here */ }, 'failed': function(data){
/* Your code here */ }; }; var options = { 'eventHandlers': eventHandlers }; ua.sendMessage('sip:', text, options);
terminateSessions(options=null)
终止正在进行的呼叫。
参数
参数 | 说明 |
---|---|
options | 可选Object带有在JsSIP.RTCSession呼叫终止中定义的额外参数。 |
isRegistered()
如果UA已注册,返回true
; 否则返回false
。
isConnected()
如果传输连接,返回true
,否则返回false
。
get(parameter)
在运行时检索一次计算出的配置参数。目前只是realm
和ha1
可以检索。
参数 | 说明 |
---|---|
parameter | UA配置参数名称。 |
set(parameter, value)
在运行时修改给定的UA配置参数(一旦启动)。目前只是display_name,password,realm和ha1可以修改。
如果可以完成修改,则返回true
。
参数 | 说明 |
---|---|
parameter | UA配置参数名称。 |
value | 新的值。 |
事件
JsSIP.UA类定义了一系列事件。它们中的每一个都允许回调函数注册,以便让用户为每个给定的动作执行一个处理程序。
connecting
每个传输尝试连接触发。
事件data字段
参数 | 说明 |
---|---|
socket | JsSIP.Socket 实例正在连接。 |
attempts | Number 指示传输连接尝试。 |
connected
传输连接建立时触发。
事件data字段
参数 | 说明 |
---|---|
socket | JsSIP.Socket 已连接的实例。 |
disconnected
传输连接尝试(或自动重新尝试)失败时触发。
事件data字段
参数 | 说明 |
---|---|
socket | JsSIP.Socket 实例。 |
error | Boolean 指示套接字是否由于错误而断开连接 |
code | 可选Number指示套接字断开代码。 |
reason | 可选String指示插座断开原因。 |
registered
成功注册触发。
事件data字段
参数 | 说明 |
---|---|
response | JsSIP.IncomingResponse收到的SIP 2XX响应的实例。 |
unregistered
未注册。在下列情况下会触发此事件:
- 作为未注册请求的结果。UA.unregister()。
- 如果被注册,则定期重新注册失败。
事件data字段
参数 | 说明 |
---|---|
response | JsSIP.IncomingResponse接收到的(未)注册SIP请求的SIP响应实例。 |
cause | null以便对非注册 SIP请求进行正式响应。在其他情况下,失败和最终原因的一个值。 |
registrationFailed
因注册失败而触发。
事件data字段
参数 | 说明 |
---|---|
response | JsSIP.IncomingResponse如果失败是由接受的响应产生的,则接收到的SIP否定响应实例,否则返回null。 |
cause | 失败和最终原因的一个值。 |
registrationExpiring
在注册过期之前触发几秒钟。如果应用程序没有为此事件设置任何监听器,则JsSIP将像往常一样重新注册。
如果应用程序订阅了此事件,它负责ua.register()在registrationExpiring事件中调用(否则注册将过期)。
此事件为应用程序提供在重新注册之前执行异步操作的机会。对于那些在REGISTER请求中使用自定义SIP头中的外部获得的“令牌”的环境很有用。
newRTCSession
传入或传出的会话/呼叫触发。
data传入会话的事件字段
参数 | 说明 |
---|---|
originator | ‘远程’ String。新会话由远程的点生成。 |
session | JsSIP.RTCSession 会话实例。 |
request | JsSIP.IncomingRequest收到的INVITE请求的实例。 |
data传出会话的事件字段
参数 | 说明 |
---|---|
originator | ‘本地’ String。新会话由本地用户生成。 |
session | JsSIP.RTCSession 会话实例。 |
request | JsSIP.OutgoingRequest传出INVITE请求的实例。 |
newMessage
针对传入或传出的MESSAGE请求触发。
data传入消息的事件字段
参数 | 说明 |
---|---|
originator | ‘远程’ String。新消息由远程的点生成。 |
message | JsSIP.Message 实例。 |
request | JsSIP.OutgoingRequest传出MESSAGE请求的实例。 |
Class JsSIP.Registrator
JsSIP.Registrator类负责管理UA reigstration程序。
实例方法
setExtraHeaders(extraHeaders)
将自定义标题追加到每个注册 /取消注册请求。他们可以在任何时候被覆盖。
参数
参数 | 说明 |
---|---|
extraHeaders | Array的Strings额外SIP头被包含在每一个注册请求。将其设置null为删除它们。 |
ua.registrator.setExtraHeaders([ 'X-Foo: bar' ]);
setExtraContactParams(extraContactParams)
将自定义标题参数追加到每个注册 /取消注册请求的联系人标题中。他们可以在任何时候被覆盖。
参数
参数 | 说明 |
---|---|
extraContactParams | Object用表示标题参数名称和值的键表示它们的参数值。将其设置null为删除它们。 |
ua.registrator.setExtraContactParams([ x-vendor: 'FooBar', verified: true ]); // => ;x-vendor=FooBar;x-verified
JsSIP.RTCSession
该类JsSIP.RTCSession
表示WebRTC媒体(音频/视频)会话。它可以由本地用户或远程对等方发起。
它在内部拥有一个RTCPeerConnection
实例,可通过connection
属性访问。
实例属性
connection
RTCPeerConnection
与此会话关联的基础实例。用它来建立与WebRTC相关的事件(如onaddstream
,onaddtrack
等)。
请注意,对于拨出呼叫,呼叫RTCPeerConnection
后设置ua.call()
。但是,对于来电,在呼叫RTCPeerConnection
后设置session.answer()
。
direction
String
指示谁开始了会话。当会话由远程对等端启动时,可能的值为“传入”,或者当本地用户启动会话时,可能的值为“传出”。
local_identity
JsSIP.NameAddrHeader指示本地身份的实例。它与方向为’外向’时的INVITE From标头值相对应,当方向为’外向’时与To头部值相对应。
remote_identity
JsSIP.NameAddrHeader指示远程身份的实例。它对应于当方向为’外向’时的INVITE To标头值,以及方向为’外向’时的From头部值。
start_time
Date
对象指示会话开始的时间。在accepted
事件时触发。
end_time
Date对象指示会话结束的时间。在ended
事件时触发。
data
应用程序存储与此会话关联的自定义信息的对象。
data
自定义会话Object为应用程序使用空。开发人员可以在此添加自定义属性/值对。
实例方法
isInProgress()
如果会话过程中的状态返回true
(不是建立,不是结束)。
isEstablished()
如果会话已建立,则返回true
。
isEnded()
会话结束时返回true
。
isReadyToReOffer()
会话准备好了SDP重新协商(hold(),unhold()或renegotiate()方法),返回true
。
answer(options)
应答传入的会话。此方法仅适用于传入会话。
参数
参数 | 说明 |
---|---|
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
extraHeaders | Array的Strings额外SIP头为200 OK响应。 |
mediaConstraints | Object有两个有效的字段(audio和video)指示会话是否打算使用音频和/或视频以及要使用的约束条件。默认值根据收到的SDP报价设置。 |
mediaStream | MediaStream 传送到另一端。 |
pcConfig | Object代表RTCPeerConnection RTCConfiguration。 |
rtcConstraints | Object 代表RTCPeerConnection约束。 |
rtcAnswerConstraints | Object代表RTCPeerConnection的约束createAnswer()。 |
rtcOfferConstraints | Object代表RTCPeerConnection的限制createOffer()(将用于将来的传入reINVITE而不提供SDP)。 |
sessionTimersExpires | Number (以秒为单位)默认的会话定时器间隔(默认值为90,不要设置较低的值)。 |
抛出
INVALID_STATE_ERROR
terminate(options)
无论其方向或状态如何终止当前会话。
根据会话的状态,该函数可能会发送CANCEL请求,非2xx最终响应,BYE请求,甚至不发送请求。
对于传入的会话,如果用户没有应答传入的INVITE,则此函数将发送非2xx最终响应以及可选指定的状态码和原因短语。480 Unavailvable是默认回复的。
对于传出会话,如果原始INVITE尚未发送,则永远不会发送。如果最初的INVITE没有得到最终答复,则行为取决于是否收到临时答复。如果收到临时响应,则会发送CANCEL请求。如果没有收到临时响应,则该功能不会按照RFC 3261发送CANCEL。如果接收到临时响应,CANCEL请求将自动发送。
对于传入和传出,如果INVITE会话已用最终响应回复,则会发送BYE请求。
参数
参数 | 说明 |
---|---|
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
extraHeaders | Array的Strings额外SIP头的MESSAGE请求。 |
status_code | Number介于300和699之间,代表SIP响应代码。 |
reason_phrase | String代表SIP原因词组。 |
body | 表示SIP消息体的字符串(如果设置了此参数,则必须在extraHeader字段中设置相应的Content-Type标题字段)。 |
注意:当生成 CANCEL时,status_code可以取值从200到699.status_codeandreason_phrase将按照 RFC3326中的规定形成Reason标头字段。一个取消不会采取extraHeaders参数也没有body放慢参数。
抛出
INVALID_STATE_ERROR
sendDTMF(tone, options=null)
使用SIP INFO方法发送一个或多个DTMF音。
参数
参数 | 说明 |
---|---|
tone | String或Number由一个或多个有效的DTMF符号组成。 |
options | 可选Object额外参数。见下文。 |
可选Object额外参数。见下文。
参数 | 说明 |
---|---|
duration | 正数十进制Number表示以毫秒表示的音调持续时间。默认值是100。 |
interToneGap | 正数小数Number表示以毫秒表示的两个音调之间的间隔。默认值是500。 |
extraHeaders | 可选Array的Strings额外SIP头为每个INFO请求。 |
抛出
INVALID_STATE_ERROR
例1
call.sendDTMF(1); call.sendDTMF(4);
例2
var tones = '1234#'; var extraHeaders = [ 'X-Foo: foo', 'X-Bar: bar' ]; var options = { 'duration': 160, 'interToneGap': 1200, 'extraHeaders': extraHeaders }; call.sendDTMF(tones, options);
sendInfo(contentType, body=null, options=null)
发送SIP INFO消息。
参数
参数 | 说明 |
---|---|
contentType | String表示SIP INFO消息的内容类型头部字段值。 |
body | 可选String代表SIP INFO消息主体。 |
options | 可选Object额外参数。见下文。 |
options对象中的字段
参数 | 说明 |
---|---|
extraHeaders | 可选Array的Strings额外SIP头为每个INFO请求。 |
抛出
INVALID_STATE_ERROR
hold(options=null, done=null)
通过发送Re- INVITE或UPDATE SIP请求使呼叫保持。
如果此时重新协商不可能,则返回false
。
参数
参数 | 说明 |
---|---|
options | 可选Object额外参数。见下文。 |
done | Function重新谈判成功后可选择调用。 |
options对象中的字段
参数 | 说明 |
---|---|
useUpdate | Boolean发送更新而不是重新邀请 |
extraHeaders | rray的Strings额外SIP头的请求。 |
unhold(options=null, done=null)
通过发送Re- INVITE或UPDATE SIP请求恢复呼叫。
如果此时重新协商不可能,则返回false
。
参数
参数 | 说明 |
---|---|
options | 可选Object额外参数。见下文。 |
done | Function重新谈判成功后可选择调用。 |
options对象中的字段
参数 | 说明 |
---|---|
useUpdate | Boolean发送更新而不是重新邀请 |
extraHeaders | Array的Strings额外SIP头的请求。 |
renegotiate(options=null, done=null)
强制进行SDP重新协商。修改附加到底层的本地流RTCPeerConnection(通过connection属性)后有用。
如果此时重新协商不可能,则返回false
。
参数
参数 | 说明 |
---|---|
options | 可选Object额外参数。见下文。 |
done | Function重新谈判成功后可选择调用。 |
options对象中的字段
参数 | 说明 |
---|---|
useUpdate | Boolean发送更新而不是重新邀请 |
extraHeaders | Array的Strings额外SIP头的请求。 |
rtcOfferConstraints | Object代表RTCPeerConnection的约束createOffer()。 |
isOnHold()
返回一个Object属性为“local”和“remote”的Boolean值以及与每个属性关联的值。它表示“本地”和/或“远程”对等体是否处于保持状态。
例
rtcsession.isOnHold(); { 'local': true, // User has put the other peer on hold 'remote': false // Peer hasn't put user on hold }
mute(options=null)
静音本地音频和/或视频。
参数
参数 | 说明 |
---|---|
audio | Boolean 确定是否必须静音本地音频 |
video | Boolean 确定是否必须静音本地视频 |
unmute(options=null)
取消静音本地音频和/或视频。
参数
参数 | 说明 |
---|---|
audio | Boolean 确定本地音频是否必须取消静音 |
video | Boolean 确定本地视频是否必须取消静音 |
isMuted()
返回一个Object属性为“音频”和“视频”的属性以及Boolean与每个属性关联的值。它代表本地“音频”和/或“视频”是否静音。
例
rtcsession.isMuted(); { 'audio': true, // Local audio is muted 'video': false // Local audio is not muted }
refer(target, options=null)
将引用对象中的REFER方法作为引用资源发送给给定的目标。
REFER方法隐含地生成订阅的参考状态。从对等方收到的NOTIFY请求将以事件形式进行处理和呈现JsSIP.RTCSession.ReferSubscriber。
参数
参数 | 说明 |
---|---|
target | 参考资源。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。 |
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
extraHeaders | 可选Array的Strings额外SIP头的REFER请求。 |
eventHandlers | 可选Object的事件处理程序将被注册JsSIP.RTCSession.ReferSubscriber。 |
replaces | 可选JsSIP.RTCSession实例该对话框旨在替换参考目标。这是此用户代理与Refer-To资源指向的实时会话。 |
抛出
INVALID_TARGET_ERROR
resetLocalMedia()
通过启用其音频和视频轨道来重置本地MediaStream(除非远程对等体处于保留状态)。
事件
JsSIP.RTCSession类定义了一系列事件。它们中的每一个都允许回调函数注册,以便让用户为每个给定的触发执行一个函数。
peerconnection
一旦底层RTCPeerConnection被创建,就会被触发。例如,应用程序有机会通过添加对象RTCDataChannel或设置相应的事件侦听器来改变对等连接。
data传出会话中的事件字段
参数 | 说明 |
---|---|
peerconnection | 该RTCPeerConnection实例。 |
例
var datachannel; session.on('peerconnection', function(data) {
datachannel = data.peerconnection.createDataChannel('chat'); });
connecting
在本地媒体流被添加之后RTCSession并且在ICE收集开始之前触发初始INVITE请求或“200 OK”响应传输之后触发。
data传入会话中的事件字段
参数 | 说明 |
---|---|
request | JsSIP.IncomingRequest实例代表传入的INVITE SIP消息。 |
data传出会话中的事件字段
参数 | 说明 |
---|---|
request | JsSIP.OutgoingRequest表示传出INVITE SIP消息的实例。 |
sending
在发送初始INVITE之前触发(仅用于拨出电话)。它为应用程序提供了调用SIP INVITE或其SDP的机会。
data传出会话中的事件字段
参数 | 说明 |
---|---|
request | JsSIP.OutgoingRequest表示传出INVITE SIP消息的实例。 |
progress
在接收或生成对INVITE请求的1XX SIP类响应(> 100)时触发。
事件在SDP处理之前触发,如果存在的话,可以根据需要对其进行微调,或者通过删除对象中响应参数的主体来删除它data。
data传入会话中的事件字段
参数 | 说明 |
---|---|
originator | ‘本地’ String |
data传出会话中的事件字段
参数 | 说明 |
---|---|
originator | ‘遥远’ String。 |
response | JsSIP.IncomingResponse收到的SIP 1XX响应的实例。 |
accepted
接听电话时发出(2XX收/发)。
data传入会话中的事件字段
参数 | 说明 |
---|---|
originator | ‘本地’ String。 |
data传出会话中的事件字段
参数 | 说明 |
---|---|
originator | ‘遥远’ String。 |
response | JsSIP.IncomingResponse收到的SIP 2XX响应的实例。 |
confirmed
通话确认(ACK收/发)时触发。
data传入会话中的事件字段
参数 | 说明 |
---|---|
originator | ‘本地’ String。 |
data传出会话中的事件字段
参数 | 说明 |
---|---|
originator | ‘遥远’ String。 |
response | JsSIP.IncomingResponse收到的SIP 2XX响应的实例。 |
ended
当已建立的通话结束时触发。
事件data字段
参数 | 说明 |
---|---|
originator | ‘本地’/’远程’/’系统’ String。呼叫终止来自哪里。 |
message | JsSIP.IncomingRequest或JsSIP.IncomingResponse当originator值为’remote’ 时生成呼叫终止的实例,null否则。 |
cause | 失败和最终原因的一个价值。 |
failed
会议无法建立时触发。
事件data字段
参数 | 说明 |
---|---|
originator | ‘本地’/’远程’/’系统’ String。通话失败来自哪里。 |
message | JsSIP.IncomingRequest或JsSIP.IncomingResponse当originator值为’remote’ 时产生呼叫失败的实例,null否则。 |
cause | 失败和最终原因的一个价值。 |
newDTMF
为传入或传出的DTMF启动。
data传入DTMF的事件字段
参数 | 说明 |
---|---|
originator | ‘遥远’ String。新的DTMF由远程对端生成。 |
dtmf | JsSIP.RTCSession.DTMF 实例。 |
request | JsSIP.IncomingRequest收到的INFO请求的实例。 |
data传出DTMF的事件字段
参数 | 说明 |
---|---|
originator | ‘本地’ String。新的DTMF由本地用户生成。 |
dtmf | JsSIP.RTCSession.DTMF 实例。 |
request | JsSIP.OutgoingRequest传出INFO请求的实例。 |
newInfo
为传入或传出的SIP INFO消息而启动。
data传入SIP INFO消息的事件字段。
参数 | 说明 |
---|---|
originator | ‘遥远’ String。新的SIP INFO消息由远程对端生成。 |
info | JsSIP.RTCSession.Info 实例。 |
request | JsSIP.IncomingRequest收到的INFO请求的实例。 |
data传出SIP INFO消息的事件字段。
参数 | 说明 |
---|---|
originator | ‘本地’ String。新的SIP INFO消息。由本地用户生成。 |
info | JsSIP.RTCSession.Info 实例。 |
request | JsSIP.OutgoingRequest传出INFO请求的实例。 |
hold
当用户或同伴将另一方搁置时触发。
事件data字段
参数 | 说明 |
---|---|
originator | ‘远程’,String如果其他对等方已暂停该用户。’本地’,String如果用户已经挂起另一个对等体。 |
unhold
当用户或同伴恢复另一端保持时触发。
事件data字段
参数 | 说明 |
---|---|
originator | String如果其他对等方已将用户从保持状态恢复,则’远程’ 。’本地’,String如果用户恢复了另一个对等体的等待。 |
muted
本地媒体静音时被解雇。
事件data字段
参数 | 说明 |
---|---|
audio | Boolean 确定本地音频是否静音。 |
video | Boolean 确定本地视频是否静音。 |
unmuted
在当地媒体取消静音时被解雇。
事件data字段
参数 | 说明 |
---|---|
audio | Boolean 确定本地音频是否静音。 |
video | Boolean 确定本地视频是否静音。 |
reinvite
收到对话中的reINVITE时触发。
事件data字段
参数 | 说明 |
---|---|
request | JsSIP.IncomingRequest 收到的reINVITE请求的实例。 |
callback | 最初undefined。如果用户在这里设置了一个函数,那么一旦reINVITE被处理,它就会被执行。 |
reject() | 拒绝Method,如果再要执行INVITE被拒绝。默认情况下使用403响应代码。 |
事件data.reject()参数
参数 | 说明 |
---|---|
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
extraHeaders | Array的Strings额外SIP头的MESSAGE请求。 |
status_code | Number介于300和699之间,代表SIP响应代码。 |
reason_phrase | String代表SIP原因词组。 |
update
收到对话内更新时触发。
事件data字段
参数 | 说明 |
---|---|
request | JsSIP.IncomingRequest收到的更新请求的实例。 |
callback | 最初undefined。如果用户在这里设置了一个函数,那么一旦UPDATE被处理,它就会被执行。 |
reject() | 拒绝Method,如果再要执行INVITE被拒绝。默认情况下使用403响应代码。 |
事件data.reject()参数
参数 | 说明 |
---|---|
options | 可选Object附加参数(见下文)。 |
options对象中的字段
参数 | 说明 |
---|---|
extraHeaders | Array的Strings额外SIP头的MESSAGE请求。 |
status_code | Number介于300和699之间,代表SIP响应代码。 |
reason_phrase | String代表SIP原因词组。 |
refer
收到对话中的REFER时触发。
如果授权引用aproval,JsSIP.RTCSession则会向Refer-To标题字段中指示的目标生成新的传出。
该NOTIFY机制被用于通知代理器发送的REFER中定义的参考的状态RFC 3515。
NOTE:Refer-To资源可在传入属性中访问。JsSIP.IncomingRequest refer_to JsSIP.URI
事件data字段
参数 | 说明 |
---|---|
request | JsSIP.IncomingRequest收到的REFER请求的实例。 |
accept() | Method如果接受REFER,同意批准。这会生成一个传出JsSIP.RTCSession到由Refer-To URI标识的资源。 |
reject() | Method如果REFER被拒绝,同意拒绝执行。 |
事件data.accept()参数
参数 | 说明 |
---|---|
newRTCSession(session) | Function代表新事件的事件执行可选回调。如果没有定义,则前一个事件将被发射。JsSIP.UA newRTCSessionRTCSessionfunction |
options | 可选Object提供传出选项JsSIP.RTCSession。该参数的语义对应于方法的可选参数。JsSIP.UA call |
replaces
收到对话INVITE时,RTCSession通过Replaces标题字段指向此消息。
批准批准后,JsSIP.RTCSession当新的批准建立时,该批准终止。
事件data字段
参数 | 说明 |
---|---|
request | JsSIP.IncomingRequest收到的INVITE请求的实例。 |
accept() | Method如果INVITE被接受,同意批准。一个传入JsSIP.RTCSession将被生成。 |
reject() | Method如果INVITE被拒绝,同意拒绝执行。 |
事件data.accept()参数
参数 | 说明 |
---|---|
newRTCSession(session) | 可选回调Function代表新事件的事件执行。如果没有定义,则前一个事件将被发射。JsSIP.UA newRTCSessionRTCSessionfunction |
SDP
事件data字段
参数 | 说明 |
---|---|
originator | String指示SDP是本地生成的还是远程接收的。可能的值是local或remote分别。 |
type | String表明SDP是一个offer还是一个answer。 |
sdp | String代表SDP。修改必须直接在这个参数上完成。 |
getusermediafailed
内部通话getUserMedia()失败时触发。它提供了DOMError作为参数。
peerconnection:createofferfailed
内部通话createOffer()失败时触发。它提供了DOMError作为参数。
peerconnection:createanswerfailed
内部通话createAnswer()失败时触发。它提供了DOMError作为参数。
peerconnection:setlocaldescriptionfailed
内部通话setLocalDescription()失败时触发。它提供了DOMError作为参数。
peerconnection:setremotedescriptionfailed
内部通话setRemoteDescription()失败时触发。它提供了DOMError作为参数。
《JsSIP API》
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/158042.html