Browsing the archives for the configuration tag.

How to Create a Custom Monitoring Report in Skype for Business (and Lync Server)

Lync Server 2013, Skype for Business, SQL Server 2012

In August I promised a post on creating custom Monitoring Reports. Here are the previous Monitoring Server posts, for reference:
“Which Monitoring Report Should I Use for X?” (Part 1)
“Which Monitoring Report Should I Use for X?” (Part 2)

Time to deliver!

1. Determine which criteria you want to employ in the custom report.

I’d wager your reason is to combine several different Monitoring data into one report. Or to drill down on a specific data point. Either way, start by defining the specifics before you even touch the Monitoring Server.
First, choose from the available Monitoring categories:

  • System health
  • System usage
  • CDR Data
  • Per-User Failed Sessions (Peer to Peer, Conferencing)
  • Diagnostic Data (Peer to Peer, Conferencing)
  • Call Quality
  • User Activity
  • Failed Call Diagnostics

For a list of metrics belonging to these categories, see this TechNet page: Using the Monitoring Dashboard in Skype for Business Server 2015 – TechNet

Also consider time period. Do you want reporting on the past 2 weeks? 30 days? Longer? You’ll have to factor this in too.

Finally, clarify the goal of this report. Do you want to keep an eye on Sales’ call quality? Monitor the system health at a branch location? It helps to write this down & keep it in mind during setup.

For the rest of these steps, I consulted the following posts (and encourage you to do the same):
Lync 2013 – Creating Custom Lync Reports within Monitoring: Northern UC
How to build a custom report for Lync/Skype for Business – Just a Lync Guy

2. Access the Monitoring Reports Page

Do this via the report page’s URL, plus login & password. If you aren’t sure of the URL, use the “Get-CsReportingConfiguration” Powershell cmdlet to locate it.

DO NOT click “LyncServerReports” just yet. What we want instead is the Report Builder.

3. Begin Creating with the Report Builder

If you don’t see Report Builder on the toolbar, either:

  • Report Builder is disabled on the SQL reporting server
  • You don’t have permission to use it
  • You’ll need to install the Report Builder application

If you do need the Report Builder application, download it here: Microsoft SQL Server 2012 Report Builder
(Hopefully we’ll get a new version of this with SQL 2016.)

Use your Monitoring Server Reports URL for its Report Server field.

Once installed/active on the server, select “New Report” in the New Report or Dataset window.  Select “Table or Matrix Wizard”.

On the “Choose a Dataset” screen, select an existing dataset or create a new one. You’ll be prompted for a data source. You’re looking for the SQL DB containing the monitoring data relevant to your goals. (See, told you it helps to know!)

Our Monitoring Server has two data sources – CDRDB and QMSDB. I went with the CDRDB – “Data source associated with the call detail recording (CDR) database” – for now.

CDRDB Data Source

Click OK, and then Next. If prompted for credentials, enter your administrative login & password.

Next you’ll see the “Design a Query” dialog. Here’s where you build up a SQL query using information from the Monitoring data source. Check the options you want in the Database View list, and modify the fields in the Selected Fields list as needed.

(There are many more procedures than I could describe here. Suffice to say that you’ll need a little SQL knowledge to properly build your query.)

Example SQL query code from the "Sample Lync Persistent Chat Archive Report"

Example SQL query code from the “Sample Lync Persistent Chat Archive Report

Click Next. On the “Arrange Fields” screen, drag and drop your fields into rows & columns for an orderly view. Click Next again for layouts and styles (not critical in my eyes, but you may want to style your reports). Click Finish.

4. Test and Upload Your New Custom Report

Afterward, click the Run button at top left to run the report. Doing this now means you can verify the report works as desired, and there’s no errors. If there are, use the Edit button to modify the report’s fields, parameters, etc.

When your custom report is ready, click Save. Place it directly in the Reports folder on your Monitoring Server. (If you don’t see it right away, look under “Recent Sites and Servers”). Now you should see it in your Skype for Business/Lync Reports list!

You can also upload reports from within Reporting Services, using the “Upload File” button.


Which is great, because others have created custom Monitoring Reports already!

Created a Custom Monitoring Report? Add it to the Community Report Repository

Matt Landis collected Monitoring & Archiving Reports in a Community Report Repository:
Skype for Business (Lync) Community Report Repository – Microsoft UC Report

Great if you want direct examples of custom reports. Or if these already do what you’re looking for.

Have you created a custom Monitoring Report? If so, what was the function you wanted? Please comment or email. If the standard reports work fine for you, please share what you use them for too.

No Comments

Response Group Ghosts: How to Banish Deleted Lync Users from Response Groups

Lync Server 2013

I’ve spent as much time as I can this past week responding to reader questions. Still more to research though!

Today I wanted to blog about a curious problem one reader (I’ll call him “Tim”) ran into while managing his Lync Server 2013 server. When Tim removed a user from Lync, the user account lingered in their Response Groups.

Didn’t matter what method he used to remove the user account – through the GUI or PowerShell. Even if the user no longer existed in Active Directory, they still appeared in the Response Group member list. Like a ghost.ghost-2-1174324-639x852  (oooOOOoooo…)

What could cause this? Was Tim missing something when removing the user? Did he have to perform an additional step to remove a user from Lync AND from their Response Groups?

How to Remove a User Account in Lync Server 2013

Let’s back up a step. Here’s the official method for removing a user account from Lync Server 2013:
Remove a User Account from Lync Server 2013 – TechNet

