2013-02-16 36 views
1

我已經使用WebRTC製作了一個簡單的調用應用程序。 我建立了一個連接,現在我可以從一個瀏覽器調用另一個。如何拒絕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? 
    } 
} 

現在,當我接受這個提議一切正常,但我怎麼能告訴對方,我不是在通話有趣的來電報價馬上?我想有一些解決方案構建到標準中。

謝謝

+1

據我所知,拒絕連接請求的標準沒有任何內容。但是,您可以通過您的信令方法以任意數量的方式對此係統進行編碼。例如,如果您使用的是WebSocket,則在收到offer後向調用者發送「拒絕」字符串,然後讓調用者相應地解釋該字符串。 – HartleySan 2013-02-18 08:04:04

回答

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(); 
+0

沒問題,所以標準中沒有內容,我需要使用信號通道來做,謝謝 – 2013-02-18 11:56:50