Message Waiting Indication (MWI) explained: CUE and CME
Integrating Cisco Unity Express with Cisco Communications Manager Express gives an administrator granular control of Message Waiting Indication (MWI) capabilities on a per-subscriber basis. There are essentially 2 ways that MWI can be enabled between CME and CUE, and 3 configuration methods:
- SIP MWI (SUBSCRIBE/NOTIFY MWI)
- SIP MWI (Unsolicited); either
- explicitly configured under the sip-ua sub-configuration,
- or implicitly configured when MWI capabilities are assigned to ephone-dn's, using the legacy "outcall" method
In the SUBSCRIBE/NOTIFY method of MWI, a SIP UA (i.e. the IP phone) subscribes to the voice-mail server, thereby requesting notification of mailbox status. Unsolicited notification does not require IP phones to subscribe to the service.
Most implementations use the "standard" MWI configuration, i.e. using SIP outcall - 2 x ephone-dn's, one for MWI on and one for MWI off. Observe the following configuration example.
ephone-dn  128
  number 881....
  mwi on
!
ephone-dn  127
  number 882....
  mwi off
!
Assuming CUE has been configured and licensed for integration with CME, this works fine. Nothing special needs to be configured on either CUE or CME. Unsolicited SIP MWI can be configured explicitly. Observe the following configuration (which, from what I could tell, behaves the same as the above).
### CME ###
sip-ua
  mwi-server ipv4:192.168.255.98 expires 3600 port 5060 transport udp unsolicited
!
ephone-dn  128
  number 881....
  mwi on
!
ephone-dn  127
  number 882....
  mwi off
!
### CUE ###
ccn subsystem sip
  gateway address "192.168.255.99"
  mwi sip unsolicited
  end subsystem
MWI notifications are sent and received as expected - no surprises there! SUBSCRIBE/NOTIFY SIP MWI is a little more interesting - the administrator has far greater control over who receives and who does not receive MWI notification. There's also a bit more configuration required! The following configuration enables the SIP MWI SUBSCRIBE/NOTIFY method, however initially only subscribes ephone-dn 1 to MWI. ephone-dn 2 is not subscribed to receive MWI.
### CME ###
sip-ua
  mwi-server ipv4:192.168.255.98 expires 86400 port 5060 transport udp
!
ephone-dn 1
  mwi sip
  number 1000
!
ephone-dn  128
  number 881....
  mwi on
!
ephone-dn  127
  number 882....
  mwi off
!
### CUE ###
ccn subsystem sip
  gateway address "192.168.255.99"
  mwi sip sub-notify
  end subsystem