(The process is the same in Skype for Business Server 2015.)

It does stand to reason that removing a user would automatically remove them from Response Groups. At the very least, it should deactivate them from the workflow.

I tested account removal on our own server, after adding a dummy account to one of our Response Groups. But the account vanished from the Response Group after I removed it. (It’s possible that the error didn’t occur because we use Skype for Business Server.)

I’ve no doubt Tim performed a correct user account removal. He’s just getting an unusual result. Why?

Why a User Account Lingers in Lync Response Groups

Asking the rest of our Lync/Skype4B team yielded no other encounters with this “ghost” error. So, to Google I went.

It took a while, but the research did bear some fruit. I came across the following TechNet Blogs post: Lync Server: Event 31137,31138 LS Response Group Service – UC Lobby @ TechNet

From what I can tell, the problem originates from the Lync user’s SIP address getting “stuck” in the Response Group Service. That’s how users are associated with a Response Group – through SIP addresses.

It appears that disabling or removing a user sometimes leaves a “ghost” of its SIP behind. If you see Warnings 31137 & 31138 in the Lync Server Front End logs, you have ghosts. This is a noted error in Lync 2013 – an inconsistent one, but it does happen.

How to Clean Out the Response Group “Ghosts”

Fortunately, there is a solution! The TechNet post references a script which should remove the “ghosts” from a Response Group. It’s located at the Greg in Sydney Blog:
Get-InvalidRgsAgents.ps1 –

From the script description:

“This script searches the Event Logs on the local Front-End server for the most recent instance of each error. It then extracts the SIP addresses, tests their current state and reports this information to screen. If you add one of the “-restore” or “-remove” switches, the script will take action to correct the situation.”

Greg has even provided the PowerShell script in a handy ZIP file for download.

Thanks to Greg and the TechNet team, we have a solution for these Response Group “ghosts”. Another reader question answered!

Have you encountered Response Group “ghosts?” Did you remove them, and if so, how? Please comment or email your thoughts.

I’d like to close this post asking for one thing more. Readers on Skype for Business Server: Do you use (or are planning to use) Video Interop Server, or VIS? If so, I’d like to talk with you about your VIS interest and/or experience. Please email me directly.

Have a fun Labor Day Weekend! And join us back here next week.

1 Comment

The SBC and Its Role in Skype for Business

Skype for Business, Third-Party Lync Products, Unified Communications

Today let’s talk about the SBC.

I’ve mentioned SBCs here in the past, on the Lync Add-On Hardware post last year.

A new prospect reminded me of the SBC, as their situation will require one for interoperability reasons. They have several different types of VoIP phones scattered between 3 locations.

(Disclaimer: PlanetMagpie is a Sonus Partner. We use their SBCs for Skype for Business deployments, as well as our own Skype4B server. They didn’t ask me to write this though!)

That said, the reminder spurred me to a thought. “Have I gone into detail on what an SBC does yet? No, I don’t think so. Well, that’s this week’s topic then.”

What’s an SBC?

SBC stands for Session Border Controller. It’s a discrete hardware device which sits in the edge network. There, it

looks at each SIP packet going between your Skype for Business Enterprise Voice network and the external ISP. It determines which packets should be allowed through, and which route they should take.

Server Rack

What Does an SBC Do?

SBCs provide multiple security and mediation services within a VoIP environment.

Let’s say you have two phones – one onsite in your network, one offsite. Bob at Offsite picks up the phone & calls Jane at Onsite. This VoIP call is called a “session”. The SBC looks at Bob’s incoming call, determines that it’s legitimate, and lets it through to Jane. Hence, “Session Border Controller”.

Taking on this role helps stop a lot of bad things from happening. Within a Skype for Business deployment, SBCs can:

  • Protect the network from Denial of Service attacks, spoofing, and other outside attacks
  • Enable SIP trunking
  • Support interoperability between different endpoints (e.g., different VoIP phone types, as I mentioned in the opening above)
  • ‘Transcoding’ calls – Changing the codec used in a call, depending on the session type (audio, video), device type (tablets, laptops, phones), and bandwidth available

Why Would I Need an SBC in my Skype for Business Deployment?

Does your network suffer break-in attempts or DoS attacks? The attackers will target your Skype for Business network too. No question. It needs protection. SBCs are good for that.

Do your people ever call out? There’s no guarantee the SIP endpoints (VoIP phones) will talk to one another. Each phone can have a different bit rate. And if they do, they can’t connect to one another properly. Unless you use an SBC to bridge them (a process called ‘transrating’).

These are the two biggest reasons for an SBC. More exist, depending on your network configuration & security.

Okay then, what SBC should I use?

Right now, according to the Telephony Infrastructure for Skype for Business page on Office TechCenter, only two session border controllers are certified for Skype4B use.

Oracle Net-Net 3820
Sonus SBC 2000

(The Lync Server 2013-approved SBCs will work too. Here’s the full list.)

The Sonus SBC 1000 will also work for Skype for Business; we’ve tested it and the 2000 in small business deployments. Both of them do the job nicely. For Lync Server, we have several 1000s running at customer sites.

You CAN run Skype for Business (or Lync Server) without a Session Border Controller. It’s not mandatory. But it is helpful.

Want more? Sonus has kindly published a simple guide on using SBCs.
Ebook – Session Border Controllers for Dummies

I also like the Skype for Business guide: Ebook – Skype for Business for Dummies.

Both provide good overall explanations for Skype for Business and SBCs.

