Skype for Business Response Groups Diagrams

This is something I was looking for every time I had a deployment with multiple Response Groups.

Customers and management would usually like to see a graphic chart of how the Response Groups’ workflows work, what are the timeout and over flow options, what’s the chosen routing method for each group,  and who are the users in each group.

Looking at Matt Landis‘ great Get-csRgsWorkflowDiagram script, I was inspired (and in need) to do something similar.

Took a while to get it where I wanted, but the version published here now is one I’m very happy about and it actually gives me everything I was looking for.

It’s actually two files;

  • One file is the script that you should run from your PC.
  • The second file is a custom Visio stencil (.vss file) that will be downloaded to your “My Shapes” folder (That’s always in your “My Documents” folder after you install Visio) and will provide the Visio images for the script. You can find it here if you wish to download it to your machine beforehand.
    The script will detect proxy\download issues and will prompt you to download the VSS file manually if required.

Prerequisites

  • Run this script from your workstation – not from the server. It doesn’t matter if your workstation is in the domain or not.
  • You’ll need an installation of Visio on that machine.
  • PowerShell 3.0 is a must.
  • ADDS RSAT is required if you’re sing Active Directory Distribution Groups for some of your Response Groups’ groups. We’re using the AD PowerShell Module to expand these groups and list their users.
  • Your Lync\S4B pool’s FQDN and administrator credentials.
  • Your Execution policy set to Bypass, at least until I start signing my scripts…

Running the script

From PowerShell, run the file, it will immediately prompt you for your Pool’s FQDN:

Pool Name

Enter your pool’s name and you’ll be prompted for credentials:

Creds

The script will generate a list of all your Response Groups. Pick up a Response Group nunmber from the list, or hit 0 for all Response Groups. Each workflow will be drawn in a new page:

WF List

If required, it will download the Visio stencil and place it in your “My Shapes” folder:

VSS

The script will start drawing the diagram in the background:

Drawings

Upon completion, the script will auto-save the file to your My Documents folder:

Path

The file is saved with the workflow’s name and the creation date:

File

And is ready to be opened:

Visio Window

For multiple Response Groups you’ll have multiple pages, each with the Workflow’s name.

Diagrams are scaled to fit the pages, but might be larger due to large number of agents in a group.

Known Issues

  • This script was tested in English, you might experience some issues if you’re running Visio under a different language.
  • Windows 10 OS build 10565 can’t install ADDS RSAT – the script will not expand Distribution Groups.

Download

Please download the script here.

Advertisements

Install Skype for Business Server 2015 prerequisites on Windows Server 2008R2, 2012 and 2012R2

Skype for Business Server 2015 is here now, along with a new set of demands to install it right on your Windows Server. Here’s how to get it done: Windows Server 2008R2: Microsoft recommends that you only install Skype for Business Server 2015 on Windows Server 2012 or 2012R2. However, if you’re in-place upgrading from an existing installation of Lync 2013, you might like to use your existing Windows 2008R2 server. The following procedure assumes you already have Lync 2013 installed on your system, so all prerequisites should already be installed.

  • First, make sure you’re patched and up to date with Windows updates.
  • Download and install KB2533263.

Windows Server 2012:

  • First, make sure you’re patched and up to date with Windows updates.
  • Download and install KB2858668.
  • Run the following from an elevated PowerShell console:

Add-WindowsFeature RSAT-ADDS, Web-Server, Web-Static-Content, Web-Default-Doc, Web-Http-Errors, Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Http-Tracing, Web-Basic-Auth, Web-Windows-Auth, Web-Client-Auth, Web-Filtering, Web-Stat-Compression, Web-Dyn-Compression, NET-WCF-HTTP-Activation45, Web-Asp-Net45, Web-Mgmt-Tools, Web-Scripting-Tools, Web-Mgmt-Compat, Desktop-Experience, Telnet-Client, BITS -Source D:\sources\sxs

  • -Source D:\sources\sxs” is the location of the .Net framework installation files, located on the “Sources\SXS” folder on your Windows Server 2012 installation media. You can point this to any other location that has this data.

