我使用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?
}
}
现在当我接受这个提议时一切正常,但我怎么能让来电者知道我现在对这个电话没什么兴趣?我想标准中有一些解决方案。
谢谢
答案 0 :(得分:0)
在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();