Do you use a Session Border Controller in your Skype for Business Deployment? What was the primary reason? Please comment or email your thoughts.  And join us again next week!

No Comments

The Story Behind Adding Skype Contacts into Skype for Business

Skype for Business

“How do I import Skype contacts into Skype for Business?”
“Do I have to use Skype and Skype for Business at the same time?”
“I have hundreds of people added on Skype. How do I get them into Skype for Business?”

This is one of the most popular topics I’ve run across for Skype for Business. It’s also one of the most frustrating.

It sounds like the easiest things in the world, right? You have X contacts in Skype (consumer). You want to add them to Skype for Business. Take them from one, pop them into the other.

Except it’s not easy. It’s pretty much the opposite.

Skype Contacts in Skype for Business: The Basics

One of the most trumpeted new features for Skype for Business (both Online and Server) was the ability to access the Skype Directory.

To do this, you had to make some configuration changes in each version.

SKYPE 4 BUSINESS SERVER – Front End & Edge Server must be configured to access the Skype Directory. We covered this in last month’s How to (Re-)Enable Skype Directory Search in the Skype for Business Client post.

OFFICE 365/SKYPE FOR BUSINESS ONLINE – In the Office 365 Admin Center, you must enable Public IM Connectivity under “External Communications”. Support reference: Let Skype for Business Online users communicate with external Skype for Business or Skype contacts – Office Support

With these changes you can search for, and communicate with Skype (consumer) users. But what if you have dozens, even hundreds of business contacts in Skype already?

Methods of (Attempted) Contact Import

Exporting from Skype has been a simple process for a while. In the Skype client, click Contacts. Move to Advanced, and click “Backup Contacts to File…” Name the backup file, save it to a location of your choosing, and done. You now have a VCard (.vcf) containing your Skype Contacts.

However, getting these contacts into Skype4B? Not so simple.

According to several sources (such as this Skype discussion thread), there is no contact import feature in Skype for Business at this time.

Undaunted, I brainstormed on the issue a while. Eventually I thought of investigating a workaround using Outlook. Maybe if I added Skype Contacts into Outlook as Address Book Contacts, I could bulk-import them into Skype4B.

(There IS a folder in Outlook’s Address Book titled “Skype for Business Contacts”. Sadly, it’s read-only.)

I got as far as importing the VCard into Outlook (here’s an import process how-to, if you’d like to try). I have 4 test contacts from Skype added into my regular Outlook Address Book.

At this point I had something strange happen. I started typing my test contacts’ names into the Skype4B search box – and they appeared! For a second I was elated. Had my workaround actually succeeded?

Unfortunately, when I tried to add them to my Contacts List, I saw this error message:

Skype4B Cannot Add Contact

No luck. Other contact types worked fine…just not the imported Skype contacts.

So What CAN We Do? Add Skype Contacts One at a Time

We can still add Skype contacts one at a time. Tedious, I know, but it does work.

If your Skype for Business Server (or Office 365 account) meets the above requirements, start typing in the Skype4B search box. Directly under it you’ll see these options:

Skype Directory Option

Clicking “SKYPE DIRECTORY” will search the full Skype Directory for your search term. In this case I started typing “Josh”, my friend’s first name, and received a long list of Joshes’ Skype accounts. You can search using names, Skype Names, email addresses, phone numbers and even a contact’s location.

Once you see your contact, all you have to do is right-click and add them to one of your Contact Lists.

Since this is a one-at-a-time process, I suggest doing this on an as-needed basis. I also suggest emailing or IMing your Skype contacts beforehand to explain what you’re up to. (If they already have you added on Skype, a second contact request might confuse them.)

I wrote up a short message you can use for this purpose.

I’m adding you on my Skype for Business account. You’ll see a contact request from me in a moment. It may look like a duplicate contact on your end.
Just wanted to let you know ahead of time, so you’re not confused. Thanks for understanding.

Skype Contacts in Skype4B: Doable, But an Incomplete Feature

I was hoping for a clever little workaround which enabled all of us to grab Skype Contacts and toss them into Skype for Business. Unfortunately, no such workaround revealed itself.

Like many of you, I’m surprised Microsoft hasn’t included this functionality in Skype for Business. I hereby call for it to take a top spot on the Feature Requests list!

Do you use Skype (consumer) and work with business contacts there? Please comment or email me you thoughts. And join us back here next week, of course!


Skype4B Features: Server-Side Conversation History

Skype for Business

Back in January I went through Lync 2013 for the iPhone. One of the issues I noted was that my phone’s Conversation History only showed those conversations I had using the phone. Also, these conversations didn’t show in my laptop’s Conversation History.

From my post:
“However, this made me think of a would-be-nice for the Skype for Business iPhone client…access to full Conversation History within the client. I don’t know how many times I’ve consulted Conversation History for dates, numbers, etc. If I could do that on my phone & find conversations from my laptop? Major timesaver.”

A Refreshing Walk Through Lync 2013 for iPhone (1-22-15)

Ladies and gentlemen…I called it.

One of the new features in Skype for Business Server 2015 is the Server-Side Conversation History.

Server-Side Conversation History: The Details

As I noted previously, Conversation History in Lync Server 2013 was device-specific. It stored a record of your conversations in the Lync 2013 client, and in an Outlook folder labeled “Conversation History”, depending on which device you used for that conversation. You’re on a laptop, you get a log in the Conversation History folder. You’re on your phone, you get a log in your phone’s Lync client.

