Invitation_template.txt works in the Acano Client, but not in the WebRTC client

I’ve been delivering an Acano Certified Engineer II class this week, and one of the labs is to create call branding for the Acano lab deployment.

On the Acano server you can customize the meeting invitation by using a template file uploaded to a webserver. What happened in the lab was that all the students were able to see the custom template work in their Acano clients, but when they logged in to the webRTC client on the webbridge, it fell back to the default template.

We found a file from a known working deployment and used that, and suddenly it started working in both clients. So at least we knew that the file itself was the problem. A couple of the students compared the files, and the working one was encoded as UTF-8 while the non-working one was encoded as UTF-8-BOM. The Acano docs states that the file needs to be UTF-8 encoded which they are, and apparently the Acano client handled the BOM addition fine while the webbridge didn’t.

After googling a bit it seems that windows notepad is not capable of saving UTF-8 without BOM, so the solution ended up being to use notepad++ and save it as UTF-8 without BOM there.

Manage Acano server with Powershell: PSAcano version 0.3 released

Acano server 1.9 was released 6.6.2016, and with it came some new features, most notably the ability to record meetings within the Acano server.

This also means that the API has been updated, so PsAcano needed an update as well. PsAcano version 0.3 adds all the new parameters and the entire new recording possibility to the module.

The release can be downloaded from here or you can run

iex (New-Object Net.WebClient).DownloadString("https://gist.githubusercontent.com/tomlarse/5f43bbe0e763cea379ca/raw/83054527ca5e5433e466f55106ea145bec330435/installmodule")

in powershell to install the module.

As always, please report issues, and feel free to contribute if you feel you have anything to add!

 

 

Integrating Acano callbridge with more than one Skype for Business Front End pool

When integrating an Acano callbridge with Skype for Business (or any of the Lync versions), one of the tasks needed is to provide the callbridge with one or more SfB-enabled users that it can use to obtain MRAS credentials so that it can send media through the SfB edge server to external SfB users. This user is also used by the callbridge to look up SfB conference ID’s when using multi-homed conferencing.

This is normally configured in the webadmin under the “Lync Edge settings” heading, found under Configuration->General. Funnily enough, none of these settings actually reference the edge servers in any way, the callbridge registers this (these) user(s) to the front end pool and is provided with the MRAS URI (basically the SfB edge TURN credentials) during the registration process.

Untitled picture

The “Number of registrations” field dictates how many users the server will register, you need one for every 12 simultaneous calls you need to support through the SfB edge. If this is set to one the server will register the sip address configured in the username field, if it is set to a number greater than 1 it will register a sequence of users like this

service_account1@contoso.com
service_account2@contoso.com
service_account3@contoso.com

and so on. If you have only one FE pool in your SfB environment you are now done and may move on.

If you happen to have more than one FE pool in your environment though, you will have to add all of them to the Acano configuration. It is only possible to add 1 through the web interface though, so in this case they will have to be added one by one through the API. You can use Postman or some other REST client for this, or you can use the PsAcano powershell module like this:

You can use the same service accounts for all FE pools.

NOTE: The callbridge is added to the SfB environment as a trusted application pool using -TreatAsAuthenticated $true, so we do not need to provide a password for the users as the callbridge is authorized to authenticate users for the SfB environment.

EnableSessionTicket from Powershell

To get support for Lync and Skype for Business on Windows Server 2012 R2, you need to add a registry key that changes TLS session caching on 2012 R2 Server. This is described here https://support.microsoft.com/en-us/kb/2901554

To create this key, use the following powershell oneliner:

Manage Acano server with Powershell: PSAcano version 0.2 released

v0.1 post is here

I’ve finally gotten time to complete coding of the 0.2 release of the PSAcano powershell module.

The module now contains all GET, POST, PUT and DELETE commands from the Acano API documentation, and everything that is possible to do with the API should now be possible to script in powershell.

Error handling is still not in the module, this is planned for the 0.3 release, I’ll be adding that the next couple of weeks.

