【JsSIP】JsSIP.RTCSession-事件详情

本文详细介绍了JsSIP.RTCSession类中的各种事件,如peerconnection、connecting、sending等,这些事件让开发者能够控制WebRTC通信过程中的关键阶段,包括媒体流处理、SDP协商和错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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作为参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值