JBs Just Sayin
  • HOME
  • ABOUT
  • LYNC DIRECTORY
  • PROVOKE
  • GALLERIES

Posts tagged Lync

Lync Hold Issue

May30
2012
5 Comments Written by JB

In a recent Enterprise Voice deployment I struck an issue where a small number of users couldn’t place a call on hold. When they tried, the Lync client errored with “Failed to place call on hold” and instead put the client’s mic and speakers on mute. Removing this mute sometimes worked and sometimes resulted in a dropped call.

All users in this particular deployment were subject to the same client policy, same client version, same voice routing.. generally, everything was the same from one user to the next.

After running some S4/SIPStack trace logs on the gateway, and analysing the SIP Options packet that was being sent to the SIP gateway, I could see that in a working request, the SIP Invite that got sent included a=inactive (which is normal), whereas in a failing request, the Invite sent a=sendonly instead. What I couldn’t figure out was why two clients with the same settings/policy/routes would send two different hold methods. What made this particularly odd was that the user that was having the issue could log on to a different computer, and placing a call on hold would work fine.

So, issue had to be client-side.

One of the things I looked at during the debug process was the Lync registry entries. After painstakingly comparing registry keys line by line, I found that only one of the clients had the MusicOnHold registry keys listed – and it was the one that wasn’t working. Looking at the client options (Tools > Options > Alerts) showed that both had the same options selected (in this case, ‘Enable Music on Hold’ was ticked and greyed out (managed by policy), and the hold music file was populated with the default wma file), yet on the client that was working fine, the two MusicOnHold registry keys (below) were completely missing.

[HKEY_CURRENT_USER\Software\Microsoft\Communicator]

“MusicOnHoldDisabled”=dword:00000000

“MusicOnHoldAudioFile” =”C:\Program Files (x86)\Microsoft Lync\Media\DefaultHold.wma”

After backing up the keys, I deleted the MusicOnHoldAudioFile key, and rebooted. Bingo. Problem solved.

Tried reinstating the key again, and sure enough, problem returned immediately.

I have come across one other customer having the same issue, and they apparently found the problem disappeared when they apply CU5, however I haven’t been able to verify that completely with them, and when I tried the CU5 update, the issue persisted.

Why exactly this happens is soon to be the subject of a support ticket with Microsoft. When I get an outcome from that, I’ll be sure to update this post.

Gotcha – Integrating Lync On-Prem with Exchange Online UM

Jan26
2012
1 Comment Written by JB

As part of our (Provoke’s) recent migration of our corporate email to Office 365 and Exchange Online, we wanted to include migration of the Exchange Unified Messaging role to Exchange Online as well. Simple enough, and the UCGuys have a superb post that breaks down the process in real simple terms.

However..

We struck an issue after completing the process whereby calling voicemail, or trying to dial the UM dial-in numbers failed. Checking the logs revealed an error along the following lines:

ms-diagnostics: 1036; reason=”Previous hop shared address space peer did not report diagnostic information”; source=”<fe-server>”; dialplan=”Hosted__exap.um.outlook.com__<multipleSMTPdomains>”; umserver=”exap.um.outlook.com”;responsecode=”503″; msexchDomain=”<primarySMTPdomain>”; msexchPeerServer=”exap.um.outlook.com”; msexchsource=”<edgeaccessfqdn>”; appName=”ExumRouting”

Followed by:

ms-diagnostics: 15030; reason=”Failed to route to Exchange Server”; source=”<fe-server>“;dialplan=”Hosted__exap.um.outlook.com__<multipleSMTPdomains>“; appName=”ExumRouting”

Turns out we (and by that I mean me) had made an error when running the command:

New-CsHostedVoicemailPolicy -Identity Office365UM -Destination exap.um.outlook.com -Description “Hosted voice mail policy for O365 users.” -Organization “domain.com”

In my desire to validate blog posts before blindly following them (crazy right!), I’d checked the UCGuys’ NewCsHostedVoicemailPolicy  syntax against the Technet cmdlet library for New-CsHostedVoicemailPolicy, which states for the Organisation field..

This parameter contains a comma-separated list of the Exchange tenants that contain Lync Server 2010 users. Each tenant must be specified as an FQDN of the tenant on the hosted Exchange Service.

Which I duly interpreted as meaning all SMTP domains associated with the Exchange Online tenant – of which we had three. Especially as the example syntax at the bottom of the article does exactly that.

Turns out, that aint gonna fly.

