RTCXDS Transaction Log Full

Occasionally on a Skype for Business server deployment, you may find yourself getting hit with 57005 errors out of nowhere, with the frontends complaining that they’re unable to push data to the RtcXds Blob Store. The error is nice enough to go into some further detail – in the screenshot listed below, you’ll see that the SQL exception which was returned was “The transaction log for database ‘rtcxds’ is full due to ‘LOG_BACKUP'”

The main problem here is that while other databases’ log files are set to expand quite nicely, the RtcXds logfile is inexplicably capped at 16GB. The database itself is unlimited, but once that transaction log is full everything will cease being able to write to the database. At any time you can check the size of the logfiles by running the following command in a Query window:

DBCC SQLPERF (LOGSPACE)

In my case, the rtcxds logfile was at 100%.

The quick and dirty way to get around it is just to perform a backup of the logfile to disk, but I’d prefer to give it some extra headroom, as well as a maintenance plan so that we don’t face this problem again.

First, let’s perform an initial backup of the logfile to disk so that we know it’s safely stored somewhere before we start messing with it. Connect to the database with SQL Management Studio, right click on the RTCXDS database and select tasks>backup. Select Transaction Log and ensure that Copy-only backup is unticked. In the destination section, choose a location and filename. Click OK and wait for the backup to complete.

Next, open a new query window where we’ll execute the following TSQL

BACKUP log rtcxds TO DISK = 'NUL:';

ALTER DATABASE rtcxds MODIFY FILE (NAME = rtcxds_log, MAXSIZE = 50GB);

In this command we’ll run another backup, but this time we won’t write it anywhere. This will ensure that we’re able to modify the actual file in the second line, which will set the new maximum size of the logfile to 50GB. Change this to whatever you prefer and execute by either pressing the execute button or hitting F5.

The final step is to set up a maintenance plan to back up your transaction log to disk on a regular basis. I’ll cover that in another post.

Advertisements

Populate ProxyAddresses when migrating to Office 365

We’ve had a couple of customers with a hosted Lync/SfB installation and Exchange Online where the users don’t have the ProxyAddresses field declared, and as a result, the users have EWS integration problems. The most noticeable for users is that their conversation history folder doesn’t capture history beyond the point where they migrate to Exchange Online.

This may be fairly unique to us, as we build hosted Skype for Business environments which ADSync user details back from the customer’s onsite active directory to ours. When they sync to 365, they’ll generally do it from their AD as well, so there’s a bit of a disconnect.

To fix the problem, either manually go through each user and add their default SMTP address to the ProxyAddresses field, or use the following script:

Import-Module ActiveDirectory
$domainController = 'dc1.contoso.com'
$searchBase = 'OU=users,DC=contoso,DC=com'
$users = Get-ADUser -SearchBase $searchBase -SearchScope Subtree -Filter { ObjectClass -eq "user" } -Properties ProxyAddresses
ForEach ($user in $users) {
 $newSMTP = 'SMTP:' + $user.userprincipalname
    Write-Host "Adding $newSMTP to" $user.SamAccountName
 Set-ADUser -identity $user.DistinguishedName -Add @{ProxyAddresses = $newSMTP} -server $domaincontroller
}

This script will run through the list of users in a specified OU and add the user’s default SMTP address by using their UserPrincipalName. If your users’ SMTP addresses don’t match your UserPrincipalName, and instead are samaccountname@domain.com, substitute the following for the $newSMTP variable:

$newSMTP = 'SMTP:' + $user.SamAccountName + '@contoso.com'

How will my Skype for Business call perform?

If you’ve ever been about to jump on an important call or conference, and worried that the network where you are may not be up to the task, then it’s probably a good idea for you to check out the PreCall Diagnostic tool. It’s perfect for when you’re outside your organization, on a public network or on 4G.

Once you start the tool, you’ll need to log in with the details of your Skype for Business or Lync 2013 account. Pressing Start Test will, by default, run a two minute test where it will measure the connection quality between your computer and the server to which you’re connecting. In my case, it’s my edge server as I’m at home.

In the example below, you can see the quality was fine at the beginning of the test, but then I saturated my internet connection by adding a large file to my OneDrive folder (always an excellent test!). Jitter and packet loss spiked, and the overall Mean Opinion Score of the call decreased. This would have resulted in a call which was considered relatively poor.

precall example

Give it a try and see how your network connection compares.

Polycom VVX 5.3.x and 5.4.x Visual Voicemail not working

We fired up some fresh Lync accounts the other day for a couple of users who were going to only be using a VVX 500 handset. They weren’t even going to be using the Lync/Skype client for messaging – they were just telephony users. I can imagine a number of scenarios where you may have this type of user, like a concierge or guard station where only a phone is required.

Unlike all the rest of our users, these accounts didn’t see their voicemails listed when they pressed the messages icon on their phone. Dialing in to the unified messaging subscriber access was fine, and the messages were there, but they just weren’t showing up when the user pressed the envelope icon.

