Interview with a UC Pro – Adam Jacobs

This week I’ve chosen to interview Lync MVP, Adam Jacobs. Adam is my first English guest, and him and I run the Microsoft UC User Group London together along with Tom Arbuthnot and John Lamb.
Adam has a wealth of UC knowledge in areas such as business value, strategy and voice integration scenarios. He was one of the first people to get Skype to talk to OCS via Asterisk, so you can tell he likes to push the envelope to see what’s possible.
I first met him at the quarterly #ucomsldn drinks I run in London, so I decided it was time to see what his story is.

  • What’s your technical background? How did you end up where you are today?
    It’s pretty much my dad’s fault. He’s a software developer and from a young age he and I tinkered with technology. I recall our first breakthrough, a custom built ZX Spectrum – it featured a whole 1K of RAM (this was cool back then) and a keyboard that was embedded into a plastic lunch box!
  • Can you tell us what your position entails?
    I’m the Head of IT at a leading UK foreign exchange. My responsibilities are fairly broad, from in-house e-commerce development to capacity management within our three data centres.Strategically I have to ensure that I’m thinking ahead, especially in the current economic climate, where technology investments typically have a life expectancy of 5 years+. Fixed-line and mobile voice technology is definitely an area whereby intellectual investment can be made with big cost savings and increased business agility benefits.
  • What first made you get into UC and working with Lync?
    Previously I worked for a company that specialised in B2C SIP-to-PSTN services, it was run extremely badly and it wasn’t the most pleasant of workplaces – but I learnt a lot there. I started looking at Open Source VoIP technology, specifically Asterisk and as a consequence I fell in love with the capability of voice-to-desktop integration – which we now all know as UC.When the opportunity arose to put this into practice at my present workplace we chose OCS. We’re a “Microsoft shop” and this solution ticked all our boxes – we even identified an integration path for our Nortel CS1000. Next steps for us are to rip-and-replace our existing PBX with Lync and, fingers crossed, we’re hoping to pull this off later this year.
  • What’s your favourite thing about Lync?
    Probably the intuitive interface. Rolling out Lync (or OCS) has not only been huge hit within my workplace, but there has been little or no need for end user training. It’s the most successful technology implementation I have made to date. I recall one end-user saying, “Instant Messaging at work is great, I reckon you could use it for business use too!” – this made me chuckle
  • If you could think of one feature you’d like included in the next version of Lync, what would it be?
    Call pickup, in the UK (and Europe for that matter) this is a commonly adopted piece of traditional telephony functionality – team call-group doesn’t quite tick the box for all scenarios.
  • What do you feel is your area of expertise, where you’d consider yourself a bit of a rockstar?
    I’m not sure this makes me a “rockstar” as such, but here goes…I’d say I have both a strong technical background and grounded business acumen, this means I can engage in both areas. Often resulting in solutions that are not only cost efficient but also well aligned with the needs of the business.
  • Your blog is known for taking a different look at OCS and Lync, providing some more flexible solutions in the past. When did you start it and what direction has it taken?
    I started “I’m a UC Blog” back in early 2009, it used to be a fairly broad Microsoft technology site until I made the decision to focus primarily on UC, since then I see an average of 700+ visitors daily. The most popular articles are focussed around interoperability – I even got a mention in the Microsoft Lync 2010 resource kit chapter on “Interoperability with Asterisk and Skype” J
  • Whereabouts in the UK are you from and what do you think makes your hometown/city great?
    I’m from London and even withstanding the recent rioting and looting I still feel proud of my home town, especially when I commute in and around the City of London. The beauty and history can be quite breath-taking. As a Londoner, sometimes you just have to pause and be a tourist in your own city. That said, I love travelling (probably not as much as you Justin) and wouldn’t rule out re-locating if the right opportunity became available.
  • When you’re not dishing out quality technical know-how, what do you do on weekends for fun?
    It’s not always “fun”, but probably being a father to twin boys – it has its moments I can tell you!

Thanks a lot for participating Adam, it’s great to hear from another UC Pro in London. Make sure you check out his blog here and follow him on Twitter.

Configuring Lync Server 2010 for Remote Call Control with Mitel 3300

