【问题标题】:How to reject WebRTC call如何拒绝 WebRTC 呼叫
【发布时间】:2013-02-01 14:30:36
【问题描述】:

我使用 WebRTC 制作了一个简单的调用应用程序。 我已经建立了连接,现在可以从一个浏览器调用另一个浏览器。

我仍然无法弄清楚并且在 WebRTC 标准中找不到的一件事是......我如何拒绝通话提议。

如果我收到来电者的报价,我正在考虑关注

if(msg.type == 'offer') {
    if(confirm(msg.sender+" is calling you ...")) {
        $.calling.calleePeer.setRemoteDescription(new RTCSessionDescription(msg));
        $.calling.calleePeer.addStream($.calling.localstream);
        $.calling.calleePeer.createAnswer($.calling.setLocalCalleeAndSendDescription, null, $.calling.mediaConstraints);

    } else {
        // TODO What to do here in order to reject the offer?
    }
}

现在,当我接受邀请后一切正常,但我如何让来电者知道我现在对通话不感兴趣?我想标准中内置了一些解决方案。

【问题讨论】:

  • 据我所知,拒绝连接请求的标准中没有内置任何内容。但是,您可以通过信令方法以多种方式对此类系统进行编码。例如,如果您使用 WebSocket,则在收到报价时向调用者发送一个“拒绝”字符串,然后让调用者相应地解释该字符串。

标签: javascript html html5-video webrtc html5-audio


【解决方案1】:

在 WebRTC 中,信令协议是您定义的任何协议,因此应用程序应该向对方发送一个命令,通知该提议被用户拒绝。

当你这样做时,你必须关闭双方的PeerConnection对象,浏览器将停止等待或尝试建立连接。

if(msg.type == 'offer') {
    if(confirm(msg.sender+" is calling you ...")) {
        $.calling.calleePeer.setRemoteDescription(new RTCSessionDescription(msg));
        $.calling.calleePeer.addStream($.calling.localstream);
        $.calling.calleePeer.createAnswer($.calling.setLocalCalleeAndSendDescription, null, $.calling.mediaConstraints);

    } else {
        $.calling.calleePeer.close();
        // Send a command to the other party (i.e. a response to the invitation) rejecting the offer.
    }
}

启动进程的客户端在收到拒绝时也应该这样做。

// I suppose you have something like this.
$.calling.callerPeer.close();

【讨论】:

  • 好的,所以标准中没有任何内容,我需要使用信令通道来做,谢谢
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多