Skip to content

Instantly share code, notes, and snippets.

@hbaqai
Last active August 29, 2015 14:07
Show Gist options
  • Save hbaqai/9cc97a9633baf8b6ed50 to your computer and use it in GitHub Desktop.
Save hbaqai/9cc97a9633baf8b6ed50 to your computer and use it in GitHub Desktop.
Handling No Camera and Mic Using OpenTok
<!DOCTYPE HTML>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://static.opentok.com/webrtc/v2.2/js/TB.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
//environment test
console.log("environment test: " + window.location.href.indexOf("http"));
console.log("OT version: " + OT.properties.version);
//Enter your own valiues for the variables below.
//You can find these by logging into the dashboard page
//and navigating to the Projects tab: https://dashboard.tokbox.com/keys
var apiKey = 38169452;
var sessionId = "2_MX4zODE2OTQ1Mn5-MTQxMzkxNDg4NDE3OX5hM25sd3JLd0JaV2NFbUZ3SnVlMzVCRnV-fg";
var tokenId = "T1==cGFydG5lcl9pZD0zODE2OTQ1MiZzaWc9YTUyNjc5MzkxYTQ1Yzg3MDlmN2MzZTI2ZGMwNjQ2ZmQ5ZjlhZGNlNDpyb2xlPW1vZGVyYXRvciZzZXNzaW9uX2lkPTJfTVg0ek9ERTJPVFExTW41LU1UUXhNemt4TkRnNE5ERTNPWDVoTTI1c2QzSkxkMEphVjJORmJVWjNTblZsTXpWQ1JuVi1mZyZjcmVhdGVfdGltZT0xNDEzOTE0ODkxJm5vbmNlPTAuNjkyODA0MTIzNjE1MDYxOSZleHBpcmVfdGltZT0xNDE2NTA2ODc2";
//Add TB handler and set log level
OT.on("exception", exceptionHandler);
OT.setLogLevel(OT.DEBUG);
//initialize the session, publisher
var session = OT.initSession(sessionId);
var publisher = OT.initPublisher(apiKey);
var subscriber;
//OT callbacks
/*
OT.on("exception", function(error){
console.log("OT Exception thrown!: " + error);
debugger;
});*/
//onexception
OT.on("exception", function(event){
console.log("OT.exception: " + event);
})
//session callbacks
session.on("sessionConnected", sessionConnectedHandler);
session.on("sessionDisconnected", sessionDisconnectedHandler);
session.on("connectionCreated", connectionCreatedHandler);
session.on("connectionDestroyed", connectionDestroyedHandler);
session.on("streamCreated", streamCreatedHandler);
session.on("streamDestroyed", streamDestroyedHandler);
session.on("streamPropertyChanged", streamPropertyChangededHandler);
session.on("signal",signalHandler );
//publisher callbacks
publisher.on("accessAllowed", accessAllowedHandler);
publisher.on("accessDenied", function(){
console.log("**************************");
// for(var i=0; i < arguments.length; i++){
// console.log("argument " + i + ": " + arguments[i]);
// }
console.log("onStreamAvailable error!: ");
console.log("**************************");
});
publisher.on("accessDialogClosed", accessDialogClosedHandler);
publisher.on("accessDialogOpened", accessDialogOpenedHandler);
function signalHandler(event) {
console.log("foo signal sent from connection " + event.from.id);
}
//connect to the session
session.connect(apiKey, tokenId);
console.log("connected");
//implement event handlers
function sessionConnectedHandler(event) {
console.log("sessionConnectedHandler event executed.");
session.publish(publisher);
}
function sessionDisconnectedHandler(event) {
console.log("sessionDisconnectedHandler event executed.");
}
function connectionCreatedHandler(event){
console.log("connectionCreatedHandler event executed");
}
function connectionDestroyedHandler(event){
console.log("connectionDestroyed event executed");
}
function streamCreatedHandler(event) {
console.log("streamCreatedhandler event executed.");
subscriber = session.subscribe(event.stream);
subscriber.on("videoDisabled", videoDisabledHandler);
//subscriber.restrictFrameRate(true);
}
function streamDestroyedHandler(event) {
console.log("streamCreatedHandler event executed.");
session.subscribe(event.stream);
}
function streamPropertyChangededHandler(event) {
console.log("streamPropertyChangededHandler event executed");
}
function exceptionHandler(event) {
console.log("exceptionHandler event executed: ");
console.log("event.code: " + event.code);
console.log("event.message: " + event.message);
}
//publisher callbacks
function accessAllowedHandler(event){
console.log("accessAllowedHandler");
}
function accessDeniedHandler(event){
console.log("accessDeniedHandler");
}
function accessDialogClosedHandler(event){
console.log("accessDialogClosedHandler");
}
function accessDialogOpenedHandler(event){
console.log("accessDialogOpenedHandler");
}
//QOE Signal Sent
function videoDisabledHandler(event){
console.log("QOE Signal sent - videoDisabledHandler");
}
</script>
</head>
<body>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment