Learn Skype Web SDK Day 27 : Joining a Conference via URI
[contemplate-1]
View Demo
You can use Skype for Web API to join existing conferences, either ones you’ve set up somewhere else, or conferences set up by other people. All you need is the Conference URI, which looks like a SIP address, e.g. sip:[email protected];gruu;opaque=app:conf:focus:id:Q740UACR.
Instead of using the conversationsManager object to create a new conversation, you can use it instead to retrieve the conversation object which represents the conference, by calling getConversationByUri and passing in the conference URI:
[code language=”javascript”]
conversation = client.conversationsManager.getConversationByUri(conferenceURI);
[/code]
Once you have that, you don’t need to add any participants or anything (because you’re not creating a new conversation, just joining an existing one), you can just call:
[code language=”javascript”]
conversation.chatService.start();
[/code]
to join with IM, and/or:
[code language=”javascript”]
conversation.audioService.start();
[/code]
to join with Audio.
Of course, you may still want to subscribe to state changes, new historyService messages etc etc, as you would for a new conversation that was being created. See the example code for this post below for more information on doing that.
[code language=”javascript”]
var pageTitle = 'Joining a Conference by URI'; var blogPostLocation = "http://thoughtstuff.co.uk"; var githubLocation = "http://github.com";
var client; $(function () { 'use strict';
Skype.initialize({ apiKey: 'SWX-BUILD-SDK', }, function (api) { client = new api.application();
// whenever client.state changes, display its value client.signInManager.state.changed(function (state) { $('#loginStatus').text("Login State: " + state); });
}, function (err) { alert('Error loading Skype Web SDK: ' + err); });
$('#btnLogIn').click(function () {
// start signing in client.signInManager.signIn({ username: $('#username').val(), password: $('#password').val() }).then(function () { //log in worked! alert('Logged in!'); $('#btnStartConversation').prop('disabled', false);
}, function (error) { //Something went wrong. alert(error); }); });
$('#btnLogOut').click(function () { // start signing out client.signInManager.signOut() .then(function () { //log out worked! alert('Logged out!'); $('#btnStartConversation').prop('disabled', true); $('#btnSendIM').prop('disabled', true); }, function (error) { //Something went wrong. alert(error); }); });
$('#btnStartConversation').click(function () { StartConversation(); });
$('#btnSendIM').click(function () { conversation.chatService.sendMessage($('#message').val()); });
function StartConversation () { var conferenceURI = $('#confURI').val(); conversation = client.conversationsManager.getConversationByUri(conferenceURI);
//register for the conversation state changing to connected. conversation.chatService.state.changed(function(newState){ $('#lblConversationState').text(newState); if (newState == 'Connected') { $('#btnSendIM').prop('disabled', false); //safe to send IMs now } });
//register for new messages added to the historyService object conversation.historyService.activityItems.added(function (newMsg){ if (newMsg.type() == 'TextMessage') { var direction; if (newMsg.direction() == 'Incoming') direction = "<--"; else { direction = "-->"; }
$("#conversationText").append('
'); } });
conversation.chatService.start();
}
});
[/code]
Demo Online
You can try this code out against your own Skype for Business environment by going to the demo page. From here you can also download the code from GitHub if you want to host it locally, or take it and use it in your next project.
[contemplate-2]


