With release of Lync 2013, Cummulative Update in February 2013, Microsoft enabled Lync 2013 deployments to serve mobile users. Release of mobile clients for Windows Phone 8, Apple iPhone/iPad and Android devices completes the solution as a whole.
Setting up mobility for a pure Lync 2013 environment (I am not going to cover Lync 2010 co-existence today), is relatively straight forward process. You can refer to “Deployment Process for Mobility” for more details.
Configuring push notification, however, turned out to be a bit of challenge for me. Not necessarily because the configuration is complicated, it probably was lack of clear understanding of the process flow.
It started with “504 server timeout” message in my IM window when I tried to send a message from my lync user on desktop to Lync user using Lync 2013 for Windows Phone 8.
Friendly snooper showed a “408 Request Timeout” along with diagnostics message [Reason=”The client did not respond to the invitation”;info=”No push subscription for target device”].
Using Lync Logging on Front-End server showed the following call flow:
I noticed that the call to push.lync.com was timing out. But since the call was going to Edge server (172.16.101.16), I assumed there was something wrong in Edge server configuration.
Logging on Edge server showed me few messages. One of the message looked like the following:
Exit – domain [push.lync.com] is unknown and DNS SRV results did not match anything
This error made it look like a DNS issue. However, I knew it wasn’t a DNS issue. I was able to resolve the name and ping it from Edge server. Then came the next message:
domain=”push.lync.com”;fqdn1=”sipfed.online.lync.com:5061″;reason=”The domain of the message is not configured and does not appear to belong to a federated partner”
That’s when I realized that even though I had LyncOnline hosted provider configured using sipfed.online.lync.com, I didn’t have push.lync.com in allowed list of SIP Federated Domains. Adding it was simple step. It is also documented here: Configuring for Push Notifications
Since we are talking a strict Lync 2013 deployment with Lync 2013 mobile clients only, I feel the need to mention that Push notification is not required for Apple devices anymore. It was required for Lync 2010 Mobile clients on Apple devices. However, Push notification is required for Lync 2013 clients on Windows Phone. The reason for this is apparent in Mobile Client Comparison Tables article on TechNet which states iPhone/iPad client stays signed in for upto 10 days and support for push notifications isn’t available. What it doesn’t say, which was covered in Lync Conference and is also documented on my good friend Doug Deitterick’s blog post Lync 2013 Mobility, is that it uses VOIP socket instead of push notifications. All this leaves only Windows Phone up for discussion.
Being a visual creature, I figured a picture would do more justice in explaining the call flow for Windows Phone push notifications (click on picture for larger view):
Here’s some explanation to help complete the picture:
- Lync 2013 on Windows Phone suscribes for push notifications
- Desktop client or federated client initiates communication to Windows Phone user
- Lync 2013 Front-End pool connects to Edge server configured for federation (defined in topology in site configuration)
- Lync 2013 Edge Server connects to push notification service push.lync.com using hosted provider sipfed.online.lync.com
- Push notification service delivers the notification to Lync 2013 mobile client on Windows Phone
I hope my long rambling provides some clarity and insight into Lync 2013 mobility’s push notification call flow for Widows Phone. Cheers.
Good article Bhargav. Just out of interest what did you use to generate the ladder diagram? Iv seen a few border controllers capable of this that makes deciphering call flow a lot easier. But iv not seen an equivalent for Lync.
Shawn, the ladder is generated by New snooper which is part of Lync 2013 debugging tools (separate download – http://www.microsoft.com/en-us/download/details.aspx?id=35453). Really cool feature. I wonder how we lived without it so long! 😉
[…] https://www.bhargavs.com/index.php/2013/03/28/configuring-lync-2013-mobility-for-push-notifications/ […]
Does it mean that Lync Server 2013 cannot be configured for apns push? We are planning to build a custom Lync client and rely on the apns notification to deliver messages when client is offline. Is that possible with Lync 2013?
I believe that is corret. Lync 2013 leverages Lync Push Notification Clearing House and Lync 2013 clients on Apple devices use direct socket connection. You can find more details here: http://blogs.technet.com/b/lync/archive/2013/05/02/lync-mobile-push-notifications.aspx. Hope it helps.
Sorry but it is still not clear to me. We are building custom iOS Lync client and want to use APNS notification where possible rather than solely relying on just voip socket? Is that possible by configuring APNS on Lync server 2013? Thanks in advance.
I don’t know answer to that unfortunately. I am not a developer and I would recommend you refer to MSDN or other developer sources which may provide details you are looking for. Good luck.
I have configured my lync environment according to everything you say. However my windows phone devices arent recieving any push notifications. Can suggest how I shall trouble shoot this?
I would look at web services publishing and make sure it is working as expected. Also check lyncdiscover is working as expected.