Remote Call Control on Lync is still a bit of a dark area. Everything in the server product remains in terms of configuring RCC, but getting it going is a bit of a different story. There is very little PBX vendor advice around regarding support of RCC in Lync with their PBXs (although Cisco updated their interoperability statement recently).

Plus there are some shortcomings on the client side that will make or break your RCC deployment. One of the biggest pain points is the complete lack of any video capability when Remote Call Control is configured. This will cause dramas for lots of organisations looking to leverage the desktop video capabilities in Lync. More on this from Jason Sloan.

I’m going to dive straight into the thick of it here and concentrate on getting RCC working with a Mitel 3300 ICP PBX and what vendor specific things you need to do in Lync. I will touch on the PowerShell cmdlets to get RCC going in Lync, but for more generic details on how RCC is configured in Lync, check out these other blog posts.

Infrastructure Requirements

At a high level, here are the basic bits and pieces you’ll need to get this running.

  1. Active Directory.
  2. A functioning Lync Server 2010 Environment consisting of at least one Standard Edition Server or an Enterprise Edition Front End Pool and Lync clients.
  3. A Mitel 3300 ICP (IP Communications Platform) and Mitel handsets.
  4. A Mitel Live Business Gateway.
When approaching this kind of integration, you should have an engineer on hand familiar with the Mitel PBX so they can configure the 3300 ICP to work with the LBG and outbound/inbound digit modification on the LBG.

Configuring the Mitel Live Business Gateway

Now let’s take a look at the somewhat tricky part – configuring the LBG. Here’s where you’ll want to have your Mitel man at the ready to give you a hand, mainly in the configuration of the ICP side of things.

Firstly, open up Mitel Business Gateway from Control Panel. This tab will display the IP address of the machine and the SIP port the LBG will use. Unless you have a strict business requirement to encrypt internal communications, don’t select TLS (this is a big headache, involves lots of stress with certificate, something I’ll cover in another post).

Mitel Live Business Gateway

Next, click the ICP tab. Here’s where you specify the Mitel 3300 PBX nodes (aka ICPs) that the LBG will talk to.

Mitel Live Business Gateway - ICP

Specify the IP address of the ICP and the Remote CC URI (this is what will become your Line Server URI in Lync – should be something like lbg@hostname.domain.com) to use. Next, specify the username and password to connect to the Mitel 3300 and hit Add.

Next click the Licensing tab. Here you need to put in your Service Link ID from Mitel to license your users for RCC using the LBG.

Now click the Active Directory tab. You need to configure the LBG to talk to AD so it can check if users are setup with phone numbers that they are attempting to remotely control with Lync.

Mitel Live Business Gateway - Active Directory

Specify the FQDN of a domain controller, then the username you want to use to query AD and the password and click Add To List. You can add additional DCs for redundancy.

Under the ODM and IDM tabs, you can configure how numbers are modified on outbound and inbound calls (so you can normalise incoming numbers from, for example only 4 digit extensions to full E.164 so they match to AD user accounts).

Mitel Live Business Gateway - ODM

Mitel Live Business Gateway - IDM

Finally, on the Log tab, you can setup the log level that will be captured for diagnosis purposes.

Once you’re all done, return to the Live Business Gateway tab and click the button at the button labelled Start.

Configure Lync Server for Remote Call Control

As I mentioned above, configuring the Lync server infrastructure for RCC is a bit different from previous versions. Everything is done in Powershell now, so those familiar with Routing and Authorised Hosts tabs in the OCS 2007 R2 GUI will need to pay attention here.

Setting up routes and trusted applications