Windows Server 2012R2:

  •  First, make sure you’re patched and up to date with Windows updates.
  • If you’re running an in-place upgrade from Lync Server 2013, Download and install KB2533263. All prerequisites should already be in place.
  • For a new installation of  Skype for Business Server 2015, run the following from an elevated PowerShell console:

Add-WindowsFeature RSAT-ADDS, Web-Server, Web-Static-Content, Web-Default-Doc, Web-Http-Errors, Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Http-Tracing, Web-Basic-Auth, Web-Windows-Auth, Web-Client-Auth, Web-Filtering, Web-Stat-Compression, Web-Dyn-Compression, NET-WCF-HTTP-Activation45, Web-Asp-Net45, Web-Mgmt-Tools, Web-Scripting-Tools, Web-Mgmt-Compat, Desktop-Experience, Windows-Identity-Foundation, Telnet-Client, BITS -Source D:\sources\sxs

  • -Source D:\sources\sxs” is the location of the .Net framework installation files, located on the “Sources\SXS” folder on your Windows Server 2012 installation media. You can point this to any other location that has this data.

You’re all set and ready to install Skype for Business Server 2015 now.

First glimpse at the Skype for Business client

So, word is out – the new client is here. How does it look like and what are the big changes? Let’s have a look: (Click on the images to enlarge)

The client is branded with the Skype for Business logo and name, and has a similar feel to the consumer version:

S4B Client

Similar to the Lync 2013 client, if you hover over a contact’s picture, you can see the quick options menu:

Hover Preview

The number pad tab is colourful. The UM piece is missing the playback speed feature that was introduced in Lync 2013.

Numpad

The IM window will always show the participants. You can expand this to see a full list of all participants:

Video preview is similar to the one we’re familiar with in Lync 2013:

Video Preview

And so is the call option menu:

Call select

Content sharing button is similar to the Lync 2013 client with a nice preview of the desktop (Not shown here):

Presentable

PowerPoint sharing within a Lync 2013 Server environment uses Office Web Apps, just like the Lync 2013 client:

PPTSharing

The greatest improvement maybe is to the call window;

Skype-like feeling:

Calling

PSTN Navigation options: Transfer within a click of a button, instead of a quick programming tutorial:

InCallWindow

And no more “Where’s my conversation window? How do I hang up or mute?!” as we have the Skype-like hover window:

Hover window

Oh, and one last small thing: Every active window has the option to change views during a call:

View

Lync for Windows Phone update—more settings for voice calls – Office Blogs

As published in the Lync blog today, Lync for Windows Phone has more settings for voice calls:

VoIP always—The device will use a Wi-Fi connection, if available, to place the call. If Wi-Fi isn’t available, the device will defer to the 3G/4G data plan and the Lync voice calls will be initiated over that connection.

VoIP over Wi-Fi only— The device will use a Wi-Fi connection, if available, to place the call. If Wi-Fi can’t be found, this setting instructs the Lync mobile service to connect you using Call via Workplacing a call to your phone first, then to the destination number.

Cellular—The Lync mobile service will directly place a call to your phone number using Call via Work and then complete the call to the destination.

Read the full article in the official Lync blog:

http://blogs.office.com/2014/12/10/lync-windows-phone-update-settings-voice-calls/

‘Tis the season to prepare – Add Ireland Public holidays for 2015 to Lync Server

It’s this time of the year again, and the most common question is “What do we do when we’re going on holidays?”.

The answer is here! (That is, if you live in Ireland :)) – the attached script will add all Public holidays for 2015 …And then some:

According to the Citizen Information Board, the following are Public Holidays in Ireland in 2015:

  • New Year’s Day (1 January)
  • St. Patrick’s Day (17 March)
  • Easter Monday (This year it’s 4 April)
  • First Monday in May, June, August (4 May, 1 June, 6 August)
  • Last Monday in October (26 October)
  • Christmas Day (25 December)
  • St. Stephen’s Day (26 December)
    Good Friday is not a public holiday.