Voicemail messages are left for both Accounts (1000) and Sales (1001). Confirm via the CLI on CUE using the command show voicemail mailboxes that both users have mail.
se-192-168-255-98# show voicemail mailboxes
OWNERÂ Â Â Â Â Â Â MSGSÂ NEWÂ SAVEÂ DELÂ BCSTÂ FUTRÂ FAXÂ MSGTIMEÂ Â Â MBXSIZEÂ Â USED
"Sales"Â Â Â Â Â 1Â Â Â Â 1Â Â Â 0Â Â Â Â 0Â Â Â 0Â Â Â Â 0Â Â Â Â 0Â Â Â 7Â Â Â Â Â Â Â Â Â 10285Â Â Â Â 1 %
"Accounts"Â Â 1Â Â Â Â 1Â Â Â 0Â Â Â Â 0Â Â Â 0Â Â Â Â 0Â Â Â Â 0Â Â Â 7Â Â Â Â Â Â Â Â Â 10285Â Â Â Â 1 %
Now, setup the trace on CUE to gather SIP messages. Setting up the trace in CUE for MWI verification requires:
- Clearing the default trace levels: no trace all
- Setting up a trace for SIP messages: trace ccn stacksip all
- Clearing any resilient trace date: clear trace
MWI status updates can be interactively generated at any time using the command mwi refresh all. Here, we run that command and observe the trace. Notice the MWI message for DN 1000 - but no such message for 1001, even though we know both mailboxes have messages. This is expected since only DN 1000 has subscribed.
se-192-168-255-98# mwi refresh all
se-192-168-255-98# show trace buffer long
5256 01/04 17:34:15.047 ACCN SIPL 0 SubscriptionPointImpl():3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99:notifySend: mwi body=
Messages-Waiting: yes
Message-Account: sip:1000@192.168.255.98
Voice-Message: 1/0 (0/0)
Fax-Message: 0/0 (0/0)
5377 01/04 17:34:15.064 ACCN SIPL 0 SubscriptionPointImpl():3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99:enter::processFinalResponse() for notify:SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.255.98:5060;branch=z9hG4bKJfgDh9h2XwBEjrizdJK6dA~~14
To:
From:
Call-ID: 3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99
CSeq: 4 NOTIFY
Content-Length: 0
Date: Sun, 04 Jan 2009 06:34:15 GMT
On CME we setup debugs debug ccsip messages and debug ccsip media to log to buffer. This confirms and reaffirms the output above - messages are received for DN 1000. Observe the confirmation from CME upon receipt of the message, and absence of a similar message for 1001 (as per above).
Jan 4 06:34:15.071: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
NOTIFY sip:1000@192.168.255.99:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.255.98:5060;branch=z9hG4bKJfgDh9h2XwBEjrizdJK6dA~~14
Max-Forwards: 70
To:
From:
Call-ID: 3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99
CSeq: 4 NOTIFY
Content-Length: 115
Contact: sip:1000@192.168.255.98
Event: message-summary
Allow-Events: refer
Allow-Events: telephone-event
Allow-Events: message-summary
Subscription-State: active
Content-Type: application/simple-message-summary
Messages-Waiting: yes
Message-Account: sip:1000@192.168.255.98
Voice-Message: 1/0 (0/0)
Fax-Message: 0/0 (0/0)
Jan 4 06:34:15.075: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 200 OK
Date: Sun, 04 Jan 2009 06:34:15 GMT
From:
Content-Length: 0
To:
Call-ID: 3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99
Via: SIP/2.0/UDP 192.168.255.98:5060;branch=z9hG4bKJfgDh9h2XwBEjrizdJK6dA~~14
CSeq: 4 NOTIFY
The 2nd ephone DN is now subscribed to CUE to allow MWI SIP notification.
ephone-dn 2
  mwi sip
mwi refresh all is run again et voila both MWI lamps are lit. View the results (only the CUE trace is shown below - the CME trace was consistent as expected):
se-192-168-255-98# mwi refresh all
se-192-168-255-98# show trace buffer long
Press
5256 01/04 17:35:00.833 ACCN SIPL 0 SubscriptionPointImpl():9F02E916-D96011DD-805A8CB0-8A84A2C8@192.168.255.99:notifySend: mwi body=
Messages-Waiting: yes
Message-Account: sip:1001@192.168.255.98
Voice-Message: 1/0 (0/0)
Fax-Message: 0/0 (0/0)
5377 01/04 17:35:00.861 ACCN SIPL 0 SubscriptionPointImpl():9F02E916-D96011DD-805A8CB0-8A84A2C8@192.168.255.99:enter::processFinalResponse() for notify:SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.255.98:5060;branch=z9hG4bKJfgDh9h2XwBEjrizdJK6dA~~16
To:
From:
Call-ID: 9F02E916-D96011DD-805A8CB0-8A84A2C8@192.168.255.99
CSeq: 2 NOTIFY
Content-Length: 0
Date: Sun, 04 Jan 2009 06:35:00 GMT
5255 01/04 17:35:00.882 ACCN SIPL 0 SubscriptionPointImpl():3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99:notifySend: mwi body=
Messages-Waiting: yes
Message-Account: sip:1000@192.168.255.98
Voice-Message: 1/0 (0/0)
Fax-Message: 0/0 (0/0)
5377 01/04 17:35:00.900 ACCN SIPL 0 SubscriptionPointImpl():3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99:enter::processFinalResponse() for notify:SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.255.98:5060;branch=z9hG4bKJfgDh9h2XwBEjrizdJK6dA~~17
To:
From:
Call-ID: 3BB52A00-D96011DD-80498CB0-8A84A2C8@192.168.255.99
CSeq: 5 NOTIFY
Content-Length: 0
Date: Sun, 04 Jan 2009 06:35:00 GMT