Now with Skype for Business, instead of device-specific storage, all Conversation History is stored server-side. Which means that all your devices can see the same Conversation History.

Skype4B Conversation History

You do need Exchange Server 2013 or Exchange Online. And it must be set up for integration with Skype for Business Server. After that, all it takes is a PowerShell cmdlet.

How You Set Up Server-Side Conversation History

I checked our Skype for Business server. As I suspected, Server-Side Conversation History was deactivated by default.

Fortunately, it’s easy to activate (provided you have Exchange set up & integrated). Credit to these two blog posts for their clean & clear instructions.

1. Skype for Business Enable Server Side Conversation History – Martin Boam’s Microsoft UC Blog
Martin’s article has a step-by-step procedure using the Set-CsClientPolicy cmdlet. He also has instructions on integrating Exchange, if you haven’t done that yet.

The enabling cmdlet format goes like this:

Get-CsClientPolicy -Identity Global |Set-CsClientPolicy -EnableServerConversationHistory $true

This is one of two ways; #2 below has the other way.

2. Skype for Business Server 2015 – New Commandlets – Randy’s Lync and UC Blog
Randy’s post has a full list of the new Skype4B cmdlets. The three directly referencing Server-Side Conversation History are:

  • Get-CsConversationHistoryConfiguration – Shows you the Conversation History configuration settings.
  • Remove-CsConversationHistoryConfiguration – Resets the Conversation History configuration.
  • Set-CsConversationHistoryConfiguration – Modifies the Conversation History settings. This is Way #2 to activate Server-Side Conversation History.

Using these cmdlets, the format would be:

Set-CsConversationHistoryConfiguration -Identity “Global” -EnableServerConversationHistory $True

(Please note: These cmdlets modify the Global client policy. If you want to limit Server-Side Conversation History to certain groups, use that group’s identity for the -Identity parameter.)

Victory for Mobile Skype4B Users!

The move to Skype for Business 2015 contains many usability improvements. Most of these expand Lync 2013’s capabilities (Call via Work) and/or blend in Skype functionality (Rate My Call).

Server-Side Conversation History’s biggest help is in mobile user experience. Now I have access to my conversations – ALL my conversations – on my phone, wherever I am. I see all sorts of benefit to different professionals: Support tracking, IT management, project collaborations, sales/marketing lead tracking, and so on.

Now if only we’d get a new Skype for Business iOS/Android client…
(One IS coming, in the “next few months” according to Microsoft. Sigh.)

Do you use Server-Side Conversation History? If so, please comment or email how you use it in Skype for Business. I’d love to gather & compare some use cases in a future post.


Skype4B Features: Rate My Call

Skype for Business

One of the most frequent questions we get about the new Skype for Business is, “What’s this ‘How was the call quality?’ box that keeps popping up?”

That’s the Rate My Call window. It’s a method for Skype for Business to collect & analyze call data. After a call, users are shown a small prompt asking them to rate their call’s quality using stars and some checkboxes. It looks like this.

Rate My Call Window

The user checks a box if there was an audio issue (they heard a weird background noise, for instance), and selects how many stars they rate the call’s quality out of 5. There are also options for video issues too, if you used video on your call.

A pretty standard rating system. Rate My Call then records the data in 2 tables in the Monitoring database.

  1. [QoeMetrics].[dbo].[CallQualityFeedbackToken] – Results of token polling by users
  2. [QoeMetrics].[dbo].[CallQualityFeedbackTokenDef] – Token definitions

Because of the data storage & back-end requirements, Rate My Call is limited to on-premise deployments (sorry Skype for Business Online users!).

How to Configure Rate My Call

Rate My Call is enabled by default in on-premise Skype for Business. It’s set to display the Rate My Call window 10% of the time.

You do have the option of adding “Custom User Feedback” – inserting a field for extra feedback – but this is disabled by default. If you want to enable Customer User Feedback, just use this cmdlet.

Set-CSClientPolicy -Identity [PolicyIdentity] -RateMyCallAllowCustomUserFeedback $true

Additionally, you can change the percentage for displaying the Rate My Call window with the same cmdlet. This example would change the percentage from 10% to 50%.

Set-CSClientPolicy -Identity [PolicyIdentity] -RateMyCallDisplayPercentage 50

(I don’t recommend bugging users that much though. No more than 25% of the time would be my suggestion.)

How to Access Rate My Call Data

You can access the data through SQL queries, and the Call Quality Dashboard.

Example SQL queries are listed at the bottom of this page: Rate my Call in Skype for Business Server – TechNet

Of course, you can write your own queries too. Or you can set up the Call Quality Dashboard for a more visual reference.

Fair warning: Deploying Call Quality Dashboard is a lot of work. You need SQL Server, IIS, SQL Analysis Server, a pre-existing QoE Metrics database, and a fair bit of configuration. Here’s a deployment guide: Deploy Call Quality Dashboard for Skype for Business Server 2015 – TechNet

Once Call Quality Dashboard is deployed & configured, you can access it at: http://[SERVERNAME]/CQD

Is it worth it? Enterprises will think so. Like most Monitoring Server Reports, the Call Quality Dashboard gives you detail-rich QoE (Quality of Experience) reports. Do users in Sales report that audio quality’s poor? You’ll see this in one of the created-by-default reports. Does the Front Desk report call echo (…echo…echo…)? It’s in the report. And of course you can create your own QoE reports too.