You can download the latest release here, or you can clone the project with Git from here.

There are two branches that get updated frequently, master and dev. The master branch will be considered stable, and will have features added between releases. The dev branch is considered unstable and this is where active developement happens.

Here’s an example on how to add a call (call leg) to a coSpace using the module:

Then you can just run

Add-Participant -CoSpace df2d3e44-91ff-48f4-aeca-ffd951641ebe -SipUri anne.wallace@contoso.com

to add a participant.

PS Oneliners: Set Skype4B services to manual or automatic startup

If you need to reboot a Skype for Business server, you might not always want the services to start automatically afterwords for various reasons. For instance if you are doing a shutdown of an entire pool, you’d want to run

Start-CsPool -PoolFqdn skypepool.contoso.com

to do a cold start of the pool, instead of the services starting automatically.

Use these oneliners to set the services to manual startup and back again to automatic afterwords.

Producing Skype Meeting Broadcast for webinars and webcasts

The last couple of months Skype Meeting Broadcast has been available in technical preview and we’ve been testing it as a platform to deliver webinars and webcasts on a couple of occations. This post is a writeup on our experiences from this.

Scheduling and set up

This process is fairly straight-forward. If your tenant has Skype Meeting Broadcast enabled, you log in to https://broadcast.skype.com/ with your Office 365 credentials and you are good to go

The first screen that you are presented with is a calendar that neatly displays all your scheduled broadcasts, and where you can schedule new meetings

2015-12-01_13-27-55

If you click “New Meeting” you will be taken to the create meeting page where you can set the name, time and duration of the meeting. You will also be able to create an event staff and choose what kind of audience will be able to join the broadcast. For webinars all of these could possibly be used, we have most often used it with the Anonymous setting.

2015-12-01_13-21-56

The duration can be set to a maximum of 4 hours, but we’ve been having casts extend that with almost double that time without issue.

After the initial set ut you are presented with an overwiew page that can also be accessed by clicking the meeting in the dashboard overview. Here you can get the link to the broadcast and also create an outlook invitation for the broadcast. You are also able to customize the broadcast from here.

2015-12-01_13-36-35

Currently “customizing” means that you can add two modules to the broadcast page, one in the sidebar and one below the broadcast. As of writing this post, two options are available as content to these modules:

  • Add discussion from a Yammer page
  • Bing Pulse integration

I haven’t played with Bing Pulse at all, so I don’t really know what it can do, but the Yammer integration has been really useful and adds a real time feedback mechanism to a one way communication scenario. You need to create a group in a Yammer network that all participants can access to be able to use it, so information about this should be included in the invite, so the participants have time to prepare for this before the webcast.

Broadcast Startup

Prior to the broadcast start, event staff should join the meeting and get set up by starting video and uploading content to the broadcast. The event staff could consist of both presenters and producers in the meeting, but what we have found to be the best is to only have producers as staff and join the presenters to the meeting as a normal Skype meeting participant, more on that later.

The meeting join link is found on the meeting summary page and the link is used by both staff and participants

2015-12-01_13-47-37

Staff click the Sign in as event team member button. The Skype for Business client will start up as normal and staff joins the broadcast as a normal Skype meeting, but with some small differences in the user interface. Once joined and a powerpoint is uploaded this is what it looks like:

2015-12-01_13-57-22

Those familiar with the meeting UI will notice a couple of new buttons next to the presentation. This is where you control the broadcast and layout of the screen. Once an active video is selected, you are able to start the broadcast and select between the following layouts

  • Video Only
  • Video and Content
  • Content only

These layouts can be switched between throughout the broadcast and can be used by the producers to break up the broadcast a bit. They shouldn’t be switched between too often, but is a nice way to add some flavour to the broadcast. The “Video and Content” layout will display the presentation with the video in a small picture on the right side of the broadcast feed.

