aoberoi / Opentok-.NET-SDK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenTok .NET SDK

This is a .NET implementation of the OpenTok API. See complete documentation at http://www.tokbox.com/opentok/api/tools/documentation/api/server_side_libraries.html.

Usage

Configuration

Include the OpenTok.cs file in your .NET project, then set the following properties in your web.config file.

<configuration>
 <appSettings>
    <add key="opentok_key" value="***API key***"/>
    <add key="opentok_secret" value="***API secret***"/>
    <add key="opentok_server" value="https://api.opentok.com"/>
    <add key="opentok_token_sentinel" value="T1=="/>
    <add key="opentok_sdk_version" value="tbdotnet"/>
 </appSettings>

Explicitly set your OpenTok API key and secret.

Generating Sessions

To generate an OpenTok session:

OpenTokSDK opentok = new OpenTokSDK();
string sessionId = opentok.CreateSession(Request.ServerVariables["REMOTE_ADDR"]);

To generate an OpenTok P2P session:

OpenTokSDK opentok = new OpenTokSDK();
Dictionary<string, object> options = new Dictionary<string, object>();
options.Add(SessionPropertyConstants.P2P_PREFERENCE, "enabled");
string sessionId = opentok.CreateSession(Request.ServerVariables["REMOTE_ADDR"], options);

Generating Tokens

To generate a session token:

string token = opentok.GenerateToken(sessionId);

By default, the token has the "publisher" permission. To generate a token with a different set of permissions:

Dictionary<string, object> tokenOptions = new Dictionary<string, object>();
tokenOptions.Add(TokenPropertyConstants.ROLE, RoleConstants.MODERATOR);
string token = opentok.GenerateToken(sessionId, tokenOptions);

You can also pass in additional token options like "connection_data" and "expire_time":

tokenOptions.Add(TokenPropertyConstants.EXPIRE_TIME, new DateTime(2011, 11, 17)); // A token that expires on 2011-11-17
tokenOptions.Add(TokenPropertyConstants.CONNECTION_DATA, "I am connection metadata passed down to all clients");

Contributions

Thanks to Robert Phan for the original source code contribution.

About