More help with using CQD Reports: Use Call Quality Dashboard for Skype for Business Server 2015 – TechNet

Using Rate My Call: The Biggest Value

Now, the big question: What’s the big value in Rate My Call? Why did Microsoft include it in Skype for Business?

My opinion – Rate My Call is a way to crowd-source your network maintenance.

Think about this. Audio/video calls use a lot of bandwidth – which means they’re very sensitive to network issues. If their quality drops, it means something’s not working well enough. You can treat this like an “early warning system” for network problems.

If you have a large number of users voting about how good/bad their call quality is, you’re able to collect a large aggregate of data. Big Data for your office’s calls. You examine this data, and find places where there’s a weak link.

That weak link might be a configuration problem. It might be a bad Ethernet cable. It might be a dying router. No matter the cause, you know something’s up. So you fix it now, restore call quality, and avoid the potential for more serious failure later.

If you’re installing Skype for Business Server, let me recommend an “introductory period” for Rate My Call.

  1. Use the PowerShell cmdlet above to alter Rate My Call’s display percentage to 25%.
  2. Notify all users of Rate My Call’s existence, and ask them to rate all their calls (including video!).
  3. Continue tracking at 25% for 2 weeks.
  4. Reset display percentage to 10%.
  5. Examine the QoE reports for this period, using whichever method you prefer. If you see low quality measurements, you know where you have to check.

Do you plan to use Rate My Call? If so, please comment or email with your thoughts & what kind of environment you have. I’d like to hear what quality elements people are tracking.

And join us again next week!

No Comments

How to Set On-Hold Music in Skype for Business

Skype for Business

Today we have a very important how-to. A critical service is discussed. I know you’ve all been waiting to learn…

…how to set your “on hold” music.

See? Told you it was important.

In all seriousness, “on hold” music isn’t a critical service to Lync/Skype for Business. But Music On Hold is useful for a good customer experience. Which is, in fact, where the idea came from.

What Brought This On? The Customer Has Needs!

One of our newer customers made some changes to their Lync Server 2013 system. Among other changes, they added a new phone number for their Sales department. Naturally, they wanted this number to have hold music to keep callers on the line.

They were smart and looked into what was needed for hold music; when they called, they asked about Music On Hold. But they weren’t sure if Music On Hold (or “MOH”) was enabled for the new line or not. So they asked us.

Good thing, too…it wasn’t. Call Park wasn’t active.

Music On Hold in Lync/Skype4B: The Background

Still on hold...

Still on hold…

Music On Hold/MOH is part of the Call Park function. It’s a longstanding component of Lync, around since Lync 2010, happily doing its job in the background.

(Quick Overview: Call Park lets Enterprise Voice users put a call on hold [“park it”], and either retrieve it from another phone or forward it to another user. All the while, Music On Hold plays, getting a song stuck in the caller’s head for the rest of the day.)

You’ll find details on Call Park in Skype for Business here: Plan for Call Park in Skype for Business 2015 – Skype for Business TechNet

Call Park comes with Enterprise Voice, and should be activated when Enterprise Voice is set up. However, the Music On Hold may not be pre-set. If not, you’ll need to enable it.

There are 2 ways to enable Music On Hold. One at the client-level, one at the policy level.

  1. In the Lync/Skype client, click Options. Under “Ringtones and Sounds” you should see an option to “Play music on hold”. If you’re able to check the box, do so and click the Browse button to select a music file. Click OK.
  2. If “Play music on hold” is grayed out, the Lync/Skype4B administrator has designated this to occur through a Client Policy.

I prefer Method 2 anyway. It works for all users (and can be adapted for Response Group members). While I do prefer Management Shell for admin tasks, the fastest way to enable & set Music On Hold is through PowerShell.

How to Set Music On Hold

We have three PowerShell cmdlets for you today. These three and a music file are all you need.

Set-CSClientPolicy Global -EnableClientMusicOnHold:$TRUE

–This enables Music On Hold across all users. (Our customer had this set to FALSE and didn’t know it!)

$a = Get-Content -ReadCount 0 -Encoding byte “C:\MoHFiles\happymusic.wma”

–This retrieves the music file (notice the format; we’ll talk more about that in a moment), and assigns the file to the $a variable.

Set-CsCallParkServiceMusicOnHoldFile -Service -Content $a

–This assigns the $a variable (referencing the happymusic.wma file) to Music On Hold for the domain’s Enterprise Voice pool. Use the FQDN of the server where Call Park (Enterprise Voice) is running.

There are additional parameters available, of course. Confirmation prompts & the like. Full cmdlet details are here: Set-CsCallParkServiceMusicOnHoldFile Cmdlet – Skype for Business TechNet

Matt Landis also has an awesome Q&A blog post on MOH:
Questions About Microsoft Lync Server and Music on Hold – Microsoft UC Report
It targets Lync Server, but from what I can tell, the information still applies to Skype for Business for the most part.

FORMAT: The recommended format for Music On Hold files is “Media Audio 9, 44 kHz, 16 bits, Mono, CBR, 32 kbps.” I’ve seen references to using .wma or .wav. Either file type is probably fine.

To create the music file or convert it to the recommended format, you can use Microsoft’s Expression Encoder 4, or another audio tool like Audacity.

Where Should I Get Music for MOH?

Now here’s the trick, right?

You could always convert an MP3 of your favorite song. But you’d have copyright issues to deal with right away. (Besides, your customers may not share your musical tastes.)

