A Look at SIP-Based Voice Mail Part Two

Last week in my article A Look at How Avaya Aura Supports SIP-Based Voice Mail, I walked you through how a ringing call is redirected to a voice mail server. You saw the incoming INVITE, the 181 Call is Being Forwarded, and the subsequent INVITE to Modular Messaging.

That’s all good stuff, but I left out a very important part. How is the called party made aware that a message was left? In other words, what lights up that little red Message Waiting Indicator (MWI) lamp on the telephone? Today, I plan on answering that question.

Note. The SIP messages and associated text in this article are based on Avaya Aura, but the concepts are the same for all SIP communications servers and voice mail implementations.


There are a number of articles that will make this one easier to understand:

A Necessary Guide to the Avaya traceSM Utility

Thank You for Calling – Voice Mail and SIP


Several months ago, I wrote a detailed article that described all that an Avaya SIP telephone goes through when it boots up (The Steps Involved in Booting an Avaya SIP Telephone). If you read the article, you will recall that the telephone sends out a slew of SUBSCRIBE messages. The one that we are interested in today looks like this:

vm3

There are two things worth noting.

  • The To and the From headers contain the same address. This indicates that the SIP user is subscribing to his or her own MWI. Since this is my telephone booting, they both contain sips:4563516@arrows3.com.
  • The Event header contains Message-summary. Message-summary indicates that this is a subscription for the user’s MWI.

After sending the SUBSCRIBE, the telephone receives a 202 Accepted. Honestly, I expected to see a 200 Ok, but this response works just as well. Curiously, 202 is sent to the user by the Avaya Session Manager yet Session Manager receives a 200 from Communication Manager.

vm4

Next, the telephone is informed of the current state of the MWI. In this case, I have at least one new voice mail.

Notification, of course, comes in the form of a NOTIFY message.

vm5

I find the following of interest:

  • The User-Agent is Modular Messaging. This is what my company uses for voice mail.
  • The Event is message-summary.
  • The Call-ID is the same value used in the SUBSCRIBE. Along with Event, this allows the telephone to match NOTIFY messages to a SUBSCRIBE.
  • Inside the Message Body, Message-Waiting is set to “yes.” This tells the telephone to turn on its MWI.

In this case, the NOTIFY message basically “primes the pump.” It allows the recipient to know the current state of the subscription. Similar NOTIFY messages will be received for future voice mails. Since this one does nothing more than turn on the MWI, it doesn’t matter how many are received once the lamp is lit. On is on.

So, what message is generated when a new voice mail message is left? PUBLISH, of course.

vm6

Note the following:

  • This is not the same Call-ID as the SUBSCRIPTION.  Call-ID matching will happen in Session Manager when it sends out the subsequent NOTIFY to the SIP telephone.
  • The Event is message-summary. This matches the subscription.
  • The User-Agent is Communication Manager.  In Aura, CM acts as the broker between Modular Messaging and Session Manager.
  • The To and the From headers contain the same address.   This indicates that the PUBLISH state change is for my phone.
  • Content-Type is multipart/mixed. Honestly, I don’t know why the message body has to be so complicated. If it were me, I would have done some sort of XML encoding, but clearly, I had no say in the matter.

This PUBLISH will cause Session Manager to generate the following NOTIFY. It looks just like the prime-the-pump NOTIFY.

vm7

NOTIFY is also used to turn the MWI off. The following is an example that demonstrates what happens when all voice mail messages have been read.

vm8

I find the following of interest:

  • The User-Agent is Modular Messaging.
  • The Event is message-summary.
  • The Call-ID is the same value used in the SUBSCRIBE and previous NOTIFY messages.
  • Inside the Message Body, Message-Waiting is set to “no.” This tells the telephone to turn off its MWI.

Mischief Managed

I find it ironic that I’ve been spending so much time on a product I don’t particularly like, but voice mail is still important to most companies and it’s important that folks understand how it works. Who knows, you might be the one who has to crank up traceSM (or a similar SIP capture tool) to chase down a problem. If so, I hope my little missives come in handy.

 

Advertisements

2 comments

  1. The MWI are not working. Voice messages are stored in the voice box and can be played back but there is never a message alert. I am using CM 7 and CMM 7.

    1. Make sure that that extension is configured for voicemail in System Manager.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: