4

我正在使用 Mozilla 的应答呼叫文档来应答Mozilla Firefox 35.0.1中的 WebRTC 呼叫,但每次我尝试在对等连接上设置本地描述时都会失败。

错误是带有以下消息的INTERNAL_ERROR :

无法启动媒体频道原因 = OK

我的代码是用 CoffeeScript 编写的,但希望它易于阅读:

_create_answer: =>

  # @param {mozRTCSessionDescription} answer the SDP answer.
  on_answer_success = (answer) =>
    console.log 'Create Answer: OK', answer

  on_local_sdp_success = () =>
    console.log 'Set local SDP (answer): OK'
    @_send_local_sdp answer

  on_local_sdp_failure = (error) =>
    console.log "#{error.name} - #{error.message}"

  console.log '(5) Set local SDP.', @logger.levels.INFO
  @pc.setLocalDescription answer, on_local_sdp_success, on_local_sdp_failure

如您所见,在对等连接上设置本地描述是第五步。以下是我之前执行的步骤:

  1. 请求用户媒体流 ( navigator.getUserMedia)
  2. 设置本地媒体流 ( pc.addStream / pc.onaddstream)
  3. 设置远程 SDP ( pc.setRemoteDescription)
  4. 创建答案 ( pc.createAnswer)
  5. 设置本地 SDP ( pc.setLocalDescription)

这是 Firefox 生成的 SDP 答案,我尝试通过以下方式设置对等连接pc.setLocalDescription

v=0
o=Mozilla-SIPUA-35.0.1 2330 0 IN IP4 0.0.0.0
s=SIP Call
t=0 0
a=ice-ufrag:c6dc3e0f
a=ice-pwd:8ab875b276043fa2e76effc4fbe77014
a=fingerprint:sha-256 F5:53:7F:74:A4:3E:27:8F:4B:BC:64:37:ED:96:BD:2D:0D:22:49:FB:E5:AF:8C:E7:05:41:5F:EF:7F:F1:D9:A0
m=audio 9 RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtpmap:96 opus/48000/2
a=ptime:20
a=sendrecv
a=setup:active
a=rtcp-mux

我需要注意其他事情吗?

4

1 回答 1

0

这可能与转向全涓流 ICE 有关。您需要在正确的时间设置 onececandidate,然后安装它们。请参阅webrtc_landing/pc_test以获得一个稍微复杂的示例(通过在一个页面中有两个对等连接,调用自身而变得复杂,因此您必须小心不要在有问题的对等连接准备好之前安装 ice 候选者(请参阅源该页面)。此外,还有很多复选框选项可以打开和关闭不同的功能。

该示例页面可能需要小幅更新。一旦您的代码正常工作,请随时进入并更正它!(如果有问题,请向我提供更新)

于 2015-02-09T14:40:33.443 回答