2013-02-16 2 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을 사용하는 경우 쿠폰을 받으면 호출자에게 "거부"문자열을 보내고 그에 따라 호출자가 해당 문자열을 해석하도록합니다. – HartleySan

답변

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

ok 표준에 빌드가 없으므로 신호 채널을 사용해야합니다. 감사합니다. –

관련 문제