The script will add all of the above and the following:

  • Christmas Day 2014 (25 December)
  • St. Stephen’s Day 2014 (26 December)
  • New Year’s Day 2016 (1 January)

You will need to check the new holiday set box for your RSG Workflows to activate your holiday configuration.

To run the script, simply run it one of your Lync servers. The script will confirm that you have local admin permissions and will prompt you for automatic elevation if necessary.

then, it will search for and display your existing application servers, please choose the one(s) running your RGS.
The new improvement to the script is that it will ask you whether you’re using a 12-hour or 24-hour configuration on your machine to determine how to run.
Once you choose 12 or 24 hour configuration, the script will run and add a holiday set called “Ireland Public Holidays 2015”.

Holidays

Download the script here.

Lync 2013 E.164 CLI and carriers (It’s that Plus sign!)

If you’re using Lync properly, you must have all your numbers in accordance with the E.164 format, as recommended by Microsoft and as often preached by Ken Lasko.

There are many benefits for using E.164, but – like any good thing – it comes with some flaws. One of these flaws when using Lync 2013 is that Lync will cease normalizing numbers that are prefixed with +.
The moment you add the ‘+’ sign to your number, Lync will consider it already normalized and will not process any more rules.

This can cause issues with some providers that require us to remove the leading ‘+’ sign from the number.
The work around for dialled numbers (Or as Lync describes it “Called Numbers”) is to use the Set-CsTrunkConfiguration command to remove ‘+’ sign at the trunk level by adding the parameter -RemovePlusFromUri $true.

This is all good for numbers Called – but what about numbers Calling? How can we manipulate the “Source” number?
If we look at a trace from Lync we can see that the destination number is stripped from it’s leading ‘+’, but the source number still has that annoying sign, although I have a rule that says it’s removing it:

With plus

The SIP invite shows the issue:
INVITE sip:3531891170170@MediaGateway.y0av.local;user=phone SIP/2.0
FROM: <sip:+35314396804;ext=6804@y0av.com;user=phone>;epid=3DFA3756A7;tag=1e448bc93
TO: <sip:3531891170170@MediaGateway.y0av.local;user=phone>

As you can see in the image above, the ‘+’ sign is removed from the destination number, but it’s still there on my source number.
This might result on certain carriers dropping the call since they’re expecting the CLI with no ‘+’.

The workaround:

If you’re working with a gateway or a SBC, you’ll usually be able to work around this issue by stripping the ‘+’ there, simple as this.

If you’re working with Lync only and using a direct SIP trunk to your provider – it’s easy too!
The numbers are not normalized due to Lync’s lack of ability to ignore the rest of the data in the FROM line; when we’re creating normalization rules within Lync, we will usually be looking at numbers and specific characters, not the entire weird string.
The workaround then, is to treat the entire string as… a string.
I add the following rule for my “Calling Numbers” manipulation in the trunk:

Rule

This rule says that whenever a number starts with a plus and has at least 8 characters (ANY character) following it, we should ignore the ‘+’ and send only the characters:
Pattern to match: ^\+(.{8,})
Translation rule: $1
Of course, you can change that to look for more numbers if you have other rules there.

Once the rule has been placed and committed, traces look like this now:

Without Plus

The SIP Invite shows the difference:
INVITE sip:3531891170170@MediaGateway.y0av.local;user=phone SIP/2.0
FROM: “Yoav Barzilay”<sip:35315267877;ext=7877@y0av.com;user=phone>;epid=3DFA3756A7;tag=c9b24cf3b
TO: <sip:3531891170170@MediaGateway.y0av.local;user=phone>

 

Lync 2013 November 2014 update

As part of the full Office 2013 update dated November 11, 2014 (See here for full details), Lync 2013 clients gets an update as well, KB2899507.

