JsSIP.RTCSession类定义了一系列事件。它们中的每一个都允许回调函数注册,以便让用户为每个给定的刺激执行一个函数。
peerconnection
创建基础RTCPeerConnection后激发。应用程序有机会更改对等连接,例如,在其上添加RTCDataChannel,或设置相应的事件列表中心。
var datachannel;
session.on('peerconnection', function(data) {
datachannel = data.peerconnection.createDataChannel('chat');
});
connecting
在本地媒体流被添加到RTCSession之后并且在ICE收集开始用于初始INVITE请求或“200 OK”响应传输之前激发。
传入/传出 会话中的事件数据字段(request:表示 传入/传出 INVITE SIP消息的 JsSIP.IncomingRequest/JsSIP.OutgoingRequest 实例)
sending
在发送初始INVITE之前激发(仅用于传出呼叫)。它为应用程序提供了破坏SIP INVITE或其SDP的机会。(传出会话data中request:表示传出INVITE SIP消息的JsSIP.OutgoingRequest实例。)
progress
在接收或生成对INVITE请求的1XX SIP类响应(>100)时激发。
该事件在SDP处理之前触发(如果存在),如果需要,可以对其进行微调,甚至可以通过删除数据对象中的响应参数主体来删除它。
传入会话中data数据(originator:'local')
传出会话中data数据(originator:'remote';response:JsSIP.IncomingResponse 接收到的SIP 1XX响应的实例。)
accepted
在接受呼叫时激发(接收/发送2XX)。
传入/传出数据同上
confirmed
在确认呼叫时激发(接收/发送ACK)。
传入/传出数据同上
ended
在已建立的调用结束时激发。
事件数据字段(originator =>'local'/'remote'/'system'字符串。呼叫终止来自哪里。message =>JsSIP.IncomingRequest或JsSIP.IncomingResponse实例在发起方值为“remote”时生成调用终止,否则为null。cause =>参考状态表)
failed
无法建立会话时激发。
事件数据字段(数据同上)
newDTMF
为传入或传出DTMF激发。
传入DTMF中data数据(originator:'remote'新的DTMF由远程对等方生成。dtmf =>JsSIP.RTCSession.DTMF 实例。request =>接收到的INFO请求的JsSIP.IncomingRequest实例。)
传出DTMF中data数据(originator:'local'新的DTMF由本地用户生成。 dtmf =>JsSIP.RTCSession.DTMF 实例。request =>接收到的INFO请求的JsSIP.OutgoingRequest实例。)
newInfo
为传入或传出的SIP INFO消息激发。
传入SIP INFO信息中data数据(originator:'remote'新的SIP INFO消息由远程对等方生成。info:JsSIP.RTCSession.Info 实例。request:接收到的INFO请求的JsSIP.IncomingRequest实例)
传出SIP INFO信息中data数据(originator:'local'新的SIP INFO消息。由本地用户生成。 info:JsSIP.RTCSession.Info 实例。request:接收到的INFO请求的JsSIP.OutgoingRequest实例)
hold
当用户或对等方将另一侧挂起时激发。
事件数据字段(originator:'remote'如果其他对等方已将用户挂起,则为字符串。'local’如果用户已将另一个对等方挂起,则为字符串。)
unhold
当用户或对等方从挂起状态恢复另一端时激发。
事件数据字段(同上)
muted
当本地媒体静音时激发。
事件数据字段(audio:布尔值确定是否将本地音频静音。video:布尔值确定是否禁用本地视频。)
unmuted
当本地媒体取消静音时激发。
事件数据字段(audio:布尔值确定是否将本地音频静音。video:布尔值确定是否禁用本地视频。)
reinvite
当收到对话框中的reINVITE时激发。
data数据字段(request =>接收到的reINVITE请求的JsSIP.IncomingRequest实例。callback =>最初未定义。如果用户在此处设置了一个功能,则在处理reINVITE后执行该功能。reject() =>如果re-INVITE被拒绝,则执行拒绝方法。403响应代码默认使用。)
data.reject()数据(
options=>{extraHeaders:具有用于MESSAGE请求的额外SIP标头的字符串数组;status_code:300到699之间的数字,表示SIP响应代码;reason_phrase:表示SIP原因短语的字符串})
update
当收到对话框中的UPDATE时激发。
事件数据字段(数据同上 reINVITE=>UPDATE)
refer
当收到对话框中的REFER时激发。
如果授予了转介权限,则会有一个新的传出JsSIP。RTCSession生成到Refer to标头字段中指示的目标。
NOTIFY机制用于向发送REFER的代理通知RFC 3515中定义的引用的状态。
注意:可以在传入的JsSIP中访问“参考”资源。收入申请参考JsSIP。URI属性。
事件数据字段(request:接收到的REFER请求的JsSIP.IncomingRequest实例。accept():如果REFER被接受,则执行同意批准方法。这将生成一个传出JsSIP.RTCSession到由引用URI标识的资源。reject():如果REFER被拒绝,则执行拒绝同意的方法。)
data.accept()
中的参数 (newRTCSession(session) =>代表JsSIP执行的可选回调函数。新传出RTCSession的UA newRTCSession事件。如果未定义此函数,则会发出前一个事件。options =>为传出JsSIP提供选项的可选对象。RTCSession。此参数的语义对应于JsSIP的可选参数。UA调用方法。)
data.reject()中的参数(此方法不需要任何参数。)
replaces
当通过Replaces标头字段接收到指向此RTCSession的对话框外INVITE时激发。授予批准将生成当前JsSIP.RTCSession在建立新的RTCSession时终止。
事件数据字段(request:接收到的INVITE请求的JsSIP.IncomingRequest实例。accept():
如果接受INVITE,则执行同意批准方法。一个传入的JsSIP。将生成RTCSession。reject():如果INVITE被拒绝,将执行的同意拒绝方法。)
data.accept()中的参数(
newRTCSession(session) =>代表JsSIP执行的可选回调函数。新传入RTCSession的UA newRTCSession事件。如果未定义此函数,则会发出前一个事件。)
data.reject()中的参数(此方法不需要任何参数。)
sdp
在将远程SDP传递给RTC引擎之前以及在发送本地SDP之前激发。
此事件提供了修改传入和传出SDP的机制。
事件数据字段(originator =>指示SDP是本地生成的还是远程接收的字符串。可能的值分别为local或remote。type =>指示SDP是offer还是answer的字符串。sdp =>表示SDP的字符串。必须直接对此参数进行修改。)
getusermediafailed
当对getUserMedia()的内部调用失败时激发。它提供DOMException作为参数。
peerconnection:createofferfailed
当对createOffer()的内部调用失败时激发。它提供DOMException作为参数。
peerconnection:createanswerfailed
当对createAnswer()的内部调用失败时激发。它提供DOMException作为参数。
peerconnection:setlocaldescriptionfailed
当对setLocalDescription()的内部调用失败时激发。它提供DOMException作为参数。
peerconnection:setremotedescriptionfailed
当对setRemoteDescription()的内部调用失败时激发。它提供DOMException作为参数。