MWI from Exchange 2010 SP1 UM to Lync 2010

I was planning to write a post on how Exchange 2010 SP1 UM is able to send Message Waiting Indicator (MWI) to Lync 2010, but then I discovered that this is already covered in great detail in the Exchange 2010 SP1 documentation.

What I will add to the description is a little more how it works on the Lync side. The UM server sends a SIP NOTIFY to the Lync Server, when a new voice message is received for a user. On the Lync side the user needs to be Enterprise Voice enabled. An excerpt of such a NOTIFY is shown below:

NOTIFY sip:tu64@contoso.com:5061 SIP/2.0

From: <sip:tu64@contoso.com:5061>;epid=EDDFA7F3EE;tag=f03dc3ff8

To: <sip:tu64@contoso.com:5061>

CONTACT: <sip:tu64@contoso.com:5061>

EVENT: message-summary

SUBSCRIPTION-STATE: terminated

USER-AGENT: RTCC/3.5.0.0 MSExchangeUM/14.01.0218.012

CONTENT-TYPE: application/simple-message-summary

Messages-Waiting: yes

Message-Account: sip:tu64@contoso.com:5061

Voice-Message: 8/3

The Lync Server will transform this into a BENOTIFY to the user containing the MWI category. An excerpt of such a BENOTIFY is shown below:

BENOTIFY sip:10.164.25.133:52667;transport=tls;ms-opaque=a98bb6354a;ms-received-cid=7C7300;grid SIP/2.0

To: <sip:tu64@contoso.com>;tag=fd7ce0df4d;epid=e0bc6cec3d

From: <sip:tu64@contoso.com>;tag=23480080

CSeq: 126 BENOTIFY

Require: eventlist

Content-Type: application/vnd-microsoft-roaming-self+xml

Event: vnd-microsoft-roaming-self

subscription-state: active;expires=6978

<roamingData xmlns="https://schemas.microsoft.com/2006/09/sip/roaming-self" xmlns:cat="https://schemas.microsoft.com/2006/09/sip/categories">

<categories xmlns="https://schemas.microsoft.com/2006/09/sip/categories" uri="sip:tu64@contoso.com">

<category name="mwi" instance="0" publishTime="2010-10-26T07:42:42.387" container="1" version="32" expireType="static">

<mwi xmlns="https://schemas.microsoft.com/2006/09/sip/mwi" messageWaiting="true" unreadVoiceMailCount="8" readVoiceMailCount="3"/>

</category></categories></roamingData>

Some time after reception of the BENOTIFY the client will connect to Exchange 2010 SP1 through EWS and fetch the details of the voice messages and display them. The MWI is used on Lync 2010 Phone Edition running on devices like Polycom CX600 and Astra 6725ip.