The update fixes the following issues:

  • Video freezes consistently for two second-intervals when you make a video call in Lync 2013
  • Incorrect format of string in a trace statement when application sharing session viewers stop viewing in a conference
  • Memory leak occurs when you start a peer-to-peer application sharing session in Lync 2013
  • Lync 2013 crashes when you join a meeting that is hosted on Lync Server 2010 as an anonymous user
  • Lync 2013 freezes when a toast notification of a call appears

32bit update
64bit update

More information here.

Polycom VVX FTP Provisioning Server Creation Script

Originally posted: August 29, 2014.
Updated: February 15, 2017..

I was following Polycom’s instructions and Jeff Schertz’s post on configuring an FTP Provisioning server for the Polycom VVX range. In large deployments, when you need to update and configure hundreds and thousands of phones, this is the only way to do it right.

There were two things that I struggled with when configuring this server:

  • You have to build and configure an FTP server, DHCP options, AD user, download the files… etc.
  • For most organizations – You’ll use an FTP on a Windows server. Jeff mentioned that the username and password for the FTP user (PlcmSpIp) would not be acceptable in many environments due to the fact that it doesn’t meet the Password complexity requirements.

So, I set up my mind to create an automated process to do all of the above, in a Windows Active Directory environment. I wanted to run a task on the soon-to-be FTP server that will save me all the hassle of configuring three different serves and downloading the software. Well, guess what – it worked!

So what is this script doing?

  1. It will first check if you have local Admin rights to run the script. Automatic elevation will take place if you allow it.
  2. It will warn you, very clearly, that you’re about to install an FTP server on this machine and create a new, granular, non-secure password policy. It will also advise that the latest Polycom firmware is downloaded from my site, and not the Polycom website (You need to accept terms and conditions there, there’s no direct download link).
  3. You’ll be prompted to enter the server’s FQDN, although you’re actually installing it on that server. We’ll use that later…
  4. It will check your Forest and Domain functional levels. This script requires that your domain functional level would be at least Windows 2008.
  5.  It will install the following features and prerequisites:
    • IIS FTP
    • IIS Management Tools
    • DHCP Remote Server Administration Tools
    • ADDS Remote Server Administration Tools (Installed previously on Domain Functional Level tests)
  6. It will then install and configure a new FTP site in a dedicated VVX folder under C:\Inetpub. The FTP server will be configured to use Basic Authentication only and will authorize the user PlcmSpIp with read and write permissions. As suggested in Jeff’s post, dedicated ‘logs’ and ‘calls’ folders are created as well.FTP Creation
  7. It will then download the (currently) latest VVX firmware from my website. This normally takes 2-3 minutes, but can take longer depending on your Internet connection. If you have a proxy – it might not allow the download.
  8. Upon successful download of the file – the files will be unzipped to the VVX folder of the FTP and the original ZIP file will be deleted.
  9.  The script will then ask you for your DHCP server’s FQDN, it will add DHCP option 160 and configure options 160 and 066.
  10. The server will then confirm that you have options 4 and 42 configured and will ask you to provide a time server IP if these options are not yet there.
  11. A new Active Directory Fine-Grained Password Policy named PlcmSpIpPSO that does not require Password Complexity.
  12. Wait for AD for 30 seconds – this has proven to be a critical pause…
  13. Create a new AD user named PlcmSpIp in the default User container with the description: “User for Polycom Provisioning Server – This user has a simple password policy”. You can move this user to a different location once the script is finished.
  14. Apply the new Fine-Grained Password Policy to this user.
  15. Enable the user, set its password to PlcmSpIp and set it to “Never Expires”.

That’s it, your server is good to go.

FTP Ready

Many thanks to Guy Bachar for his help in this one.

Updates:

September 3, 2014, Version 2.3.1:
– Domain and Forest Functional Level tests in beginning of script.
– No need to insert the FTP server’s name.
– DHCP test errors are no longer visible.

September 5, 2014, Version 2.4.0:
– Updated to Polycom VVX Software version 5.1.2

February 15, 2017, Version 3.0.0:
– Now downloading version 5.5.1 directly from Polycom.
– Added configuration for DHCP option 161.

 

Download the script here.