The rest of us are left hunting for a royalty-free, or cheap-to-buy, music option. Let me help you with that. – Audio is a directory of audio resources. It’s a phenomenal resource for creative work – they have resources for photos, icons, fonts, video – and audio tracks.

I’ve gone through all of the sites on this list. My favorites are Bensound and the Music Store. The free tracks are either fun or relaxing. The paid tracks are good-quality. Most are perfectly suitable for Music On Hold.

Is Your Music On Hold Enabled?

I’d be remiss if I didn’t mention the original Music On Hold blog post:
Music On Hold for Lync Clients – Ken’s Unified Communications Blog.

Written back in October of 2010, it remains one of the most-linked-to posts on MOH, period. Its cmdlet references are 2 versions old, so be careful there. But otherwise, it’s an excellent starting point for the Music On Hold function.

Have you installed Skype for Business Server 2015 yet? If so, please comment or email on your experience. I’d like to collect a group of Skype4B experiences & wrestle some good data out of it (anonymously, of course).

Join us back here next week for more Skype for Business topics!

No Comments

Skype4B Features: Call Via Work

Skype for Business, Voice over IP

The biggest change in Skype for Business 2015 from Lync Server 2013 is the new user interface. Familiar to Skype users; minor learning curve for Lync users.

However, that’s not the only thing that’s new. We’ve already talked about integration with the Skype Directory…and there’s more.

This post is the first in a new post series on Skype for Business’ new features. We’re starting with a big one – Call Via Work.


What Call Via Work Is

Call Via Work replaces Lync’s Remote Call Control (RCC). I didn’t do too much with RCC, but Call Via Work intrigues me.

Essentially, Call Via Work enables integration between Skype for Business and a PBX phone system. Calls begun in Skype for Business ring a PBX phone – yours and the other party’s.

Why would you want to do that? A very good question. We’ll see what we can determine for an answer. But first, let’s talk about how Call Via Work, er, works.

How it Works

Call Via Work is part of Skype for Business’ Enterprise Voice role. It works by “bridging” two calls together into one.

  1. Let’s say Bob wants to call Sharon, one of his customers. He has her added as a contact in Skype for Business. Sharon uses a PBX phone system at her office. Bob also has a PBX phone available.
  2. He clicks her contact & selects the phone icon. The client initiates a call request to the Skype for Business Server.
  3. The server’s Mediation Server role sends a call to Bob’s phone. Caller ID shows a special number, called a “Global Phone Number”, so Bob knows this is not someone else calling. He picks up the phone.
  4. Sharon receives the call on her PBX phone. Skype for Business “bridges” the two calls.
  5. Bob and Sharon start talking normally. Aside from Bob having to pick up the phone *after* initiating the call, everything proceeds like a normal phone call.

Uses of Call Via Work

Obviously, a legacy PBX system is involved when using Call Via Work. In fact, not only does Call Via Work enable calls to PBX phones, but it also gives PBX users:

  • Click-to-call (Audio going through the PBX phone)
  • IM integration, Presence & user search. A TechNet piece cites as example, adding audio to an IM session, with the audio coming through PBX phones.
  • The ability to add IM, application sharing, and file transfer to a Call Via Work call.
  • One-click Meeting join (which I’d say is the most valuable capability, after voice calls)

It isn’t quite the full Lync/Skype4B experience. But it’s more than an old PBX has by default.

So what’s the best use of Call Via Work? I can think of two.

  1. Easier communication with customers/partners who still use a PBX.
  2. Transition Aid from an on-site PBX to Skype for Business. More on this later.

However, there’s a lot users need to know before you implement Call Via Work. Much of which involves its limitations.

What Users Need to Know

Call Via Work is a stealth function. It’s meant to do a job quietly, without messages or warnings. But users will need to know some things about it–otherwise it might cause confusion and disrupt calls.

What Call Via Work does. While the process is intended as transparent, users should still know what’s going on with their PBX calls. I wrote this post to help with exactly that. (Don’t forget to share it around!)

The Global Number. When you initiate a call using Call Via Work, Skype for Business shows the person called a certain number, which the administrator sets.

(The process for setting a Global Number is documented under “Deploy Call Via Work” here.)

This means a user’s direct number WILL NOT DISPLAY. Users must know the number, and that it will display in place of their own, so nobody’s left confused after a Call Via Work call.

Finally, Limitations. Yes, Call Via Work has limitations. Many of them in fact:

  • If a Call Via Work user has set up Call Forwarding to the Global Number, and someone tries to invite them to a Meeting by phone number, the invitation won’t reach them. The forwarding blocks it. Solution: Tell users to invite Meeting participants by name.
  • E-911 and malicious call tracing are NOT available during Call Via Work calls.
  • Call Via Work users can’t use Delegation, Team Call, or Response Groups. (Serious drawback in my book.)
  • Call Via Work users can’t record a Meeting, mute a call, hold or transfer the call, or use Call Park. (Ouch.)
  • Users can’t access PBX voicemail through Call Via Work.
  • Call Via Work users can’t escalate a voice call to a Meeting with video/whiteboards/PowerPoint.
  • You can’t add more people to a call when using Call Via Work. It’s just you two.
  • No support for deskphone pairing or VDI plugin pairing.
  • If you make or answer a call using your PBX phone (not the Skype for Business window), you won’t have a log of the call.
  • And finally – if your PBX system does not support “REFER with Replaces”, you’ll see this happen. While on a Call Via Work call, if you transfer the call from the PBX Phone, the call window will remain on your Skype for Business window. If you close the call window, the call between the transfer target and the transferee ends.

