如何使用JsSip结束webrtc呼叫?

时间:2020-06-18 11:21:11

标签: webrtc jssip

我所有的呼叫建立和终止排列都在起作用,除了一个。

当呼叫者挂断电话时,被呼叫者上的RtcSession会触发“结束”事件,在该事件中我调用RtcSession.terminate(),但这会引发异常“无效状态8”。我留下的红色录制图标仍显示在Chrome标签上,并且页面上的元素仍在计时。 我应该在“结束”事件处理程序中采取什么措施来正确关闭和释放音频通道?

代码和日志输出...

        'ended': (e: EndEvent) => {                                                                                                                                    
             console.log('[cs71] incoming call ended with cause: ' + e.cause, e, rtcsession);                                                                                
             rtcSession.terminate(); 
    } 
[cs71] incoming call ended with cause: Terminated {originator: "remote", message: IncomingRequest, cause: "Terminated"}cause: "Terminated"message: IncomingRequestbody: ""call_id: "c1f78de2-2bf6-1239-0e9b-54e1ad8bb9d6"cseq: 21685437data: "BYE sip:ls6kfceg@hv5oev3nq800.invalid;transport=ws SIP/2.0
↵Via: SIP/2.0/WSS 192.168.1.44:8089;branch=z9hG4bKjKDymcS0ter8g
↵Max-Forwards: 70
↵From: <sip:user7@192.168.1.44:40756>;tag=H3D3Qy5StX67F
↵To: <sip:ls6kfceg@hv5oev3nq800.invalid>;transport=ws;transport=udp;tag=55gpu8kiru
↵Call-ID: c1f78de2-2bf6-1239-0e9b-54e1ad8bb9d6
↵CSeq: 21685437 BYE
↵Content-Length: 0
↵
↵"from: NameAddrHeader {_uri: URI, _parameters: {…}, _display_name: undefined}from_tag: "H3D3Qy5StX67F"headers: {Via: Array(1), Max-Forwards: Array(1), From: Array(1), To: Array(1), Call-ID: Array(1), …}method: "BYE"ruri: URI {_parameters: {…}, _headers: {…}, _scheme: "sip", _user: "ls6kfceg", _host: "hv5oev3nq800.invalid", …}sdp: nullserver_transaction: NonInviteServerTransaction {_events: {…}, _eventsCount: 0, _maxListeners: undefined, type: "nist", id: "z9hG4bKjKDymcS0ter8g", …}to: NameAddrHeader {_uri: URI, _parameters: {…}, _display_name: undefined}to_tag: "55gpu8kiru"transport: Transport {status: 0, socket: WebSocketInterface, sockets: Array(1), recovery_options: {…}, recover_attempts: 0, …}ua: UA {_events: {…}, _eventsCount: 7, _maxListeners: undefined, _cache: {…}, _configuration: {…}, …}via: {protocol: "SIP", transport: "WSS", host_type: "IPv4", host: "192.168.1.44", port: 8089, …}via_branch: "z9hG4bKjKDymcS0ter8g"__proto__: IncomingMessageoriginator: "remote"__proto__: Object {rtcSession: RTCSession, __isRinging: "remote", __options: {…}}

exception INVALID_STATE_ERROR: Invalid status: 8
    at RTCSession.terminate (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:286:46)
    at RTCSession.ended (https://local-1-44.chalk.tel:8081/src/ChSip.js:74:34)
    at emitOne (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:990:236)
    at RTCSession.emit (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:994:49)
    at RTCSession._ended (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:468:2205)
    at RTCSession.receiveRequest (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:337:1044)
    at Dialog.receiveRequest (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:71:85)
    at UA.receiveRequest (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:832:97)
    at UA.onTransportData (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:871:133)
    at Transport._onData (https://local-1-44.chalk.tel:8081/lib/jssip-3.5.0.js:715:66)

0 个答案:

没有答案