One thing to be aware of, once the broadcast has started all sound in the meeting will be broadcast as well, so this meeting should not be used to communicate between producers and presenters. IM’s will not be displayed, so that should be the preferred method of communicating behind the scenes.

Also, once the broadcast has started it can not be stopped again without ending the entire broadcast. Do not use the Stop Broadcast button to pause the broadcast!

After the broadcast has ended a recording will be available on the meeting link, provided the “Enable meeting video recording” checkbox was checked during meeting set up.

With this we’ve covered the basics of producing a Skype Meeting Broadcast, but this leaves a couple of things to be desired.

Producers and presenters

it is fully possible to be both a presenter and a producer in a meeting, but often a presenter will not have the technical ability to produce their own meeting and in those cases it might not even be a good idea to give them the opportunity. Once one staffmember has joined the broadcast meeting it is fully possible to join presenters to the meeting as in a normal Skype meetin, either via drag and drop or via the meeting entry info which will contain a normal meeting join link to the meeting. This is not the same as the broadcast meeting join link.

If presenters join this way, you are able to select them as main video for the broadcast, and they will be able to present content to the meeting, but they will not be able to control starting and stopping the brodcast and will not have access to the layout controls. We have found this to be a very good solutions in cases where you want to separate production and content presentation.

What we also have found in these cases is that it is a very good idea to have at least two participants with producing capabilities in the meeting at all times, in case one of them drops out of the meeting. This can happen for various reasons, but the most common are network issues or computer crashes.

Advanced content sharing

The only possible content to present in a broadcast is a powerpoint presentation. No other content that the Skype for Business client normally can present is available to broadcast. There is also a limitation in that only one video source can be broadcast at the same time, gallery view can not be broadcast.

To work around this I’ve been using XSplit Broadcaster which is a software that will take a lot of input sources, for instance media files, desktop areas, youtube videos etc and is able to in real-time create a video stream to a virtual webcam that can be used to send video in to a Skype meeting. In this way we can sow together our own layout for the content presentation and providing a lot more options for the content in the presentation. The entire layout is sent to the meeting as one video stream and uses the “Video Only” layout in Broadcast Meeting.

The only issue with Xsplit is that the virtual webcam that comes with it uses Direct Media to display the image, and the Skype for Business client only supports Windows Media Foundation. This means that the windows desktop client is not able to read from this virtual webcam. The workaround for this has been to join the meeting from the web app client in a Chrome browser. Chrome can access Direct Media devices, and can in that way send the video created by XSplit in to the meeting broadcast.

This has enabled us to use broadcast meeting with some advanced features, amongst others:

  • Display video from all presenters on top of the presented content
  • Display live demos from the desktop
  • Send prerecorded video in to the broadcast
  • Live drawing on top of a presentation
  • Setting up a pause screen with countdown to when the broadcast will resume

And so on.

Using XSplit and Broadcast meeting together, we’ve made some really professional looking webinars. In one case for instance, I used teamviewer to capture the desktops of the presenters and with XSplit i combined those with both their videos and sent them to the meeting in several different layouts depending on the situation. This enabled me to produce a meeting from one computer where me and the two presenters all where separated by great distances physically. If we’d been in the same room, it would also be possible to use different pro-grade cameras as well, in stead of the webcams.

I am certain that there exists other kinds of software that does the same as XSplit as well, please let me know about them!

Concluding tips

  • Always be more than one producer, or at least as producer have two computers joined to the meeting as staff, preferably on two separate internet connections if the broadcast is important.
  • Prepare. Always prepare all aspects of the entire event well in advance
    •  Will we use Yammer or Bing Pulse?
      • Accounts need to be set up and participants need information about joining
    • What kind of content do we need?
      • Is it enough with only Powerpoints as shared content?
    • Producers should have access to agenda and content in advance to create a plan for layouts and layout switching, especially if using anything other than pure powerpoint presentations.
  • Never ever press the “Stop Broadcast” button unless the broadcast is fully completed.
  • Familiarize yourself with the platform before you start producing broadcasts. Run several test broadcasts.