To configure remote call control with Mitel, the following Powershell cmdlets will be run using Lync Server Management Shell on the Lync Front End server. Replace server FQDNs and IP addresses with your own.

  1. Create a new Trusted Application Pool for the Mitel LBG.
    New-CsTrustedApplicationPool -Identity mitel-lbg.justin-morris.net -Registrar lyncfe.justin-morris.net -Site 1 -TreatAsAuthenticated $true -ThrottleAsServer $true -RequiresReplication $false
  2. Create a new Trusted Application which is bound to the Application Pool created in the previous step.
    New-CsTrustedApplication -ApplicationId RCC -TrustedApplicationPoolFqdn mitel-lbg.justin-morris.net -Port 5060 –EnableTcp
  3. Create a variable called $tcpRoute that defines the static route to the IP address of the Mitel LBG when the Server URI is matched.
    $tcpRoute = New-CsStaticRoute -TCPRoute -Destination 10.1.10.50 -Port 5060 -MatchUri mitel-lbg.justin-morris.net
  4. Configure the Lync Static Routing Configuration with the new route specified in the previous step.
    Set-CsStaticRoutingConfiguration -Route @{Add=$tcpRoute}
  5. Enable the modified Lync Server Topology.
    Enable-CsTopology
  6. The topology will then need to be exported to XML and a manual workaround applied specific to integration with Mitel. Note that this is NOT RECOMMENDED by Microsoft to EVER manually modify the topology document, but it is required to get RCC working with Mitel in Lync. Test this in an isolated environment before making changes to your production environment.
    Run the following command to export the topology to XML:
    Get-CsTopology -AsXml | Out-File c:\rcc.xml
  7. Open the rcc.xml document and find the line that refers to the Mitel LBG e.g.
    <Cluster Fqdn=”mitel-lbg.justin-morris.net” RequiresReplication=”false” RequiresSetup=”true”>
    <ClusterId SiteId=”1″ Number=”3″ /> <Machine OrdinalInCluster=”1″ Fqdn=”mitel-lbg.justin-morris.net”>
    <NetInterface InterfaceSide=”Primary” InterfaceNumber=”1″ IPAddress=”0
    .0.0.0” />
    </Machine> </Cluster>
  8. Modify the IPAddress field from 0.0.0.0 to the actual IP address of the Mitel LBG e.g. 10.1.10.50.
  9. Save the file and exit.
  10. Next, publish the modified Lync Server Topology to the CMS.
    Publish-CsTopology -FileName c:\rcc.xml

User Configuration

For each user you want to setup for RCC, go into their account details in the Lync Server Control Panel. From the Telephony drop-down menu, select Remote Call Control.

Configure them with a LineURI that looks like this:
tel:+441632456765;ext=6765

And a Line Server URI that looks like this:
sip:lbg@mitel-lbg.justin-morris.net

So in the GUI, it should look like this once configured:

RCC user configuration in Lync Server Control Panel

Once you’ve filled this in, hit Commit.

Additionally, each user needs to have the extension field (e.g. 6765) somewhere in their AD account (in a Telephone field for example) so the Mitel LBG can see that the users is setup for that phone number.

Configuring each Lync Front End Server to listen on Port 5060

Finally, we need to configure our Lync Front End Server to listen on port 5060 for SIP TCP so it can receive traffic from the Mitel LBG. We do this by running the following cmdlet from Lync Server Management Shell:

Set-CsRegistrar “Registrar:lyncfe.justin-morris.net” -SipServerTcpPort 5060

Hat tip to Tom Pacyk’s blog post for this one (again, the guy comes up with the goods).

Troubleshooting connectivity on the LBG

If RCC doesn’t work straight off the bat for you, you can troubleshoot connectivity by opening the Log Viewer application on the LBG. Navigate to C:\Program Files (x86)\Mitel Networks\Live Business Gateway\Tools and open MSPlogs.exe

First, click File then click Connect to MSPLog File…

Mitel LBG Log Viewer

Next, navigate to the Logs directory under …\Mitel Networks\Live Business Gateway\Logs and select appgw.log and click Open.

Mitel LBG Log Viewer

All logs of connections to the LBG are now available for viewing. Interpreting what they mean is a topic for a whole other blog post. 🙂

Mitel LBG Log Viewer

Conclusion

Obviously this is a pretty full-on piece of integration, and this goes into a bit of detail but doesn’t cover everything. You’ll see less and less support of RCC these days and not as many people deploying it, but hopefully this helps those of you out there still wanting to get RCC going with your Mitel 3300 and Lync Server 2010.

How to hide users from the Lync Address Book