Lot of limitations users need to be aware of.

Deployment Prerequisites

Enabling Call Via Work
In order to deploy Call Via Work, you must:

  • Deploy a Mediation Server and an IP-PBX gateway.
  • Ensure any user enabled for Call Via Work has Direct Inward Dialing (DID) on their phone.
  • Enable Call Via Work users for Enterprise Voice.
  • Configure their Skype for Business DID number to match their PBX phone’s DID number.
  • Select “Automatic Configuration” in the users’ Skype for Business client’s Advanced Connections options. This is under the Personal menu in Options, by clicking the “Advanced” button.
  • Enable Call Forwarding and Simultaneous Ring for every Call Via Work user.
  • Enable Dial-In Conferencing and Conferencing Dial-Out for every Call Via Work user.
  • Disable Delegation, Team Call and Response Groups for every Call Via Work user.

Final Thoughts

So why WOULD you want to use Call Via Work?

I think Call Via Work is very useful in a transition environment: Going from PBX to Skype for Business Enterprise Voice.
–It allows you to continue using existing hardware.
–It slows the training schedule.
–You have time to notify any customers or partners who might be affected. Without ruining your ability to call them!

However, for the long-term, I suggest enabling Call via Work only for those people who need it. Such people include sales staff calling businesses you know use PBX phone systems, legacy hardware/software testers, etc.

Because of its limitations on the user’s Skype4B call capabilities, Call via Work can hinder some communications. It’s useful, definitely. But it comes at a price.

If you’d like to read more about Call Via Work, the Mastering Lync Blog has a good rundown too: Call Via Work – Mastering Lync.

Do you use Call Via Work in the office? Planning to? What’s your experience with it? Please comment or email. And join us again next week!

No Comments

How to (Re-)Enable Skype Directory Search in the Skype for Business Client

Skype for Business

We have Skype for Business Server 2015 up & running in the office! Testing is proceeding apace. Today’s post comes from the first thing I noticed.

One of the new features is integration with the Skype Directory. You can now add Skype users into your Skype for Business client. All it takes is a search.

Except my searches didn’t yield any Skype Directory results. Just the usual “My Contacts” and “Chat Rooms”.

I asked Larry about this. He confirmed that Skype is listed in our SIP Federated Providers. The Skype for Business Server installation went (fairly) smoothly. Edge services are working. What gives?

Skype? Hello, Can You Hear Me?

There’s a note on this TechNet page, as follows:

If Skype for Business Server is already configured to connect with Windows Messenger by using Public Instant Messaging Connectivity (PIC), your deployment is already configured for Skype connectivity. The only change you may want to consider is to rename your existing Messenger PIC entry as Skype.

Apparently our pre-existing configuration to federate with Windows Messenger should be enough. But it’s not. Skype Connectivity requires a little more work to behave properly.

After consulting TechNet further, and a few of our fellow IT bloggers, we made the following changes.

How to Re-Enable Skype Connectivity – IF You Have PIC Provisioned

Before anything else: Communication with public federated providers requires PIC (Public Instant-Messaging Connectivity) provisioning. If you’ve federated your Lync Server with providers like Yahoo or AOL already, PIC is provisioned.

The following instructions work ONLY if you already enabled PIC for your Lync Server, pre-Skype for Business upgrade.

  1. Step 1: Enable Skype-Skype Federation on your Edge Server. Open Topology Builder to access the Edge Server. You’re looking for the Enable Federation screen (like this).

    Enable Skype Federation

    Image courtesy of TechNet.

  2. Step 2: Verify that Ports 4443 between Front End/Edge, and Port 443 outbound on Edge are open & working. 4443 is the same port used by CMS; it should already be open, but check anyway. You’ll need to check your firewall for Port 443 outbound.
  3. Step 3: Remove and re-add Skype from the SIP Federated Providers list in Skype for Business Control Panel.
    • Click the Skype entry.
    • Click Edit -> Delete.
    • Click New -> Public Provider.
    • In the new provider window, enable these options.
      • Check the box for “Enable communications with this provider”
      • Provider Name: Skype
      • Access Edge service (FQDN):
      • Default verification level: Select “Allow users to communicate with everyone using this provider”.
    • Click Commit.
  4. Step 4: Restart Front End and Edge. Very important! If you don’t restart the services on Front End and Edge, the Skype Directory remains inaccessible.
  5. Step 5: Log out & log back in on your Skype for Business client.

That’s all. The old “yank it out and redo it”.


(Note: This can be done in PowerShell as well. However the cmdlet is long and cumbersome. You’ll find it in the cited pages below, if you prefer that route.)

If you don’t have any federation/PIC enabled, you have a few more steps to take. Please follow the full/”from scratch” steps listed on these pages:

The same search functionality is available in Skype for Business Online. I haven’t worked with this yet, so I’ll direct you to the TechNet and UC Guys posts linked above for the how-to.

After we re-entered Skype as a SIP Federated Provider – and restarted the servers – guess what? Skype Directory names flooded into my search results. Exactly as expected.

What Skype for Business Server feature would you like more information about? Please comment or email. I’ll keep all requests in mind while digging through the new server.


Why You Need a Computer Without Lync 2013 Admin Tools to Run Skype for Business’ In-Place Upgrade

Lync Server 2013, Skype for Business

A few days ago, we cleared some time. Ready to test the new In-Place Upgrade by upgrading our in-house Lync Server 2013 to Skype for Business Server 2015.