For Exchange Online UM, you must specify one domain only in the Organisation field. And that domain must be one that Exchange Online is authorative for. If you’ve done a cutover migration, that will mean you can probably use your primary SMTP domain, as by dint of the cutover, Exchange Online will be authorative for that domain. However if you’ve done a hybrid migration, chances are good that your on-premise Exchange platform is still authorative for your primary SMTP domain. So best option here is to use your <customer>.onmicrosoft.com domain, as Exchange Online will always be authorative for that one.

This is briefly outlined at the end of the Connect Lync Server 2010 to Exchange Online UM Checklist from Microsoft.

Posted in Exchange, Exchange Online, Office 365, Unified Comms - Tagged Exchange Online, Office 365

The Lync ‘How To’ Guide

Nov02
2011
Leave a Comment Written by JB

If you’re implementing Lync, or already have it, chances are user training is/was part of the implementation. Great. But what about those “remind me how I..” and “what does this do again?” that you know will come up?

Microsoft have done you a huge favour here.

I personally think Lync is hands-down the most superbly well documented product ever to roll out the doors of Redmond. Sure there’s stuff that could be better documented, but the planning, implementation, support, and (yup) training material available is beyond compare.

There is a huge list of pre-canned resources available at http://lync.microsoft.com/Adoption-and-Training-Kit/rollout-and-adoption/Pages/Resources/Intro-to-Resources.aspx that includes the likes of reference sheets, training decks, and videos, but what I really want to flag for attention is the ‘How To Guide’. Quite simply – it’s brilliant.

The guide is a Silverlight and/or HTML web application that contains a huge range of common (and not so common) Lync user tasks, presented in a sensibly structured manner that any user should have no issue following. It even comes with a handy set of instructions that outlines how to easily add your own items to the list – useful if you perhaps have a custom app integrated with your Lync platform.

The package can be downloaded from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5735

Setup is a peice of cake, and should take less than five minutes. Here’s the basics for IIS7/7.5

  • Create a folder on your webserver
  • Extract contents of the zip file
  • Create an IIS site and point it at the folder you created
  • Define your default document as either rolodex.html (for Silverlight version) or jQueryRolodex.html (for the HTML version).
  • Configure your host headers and DNS entries
  • Done

The only difference if you’re doing this on older versions of IIS is you need to manually create a MIME type for .xap extensions, defined as application/x-silverlight-app

Lync On-Premises vs Lync Online

Oct20
2011
2 Comments Written by JB

A common question about Lync Online (and the other Office 365 products too, but this post is Lync-centric) is “how is this different from the on-premises solution?” And there is a comprehensive feature comparison available at the Office 365 Community site, but usually the next question I get is “yeah yeah, but what does that really mean for me?”

So here’s a shortlist of the more pertinant features that you don’t get with Lync Online.

  • PSTN calling (incoming or outgoing)
  • PBX integration
  • Advanced call handling (hold, redirection, park)
  • IP Phone support (USB only)
  • Analog line support (eg. fax)
  • Response groups (ie. Direct inbound call to a recipient group)
  • Persistent group chat
  • Skill search from SharePoint (either on-premise or online)
  • Client-side recording
  • Dial-in conferencing
  • Interop with on-premise video conferencing systems (eg. Polycom suites)
  • QoS
  • Quality of Experience Reporting

This usually leads to a question like, “ok, so what do they have in common then?”

So for completeness, here’s some of the more popular things you can do with both versions of the product.

  • PC-to-PC audio/video
  • Address book search
  • IMPresence
  • Office application integration (click-to-chat)
  • Federation with Lync Online, Lync On-Premise, and OCS On-Premise
  • Application/Desktop/Whiteboard/Presentation sharing
  • Online Meetings
  • Guest attendees (via rich client and web client)
  • Roundtable support
  • Meeting lobby

Hope that’s helpful.  Might add SharePoint Online and Exchange Online comparisons too.

Posted in Cloud Services, Office 365 - Tagged Lync Online, Office 365

Who’s Federating in NZ?

Aug31
2011
3 Comments Written by JB

Chances are, if you’ve implemented federation, or are planning on it, the first thing you want to know is “who can I talk to with it”.  That was certainly towards the top of my list anyway.

NOTE: This post has been superceded by a more comprehensive global federation list, available here.

Continue reading “Who’s Federating in NZ?” »

Posted in OCS - Tagged Federation

Lync Federation – Cleaning up discovered SIP domains

Aug25
2011
Leave a Comment Written by JB

If you have enabled Discovery for your Lync Federation services, you may want from time to time to add discovered domains to Federated Domains list to allow you to control their allow/block status.

Rather handily, Microsoft made this really simple to do.