This has come up a few times in different engagements in the past, and I decided it would be worth publishing some guidance around how to set this up.

Why would I want to hide users?

Perhaps you have members of the organisation that you don’t want contacted by everybody else. Say if you have a strict communications policy that the CEO shouldn’t be directly contactable, you could hide them from appearing in the address book.

Another example is if you have resource accounts setup that are enabled for Lync whose purposes is for only making calls, there’s no need for these to be discoverable in the address book. Or perhaps you don’t want them searchable because they are private numbers or are in private areas, you would hide these from the Lync Address Book.

How it’s done

First, on one of your Lync Front End servers, install the Lync Server 2010 Resource Kit. You can download it here.

Next, on the server using Windows Explorer, browse to C:\Program Files\Microsoft Lync Server 2010\ResKit and double click the application named ABSConfig. You’ll be presented with the UI below.

Lync ABS Configuration Tool

Firstly, you’ll see a list of AD Attribute Names. To achieve this, we need to create a new one and specify the AD Attribute we want to use to filter accounts. Here I’ve specified the AD Attribute comment, but you can use whatever takes your fancy.

Next, you need to specify where it says Which users do you want to include in the ABS files? whether you want to:

  1. Only include users that have a value for the AD attribute you specify or;
  2. Exclude all users who have a value for the AD attribute you specify.

For this blog post, we’re going to select Exclude all users who have a value for this AD attribute. In the field next to this, we’re going to type the name of the AD attribute (comment) that we specified above. In each user account we want to hide, we will use this AD attribute to populate with a data value.

Once you’re done, hit Apply changes and you’re good to go. Changes will take affect next time the Address Book processes do their thing (by default, this happens at 1:30am each night).

Now, whenever the Lync User Replicator process sees a user with a value for the attribute you specified, it will exclude it from the Address Book and that user will not appear when you search for them in the Lync client.

Microsoft Lync, Group Chat, SQL Mirroring and Site Resilience

So the last few weeks I’ve been nutting out what happens when you deploy the backend Lync and Group Chat SQL databases onto a SQL Server 2008 R2 mirror pair for site resilience purposes. This is an unsupported scenario, so needless to say the results were quite fascinating.

I saw some very interesting behaviour when you simulated a failure of the primary SQL node and activated the standby node in another site. I also had to hack at it like crazy to try and get Lync to connect to the mirror node, both for the regular backend databases and for the Group Chat database.

Let me just whet your appetite by saying, some things work well, other things don’t work at all.
Database Mirroring in SQL I’ve learnt is actually a very robust and flexible HA solution for databases, but there are only some ways it could potentially be useful for Lync.

Standby for a full write up in the near future. 🙂

The First Microsoft UC User Group London – Done and Dusted

After a few months of preparation, working out what we were going to present, where we were going to have it and when, we pulled it off and ran our first Microsoft UC User Group London event last Thursday!

I’m really happy with the response and feedback we received on the night and I think all the content we presented went down well. It was also great having a chat to people about Microsoft UC after at the pub over a few pints and to share some war stories.

Adam has uploaded all the slidedecks to slideshare for us, here’s my one on Voice Resiliency in Lync Server 2010.

The rest of the presentations are available here. More info including snippets of feedback from attendees is available here on the MUCUG London blog also. Look forward to seeing you at the next one!

Communicator for Mac 2011 13.1.2 Update Available

As a follow up to my last blog post about issues with OSX Lion, I’m happy to bring news that Microsoft have now come out with a 13.1.2 update for Communicator for Mac 2011 to resolve the issues (and give you desktop sharing back!).

If you’re running the RTM version (13.0.0.) to get around the issues with OSX Lion, you’ll need to update to at least 13.1.0 to install this update. Otherwise the 13.1.2 update will not install. You can do this by following these steps:

  1. With Communicator open, click Help and then Check for Updates from the menu bar.
  2. When prompted, click Check for Updates.
  3. Once AutoUpdate has checked for updates, click Install when prompted to install the 13.1.1 update.
  4. Follow the Install Wizard to install the update.
Next, download the package for the update from Microsoft and you’ll be able to successfully install the update.

Workaround: Communicator for Mac crashes on OSX Lion