(Details, once again: System is a single Lync Server 2013 Standard Edition with one Edge Server and a SIP Trunk for Enterprise Voice. SQL Server 2012 backend database.)

Almost immediately though, we hit a snag and had to stop. Reading our documentation, we came across a requirement that almost seemed to contradict the whole notion of an “In-Place” upgrade.

In-Place Upgrade Can’t Run on a Server with Lync Core Components or Admin Tools On It!

I’ll quote the TechNet page Upgrade to Skype for Business Server 2015 for an explanation.

Step 1: Install Administrator tools and download topology
Connect to computer in the topology that does not have Lync OCSCore or any other Lync components installed.

According to Microsoft, Lync 2013 Admin Tools cannot be installed on the Lync Server before Skype for Business In-Place Upgrade proceeds.

You’ll also find this referenced on other Lync blogs with Skype for Business Server install walkthroughs.

  1. Mark Vale’s Blog: Skype for Business Server In-Place Upgrade Step by Step. Under Front End Server Pre-Requisites, “A server or workstation without Lync 2013 Admin Tools installed.”
  2. Jaap Wesselius: Upgrade Lync 2013 to Skype for Business 2015 Step-by-Step. Under Upgrade Process, “It is not possible to install these on the existing Lync 2013 server, so a (temporary) server needs to be used. It is important that this server does not contain any Lync 2013 binaries.”
  3. Guy Bachar’s “Just a Lync Guy” Blog: Lync Server 2013 Standard to Skype for Business Server 2015 Standard In-place Upgrade (Offline Method). Under Step-by-Step Upgrade, “Connect to a computer which is part of the domain but does not have any Lync core components or admin tools installed on it.”

The important question: Why?

Image from Microsoft TechNet/Skype for Business.

Image from Microsoft TechNet/Skype for Business.

What is Microsoft up to with this snag?

We might have a partial answer in a related issue.

LRS Admin Tool Not Compatible with Skype for Business – The Old Version, Anyway

As it turns out, you can’t have the LRS Admin Tool running on the Lync Server either. According to the Plan to Upgrade to Skype for Business Server 2015 page:

Be sure to uninstall LRS Admin tool for Lync Server 2013 before running In-Place Upgrade. The LRS Admin Tool for Lync Server 2013 cannot coexist with Skype for Business Server 2015. After running In-Place Upgrade install the new LRS Admin tool, see Microsoft Lync Room System Administrative Web Portal for Skype for Business Server 2015.

So a new version of the LRS (Lync Room System) Admin Tool is available in Skype for Business. They want you to remove the old version first, to avoid conflicts. Okay. That makes sense.

Is this the case for the Lync 2013 Core Components/Admin Tools too? Another version conflict? Does Skype for Business’ new Administrative Tools conflict with Lync’s?

After some more digging, I determined this is indeed the case.

  1. Skype for Business’ Administration Tools need to replace the Lync 2013 Admin Tools, in order to begin In-Place Upgrade.
  2. If the Lync Admin Tools are NOT removed, you could end up with an error which halts In-Place Upgrade.

#2 is important. Take a look at this recent TechNet support thread: Upgrade to Skype for Business Server – TechNet Support Forums

Reply #10 contains some screenshots and a description of the error you’d hit with Core Components. The error text is as follows:
“The MSI OcsCore.msi returned error code 1603, log file location: C:\Users\LYNCADMIN\AppData\Local\Temp\OcsCore.msi-[2015_05_14][19_15_33].log”
(You’ll see different date & number stamps in the log filename.)

Reply #10 was able to fix this by using Revo Uninstaller on Lync’s Core Components…but was immediately faced with another installation error. Troublesome.

And seemingly avoidable, if you remove the Lync Core Components/Admin Tools first.

What We Recommend – Use a Fresh Server or Desktop for Installing Administrative Tools

But what if your Lync Server is a Standard Edition like ours? The Core Components are on the same server as the Front End Role – it’s rather hard to do an In-Place Upgrade like that!

The alternative (and what we’d recommend if you’re starting an In-Place Upgrade) is:
Don’t use a computer with Lync Core Components or Admin Tools on it.
Instead, use:

  • A fresh Windows Server (no Lync Server 2013 components installed) added to your domain, OR
  • A desktop already on the domain.

Not entirely sure why Microsoft couldn’t auto-remove Core Components right before installing Skype for Business Administration Tools. For whatever reason they opted not to.

But that’s why we have blogs like this one – to help the rest of us work with Lync, now Skype for Business, and its related tech.

Speaking of blogs, if you’re eager to do an In-Place Upgrade, I recommend reading all 3 of the above-referenced blog posts. Mark, Jaap and Guy all did a great job of laying out step-by-step walkthroughs.

Have you done a Skype for Business In-Place Upgrade? How did it go? Please comment or email me your experience. Every installation is unique; I’d love to hear what happened for yours.

No Comments
« Older Posts

  • Lync Insider Email Updates

    Skip the visit - get Lync Insider posts in your inbox! Emails delivered every Friday.

  • About the Lync Insider Blog

    The Lync Insider/Skype4B Insider is a blog about the technology we use to communicate in business today. Here we talk about Microsoft's Skype for Business Server 2015, Lync Server 2013, Unified Communications, Voice over IP and related technologies like Exchange Server. Written by Chris W., MCSE in Communication and PlanetMagpie IT Consulting's Tech Writer.
  • Categories

  • Archives