Open the Event Viewer on one of your Edge servers and filter for Event ID 14601. You should find one of these logged every hour. This will contain the following:

Report of discovered partners that the Access Edge Server is currently monitoring.
There are 1 discovered partners, identified by the common name of their certificate.Name: accessurl.domain.com; Domains: domain.com

You can use these details to populate the Domain and AccessEdge fields in the Federation Domains section of your Lync Control Panel.

Easy.

Tagged Edge, Federation

Removing server roles from OCS 2007 R2 servers

Jun12
2011
Leave a Comment Written by JB

Unfortunately, if you follow the instructions here (http://technet.microsoft.com/en-us/library/dd572507(office.13).aspx) to the letter, you’ll get an error when you try to remove the Core Components.

The OCS Admin Tools are not listed in the removal order, and unfortunately will prevent you removing the Core role. So, where it says this….

If you are removing an Edge Server, a Mediation Server, an Archiving Server, or a Monitoring Server, remove the Office Communications Server 2007 R2 components in the following sequence:

  • Microsoft Office Communications Server 2007 R2, Edge Server
  • Microsoft Office Communications Server 2007 R2, Mediation Server
  • Microsoft Office Communications Server 2007 R2, Archiving Server
  • Microsoft Office Communications Server 2007 R2, Monitoring Server
  • Microsoft Office Communications Server 2007 R2, Core Components
  • Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redistribution package

..it should actually read…

If you are removing an Edge Server, a Mediation Server, an Archiving Server, or a Monitoring Server, remove the Office Communications Server 2007 R2 components in the following sequence:

  • Microsoft Office Communications Server 2007 R2, Edge Server
  • Microsoft Office Communications Server 2007 R2, Mediation Server
  • Microsoft Office Communications Server 2007 R2, Archiving Server
  • Microsoft Office Communications Server 2007 R2, Monitoring Server
  • Microsoft Office Communications Server 2007 R2, Administrative Tools
  • Microsoft Office Communications Server 2007 R2, Core Components
  • Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redistribution package

Just sayin.

Posted in OCS - Tagged Migration, OCS

Migrating Dialogic Media Gateway from OCS R2 to Lync Mediation Servers

Jun11
2011
1 Comment Written by JB

Having deployed a Lync pool alongside our OCS 2007 R2 pool, merged the topologies, and migrated the users all without much issue, I then wanted to migrate calling away from the OCS mediation servers to the Lync mediation servers. Sounded easy. Unfortunately it wasn’t. Outbound calling worked ok, but inbound calling failed.

As you see in the diagram, the topology is fairly straight foward. Two PSTN gateways on 10.10.10.1 and 10.10.20.1, listening on TCP:5066 and 5060 respectively – one talking (hopefully) to a Lync mediation server (10.10.10.4) on TCP:5066 and the other still talking to an old OCS 2007 R2 mediation server (10.10.20.4) on TCP:5060. For now, forget the 10.10.20.x devices.

Steps I followed to get to this point were essentially as outlined in this Technet library (and the equivalent downloadable word version) http://technet.microsoft.com/en-us/library/gg398092.aspx. In short, define a PSTN gateway in the Lync topology, set listening ports on PSTN and Mediation objects, define and commit a voice route, publish topology, done.

What isn’t well documented here is that if for any reason you change the listening ports for the mediation server after initial publish (which I did, mostly just to bring the port allocations in line with the new Lync default ports as the old OCS deployment was using weird ports), you have to restart the Lync Mediation service, otherwise it wont pick up your port changes, even if you re-run the deployment tool.

So at this point, outbound calls were working. No issue. Happy admin.

But incoming calls from the PSTN would fail with “VoIP Transport Failure” on the Dialogic.

What I had already done on the Dialogic was change the routing table properties, specifically the VoIP Host Group settings, to use the new gateway (as the old OCS R2 mediation server was on 10.10.10.3). This is done in the Dialogic UI under Configuration > Routing Table > VoIP Host Groups (radio button at the top). My config here is pretty straightfoward – a single host group, with a single host entry of the old mediation server. Removed the old host entry, added a new one for 10.10.10.4, and expected everything to just work. It didn’t.

When calling in, the line would never ring, you’d see the call appear in the Dialogic Call Log, but after about 15sec it would fail giving the caller a ‘number not connected’ tone, and the Call Log would display “VoIP: Transport Failure”.

Spun up two sets of logging – first I started the Trace Logger on the Dialogic, and second started a set of Lync logs on the mediation server (S4, SIPStack, MediationServer) – then tried another inbound call. Logging on the mediation server showed zero entries, so clearly nothing was getting past the Dialogic. Looking at the trace logs on the Dialogic, I found the following:

[RouteTable] Code outbound device: VOIP (user@host:port) @10.10.10.4:0

So my incoming call was being routed to the mediation server IP ok, but no port was being passed, so logically I would expect the mediation server to reject it at the network layer, as it didn’t match a listening port.

So, on a hunch, I went back to the VoIP Host Groups setting, and changed the host value from 10.10.10.4 to 10.10.10.4:5066. Instant success. Just for consistency, checked another trace log, and sure enough it looks like this:

[RouteTable] Code outbound device: VOIP (user@host:port) @10.10.10.4:5066

What made this unexpected was that the old host value didn’t include the port, just the IP, but for some reason it worked fine.

Usefully, at this point I’d only migrated one of our two Dialogics/Mediation Servers, so ran the same trace log on the un-modified Dialogic (10.10.20.1). Sure enough, the same thing happens – no port is passed in that RouteTable call. Yet it works. Keen to see more, I ran a “netstat -an 1 | findstr 10.10.20.1” on the OCS mediation server to start an endless netstat search for open connections to the Dialogic (refreshing every second). As soon as the call comes in, a connection opens between the two devices on 10.10.20.1:5060 and the call connects. So somewhere in between that routing call to 10.10.20.1:0 becomes a call to 10.10.20.1:5060. I confess, I don’t know how this manages to happen.

Hopefully this helps someone else avoid the frustration this has caused me. And if anyone has any ideas how OCS manages this port wizardry where Lync fails, I’d love to hear your thoughts.

Posted in Dialogic, Unified Comms - Tagged Dialogic

External Response Group Call Routing with Lync Server

Jun02
2011
1 Comment Written by JB

Once you start playing with Response Groups in Lync (or OCS) it probably wont be long before you want one to dial out to your PBX. In my case recently it was to get a support line to call an on-call mobile.

Out of the box, Lync wont.

Any outbound call needs a voice route to determine its routing path and permissions – without one it simply cant go anywhere. In short when the RGS tries to dial out it will default to your global voice policy which (unless you’ve changed it – and you shouldn’t) wont route.

Your first task is to therefore create a voice policy that includes the number (or number pattern) you want to call and define a gateway device.

  • You can do this via the Lync Control Panel or Powershell.
  • Make sure the voice policy is of type ”User” otherwise you wont be able to apply it to your RGS object
  • Make sure you commit the new policy otherwise it wont be available for use (you’ll get a policy is not a user policy error).

Then you need to bind that policy to your RGS object. You definitely need Powershell for this bit.

Grant-CSVoicePolicy -identity “RGSWorkflowObject” -PolicyName VoicePolicyYouCreated

For identity, use the display name of your RGS Workflow object.

And you’re done. Your RGS can now dial out.

Last tip – make sure the number you’re trying to dial out to is entered fully normalised in the format +<countrycode><areacode><number>@<sipdomain>.

eg. [email protected]

Tagged Response Groups, Routing

Lync 2010 April 2011 Cumulative Updates Available

Apr13
2011
Leave a Comment Written by JB

Full Details

http://support.microsoft.com/kb/2496325

Continue reading “Lync 2010 April 2011 Cumulative Updates Available” »

KEEP IN TOUCH

 Facebook Twitter LinkedIn Federation RSS

RECENT COMMENTS

  • JB on SharePoint column lookup and calculation limitations
  • Jordan on SharePoint column lookup and calculation limitations
  • jiminynzl on Lync Hold Issue

TAGS

Best Practice Dialogic Edge Exchange Online Federation Hyper-V Lync Lync Online Migration OCS OCS 2007 Office 365 PDF Rant Response Groups Routing Security Service Pack SharePoint SharePoint 2010 SmarterMail Tips Traps For Young Players Upgrade Windows 8 Workarounds

CATEGORIES

  • Best Practice (1)
  • Cloud Services (3)
    • BPOS (1)
    • Exchange Online (1)
    • Office 365 (3)
    • SharePoint Online (1)
  • Mail Platforms (2)
    • Exchange (1)
    • SmarterMail (1)
  • SharePoint (5)
    • 2010 (4)
    • SharePoint 2007 (1)
  • Unified Comms (12)
    • Dialogic (1)
    • Lync (11)
    • OCS (3)
  • Virtualisation (1)
    • Hyper-V (1)

DISCLAIMER

All opinions are my own, and do not respresent the opinions of my current or any previous employer.

Credit is given where it is due, so I'd expect you to do the same.

EvoLve Pro theme by Theme4Press  •  Powered by WordPress JBs Just Sayin