Apple released Mac OSX Lion on Wednesday, their successor to Snow Leopard. I use a MacBook Air (late 2010) for work and play, so eagerly downloaded the 3 and something GB of new operating system overnight, ready to upgrade on Thursday morning before work.

I kicked it off and all was fine and dandy until I noticed two things. One, my Windows 7 VM wouldn’t fire up and I had to reinstall Parallels Desktop, and two, Communicator for Mac wouldn’t work properly. It would sign in ok, but would crash as soon you tried to initiate any kind of session – IM, audio/video, desktop sharing etc. You could open an IM with someone, but as soon as you entered text and pressed enter, it would crash.

Resolution

Thankfully, there’s a fix to this. My only option would have been to use Lync in my Windows 7 VM if I didn’t work it out. The culprit here is the Communicator for Mac 2011 13.1.1 update (that enabled desktop sharing). A simple reinstall of Office for Mac 2011 over the top won’t fix it because the update is still installed.

You’ll have to go to your Applications folder and trash Communicator for Mac 2011 completely like so:

Communicator for Mac OSX Lion

This way, Communicator is completely removed from your system. Now if you do the Office for Mac 2011 reinstall, it’ll install the RTM version (13.0.0), which works fine with OSX Lion. Only problem is you’ll have no desktop sharing.

Hopefully we’ll see a patch from Microsoft in the (very) near future to fix this incompatibility up.

Interview with a UC Pro – Chris Norman

Chris Norman has for a long time been a guru when it comes to Microsoft UC. His blog VoIPNorm’s Unified Communications Blog has helped me and I’m sure many other people understand OCS/Lync and the voice side of things for years. I’ll tell you what, this guy knows his stuff when it comes every which way possible that Microsoft and Cisco talk to each other. He’s an Aussie like me, but has been living in Seattle for the last couple of years, so I decided to steal a bit of his time for my Interview with a UC Pro series.

  • What’s your technical background? 
    I started out as a electrician working on industrial electric motors and starters which was rather an unpleasant dirty job but it did introduce me to a whole bunch of different industries. I was only 18 when I started and by the time I finished my apprenticeship I was pretty bored so I joined the military. I was in the military for about 7 years working on variety of stuff from Lotus Notes, Exchange, Cisco/Nortel network equipment and Cisco IPT. I ended up leaving the military and working for a defense contractor that also made those big white things that fly in the sky and eventually moved to Seattle after doing a international training exchange.
  • How did you end up where you are today?
    Luck. I knew someone that knew someone and the next thing I knew I was working for Microsoft.
  • You’re our first interviewee from Microsoft. Can you tell us what part of the company you work for what your position entails? 
    I work in sales as a Lync technology specialist. Its mainly presales engineering although a lot of the companies I spend time with quite often say they want to give me desk if I want to come around and help them deploy.
  • What first made you get into UC and specializing in Lync?
    At my previous employer I was asked if I wanted to help integrate our current telephony platform (Cisco) with this new stuff coming out from Microsoft (LCS at the time) for a trial. Being one of the few people on the telecom team with Microsoft technical experience I said “sure sounds great” and it went from there.
  • What’s your favourite thing about Lync? 
    The end user experience. Its really changed they way I work and I love that. I don’t need multiple applications to get my work done and Microsoft has done a great job of bringing focus to one application rather than having a whole bunch of applications that all do something a little differently.
  • If you could think of one feature you’d like included in the next version of Lync, what would it be? 
    This is a really simple feature add but for an end user perspective I love the tabbed conversation application. Having all my conversation in one window is really handy so getting that rolled into the product rather than a separate application would be great. The person that came up with the idea for the tabbed conversation application has my gratitude, I really love it.
  • What do you feel is your area of expertise, where you’d consider yourself a bit of a rockstar? 
    Hard question. If I were to pick a area of technical knowledge I would have to say Cisco & Lync interoperability. I have been working with both platforms for a long time now and although I don’t know everything about it, it is a area I understand well. If I were to pick something I was passionate about it’s the technical community. Over the course of the last few years I have helped get four user groups up and running. This includes the Seattle chapter of CIPTUG (Cisco IPT User Group) before I joined Microsoft where I served as chapter president. Since then I have have had a hand in either reviving or starting three more Microsoft UC User Groups here in the Pacific Northwest.
  • Your blog is known for being a great resource for voice integration related issues. When did you start it and what direction has it taken? 
    It started in late 2008 as a way for me to get more involved in the technical community. I had friend at Microsoft who wanted to help me get my MVP and he suggested it would be a great way to grow and show that I was MVP worthy. Besides the other things I was already doing, like presenting at conferences and running the Seattle CIPTUG chapter the blog really helped me get to MVP. Now when I go back and read some of my first post I know that the content has stayed the same theme of Cisco Microsoft interop but I try to pick stuff to post about you may not see on a whole lot of other blogs. I also try to focus on issues that I see in my daily work that people ask me about. A good example is my last post on Exchange UM secondary dial plans. Not a lot of information out there as it relates to Cisco Microsoft interop so hopefully posts like that help folks out.
  • You’re a fellow Australian. How did you end up in the US? 
    I was part of an international exchange program at my former employer and originally came to the US as trainee of sorts from a subsidiary company. The parent company here in the US ended up wanting me to comeback after I went home to Australia as a full time employee and offered me a spot, so I came back.
  • Whereabouts in Australia are you from and what do you think makes your hometown/city great? 
    I am originally from Brisbane area in Queensland. Brisbane really has great weather and is only an hour away from the Gold Coast which really has some of the best beaches in the world. Its one things I really miss about Australia besides family.
  • When you’re not dishing out quality technical know-how, what do you do on weekends for fun?
    I love to garden. I really enjoy growing our own food and have over 50 different varieties of edible plants in our backyard even though we live on a pretty small lot. Urban farming has really started to take off again in the US since the economy took a dive and its really great to see people getting back their food independence and making healthier organic food choices.

