Cisco Meeting Server powershell module v0.4

So the Acano server got released in version 2 almost two months ago, and with that changed name to Cisco Meeting Server as a result of the Cisco aquisition. The PsAcano powershell module of course needed a name change as well, so the module is now called PsCms.

All functions have had their prefix changed from Acano to Cms, so for instance Get-AcanoCall is now called Get-CmsCall and so on. I’ve added all the old function names as aliases for the new names, so existing scripts should not be broken.

I’ve also added all the changes that was made to the API in CMS 2.0 as well.

So without further ado, here’s PsCms version 0.4!

Skype for Business Broadcast Meeting and Xsplit

I got a question about a blogpost I made about Skype for Business Broadcast Meetings and Xsplit and realised that it had been quite som time since I tested this myself. This video is me chatting while testing what could be done.

Every time I get audio through my own speakers the sound degrades quite a bit, sorry about that. It is especially noticeable at the end when I’m playing with the Chrome web app.

I also did not get the audio from the video I played, I’ll try messing around with audio settings to see how it can be done.

If anyone wants to see the broadcast meeting itself, it is available here, although I don’t know for how long.
https://join-emea.broadcast.skype.com/advania.no/a05795dc-e498-4b20-a38c-292f9abcdd67

Import sites and subnets to Skype4B from AD sites and services

Wether it is to use for Call Admission Control or just to get pretty results on the location report on the monitoring server, I usually like to populate network regions, sites and subnets in the Skype for Business topology in every deployment I do.

Untitled picture

Pretty, pretty dataūüôā

In many, if not most, environments I deploy in, the admins have taken their time to set up AD sites and services with the correct site names, so there’s no point in doing that job twice. I’ve made this script which takes the contents of the Sites container and imports¬†it into the Skype for Business topology.

I’ve come across a couple of ways to convert AD sites to Skype for Business network topology, either adding all sites to one region, or converting the sites to regions themselves and adding offices manually. I also want to expand the script so that you can choose which region and site a given subnet belongs to for each subnet in sites and services.

Usage:

Run the .ps1 and then

Import-ADSitesAndSubnets -Regionid Someregion

or

 Import-ADSitesAndSubnets -UseSiteAsRegion 

And the script:

 

Error when moving user from Skype4B onprem to online

In a freshly set up Skype for Business hybrid environment we got this error after trying to move the first user from onprem to online:

HostedMigration 510 error : the user could not be moved because the tenant has not been enabled for shared SIP address spaces

After verifying that both the tenant and onprem environment is actually set up for shared address spaces with

Get-CsTenantFederationConfiguration

and

Get-CsHostingProvider

the issue is still there.

I did¬†find a blogpost and an ms forum post on this, but in both those cases the problem seemed to be some caching of some sort and solved itself, which it didn’t in my scenario.

It turned out that the user were homed in a child domain and the FE pool in the root domain. The problem was solved by running the Move-CsUser Cmdlet with the -DomainController parameter as well, like this:

Move-CsUser -Identity user@contoso.com -Target sipfed.online.lync.com -Credential $cred -HostedMigrationOverrideUrl "https://adminXX.online.lync.com/HostedMigration/hostedmigrationService.svc" -DomainController dc.contoso.com

Remember that your HostedMigrationOverrideUrl will probably be different, just log in to the SFBO admin portal to get yours.

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.