Diving in to the logs on the phone showed the following:

0714111143|ec   |4|00|UM service is 1 and play on phone service is 1
0714111148|ec   |4|00|’calllogs’ service did not received expected folder ids.

Aha! Can’t find the voicemail folder, eh Lync?

Sure enough, when you log in to Outlook, you’ll find that the normal Lync folders haven’t been created yet. I assume that the Polycom UC software is set to look in the “Voice Mail” search folder, but as this folder hasn’t been created the phone gives up and shows a blank screen.

The solution? Log in to the account once with the desktop Lync 2013 / Skype for Business client. This initial login will create all the necessary folders required, and visual voicemail will start working correctly.

Skype for Business for Windows Phone Quietly Arrives

A little while ago an update was seeded to Lync 2013 users on Windows Phone which let us know that Skype for Business was on its way. Today that rollout has taken place, at least for me, with the latest version being delivered to my devices overnight. It’s always nice to wake up to new software. It’s been delivered as an in-place upgrade for Lync 2013 for Windows Phone.

So far it’s just Windows Phone which has received this update (or Windows 10 Mobile if you’re using it). Android and iPhone should be coming soon.

Continue reading

Missing Dial-in information in Skype for Business and Webscheduler

A fault came in today from a customer who was having problems scheduling conferences with dial-in access numbers when using Webscheduler. While the meeting was scheduled correctly and a URL was given to join the meeting, a dial-in access number wasn’t shown. Here’s a recreation I did in my lab, so enjoy the pretend numbers and URLs:

1

This was confusing, because a number was definitely configured for dial-in conferencing. But there was a slight problem:

2

The number on the customer’s system was a 1300 number – for those outside Australia, it’s like a toll-free number, but it’s the cost of a local call to the caller, and the owner of the number pays for the call costs beyond the standard local call time. As most business calls are quite short, this usually works out in the 1300 number owner’s favour.

Anyhoo, it turns out that a little while ago a junior engineer had taken the ticket to remove the existing state-based numbers and replace them with a single number for all of Australia. He created a new conference region for the new number and attached it to the Global dial plan. He then changed the region for the 1300 number from “Sydney” to “Australia” and deleted the rest. Seems logical.

5

But the problem comes for users attempting to create meetings. In this case, my user is set with the AU-MEL dial plan as I’m in Melbourne:

3

and when we investigate that dial plan policy:

4

We find that it wasn’t updated when the “Melbourne” conferencing region was deleted to make way for the Australia-wide one. As a result, Skype can’t give the user a number as it doesn’t believe it has one in that region.

The solution? Either change all the dial plans to “Australia” as their conferencing region, or add all regions to the dial-in access number. I chose the first option, as I didn’t want to see multiple regions listed on the dialin page.

6

After that, a quick enable-cscomputer to kick things into gear:

7

Now when we create a meeting, all the correct information is shown.

8

Happy conferencing!

Music on Hold not working with Click-to-Run version of Skype for Business

When deploying a new customer Lync 2013 environment, we found that music on hold wasn’t working for the customer’s end users, who were using the latest version of the Office 365 click-to-run version of Skype for Business (15.0.4727.1001). This was raised to us as a fault where customers were complaining they were being cut off when placed on hold. In truth, they weren’t cut off – they were just hearing silence.

We’d set up the client policy the same way we always do, where EnableClientMusicOnHold is set to $True and MusicOnHoldAudioFile is $NULL. In the past, this set Lync 2013 to play its default music on hold audio file, which at the time was C:Program Files (x86)Microsoft LyncMediaDefaultHold.wma

PS> Get-CsClientPolicy -Identity Global |fl enableclientmusiconhold,musiconholdaudiofile
EnableClientMusicOnHold : True
MusicOnHoldAudioFile    :

It appears, however, that the click-to-run version of Skype for Business either doesn’t know where its default music file is, or is expecting the file to be in the old location. In click-to-run, the file is located at C:Program FilesMicrosoft Office 15rootoffice15MediaDefaultHold.wma

To resolve the issue, we added the file to our client policy like this:

PS> Set-CsClientPolicy -Identity Global -EnableClientMusicOnHold $TRUE -MusicOnHoldAudioFile "C:Program FilesMicrosoft Office 15rootoffice15MediaDefaultHold.wma"

After giving it a while to update on the client end, music started functioning properly again.

Note, however, this will cause problems if you’re running different versions of Skype for Business or Lync, or if you’re running Lync Phone Edition devices, as the file location will most likely not exist for those clients.

The other alternative fix would be to have each user select the music on hold audio file in their options menu by clicking the Cog menu and selecting the Ringtones and Sounds option, then pressing browse next to the music on hold file listing. When the explorer window appears, click the file and press ok to force the client to use this file.

Untitled