Many thanks for participating Chris. You can check out Chris’ blog here, and be sure to follow him on Twitter at @voipnorm as well for news and updates on UC.

NET Voice Gateway Documentation for Microsoft Lync

When deploying voice capabilities on Lync, you’re going to need a gateway or two to interact with your legacy PBXs and the PSTN. My personal recommendations are the VX and UX series from NET, as they’re the most flexible and easiest to maintain and configure. Not to mention that NET are continually innovating their products and bringing new features to the marketplace.

Getting into setting up and configuring these devices can be a daunting task however. Web interfaces, device specific GUIs (VXbuilder and VXwatcher) and CLIs make it a different beast to Lync.
Fortunately, all the NET documentation and training you’ll need s available in one central place at the NET Online Support Centre. Specifically, technical documentation for the following products relevant to Lync Server 2010 are available here:

Everything is all laid out with screenshots and easy to follow steps. Whether it’s getting your VX 1200 gateway setup from scratch, configuring trunk groups or dial plans or assigning certificates for media bypass, everything is here to make it easy for you to configure and maintain your NET devices in your UC environment.
Check out the NET Online Support Centre here.

Microsoft UC User Group London – Inaugural Event

A few of us in the London UC community have launched a new user group for London as we decided it was high time we ignited a bit more interest in Microsoft UC. It’s run by myself, Adam Jacobs, John Lamb and Tom Arbuthnot and we plan on kicking things off in late July.

In our first event, we’ll be covering an introduction to Lync and how its different to OCS (run by Adam Jacobs) and then I’ll be covering off Lync Voice Resiliency in a deep dive. Agenda is below:

Date: Jul 28th 2011 Title: An Introduction to Lync
Times Topics
18.00-18.20 – (high-level) User Group & Lync Server Intros (All/AJ)
18.20-18.40 – (deep-dive) Lync Voice Resiliency (JM)
18.40-19.10 – (Networking) N/A
19.10-19.40 – (Chalk/Talk) Attendee pain points/guidance (All)
19.40-20.00 – (Gen. Update & Q/A) Latest resources and speaker specific updates (All)

Registration: here

Location:

Bow Bells House
1 Bread Street
EC4M 9BE London
United Kingdom

Check out the post on our blog here for more info. Hope to see a few of you there!