Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Announcements

Welcome to Cisco Support Community. We would love to have your feedback.

For an introduction to the new site, click here. And see here for current known issues.

New Member

How to determine diffrence in Unity Voice Message as opposed to a WAV file

If you call into a subscriber’s voice mail box and leave a message, Unity recognizes this as a voice mail and knows to turn on MWI, etc. I have been asked the question on how does unity differentiate between a Unity voice message that is in a WAV format versus a regular WAV file.

I understand that there are some RAW attributes that are associated to the subscriber’s mailbox when they become a Unity subscriber. Is that what controls the relationship between a Unity WAV file and MWI.

I think I am making sense.....

7 REPLIES
Cisco Employee

Re: How to determine diffrence in Unity Voice Message as opposed

MAPI exposes properties on messages that can be set and retrieved by MAPI clients. The way that Unity knows a voice mail message is a voice mail message is be setting and reading the MAPI property called PR_MESSAGE_CLASS (the Unity property is called AVP_MESSAGE_CLASS).

For Unity messages, this property is set to "Ipm.Note.Voice.Unity". For regular emails, you'd expect to see "Ipm.Note".

As far as the Raw directory attributes goes, those are used to determine Unity subscriber's vs non-Unity subscribers (which doesn't have anything to do with Unity messages vs Non-Unity messages).

New Member

Re: How to determine diffrence in Unity Voice Message as opposed

Ok.... Another Question....

What we are trying to accomplish is to generate a WAV file via CRS. What would then happen is that the user would forward this WAV file to a Unity Mailbox within Exchange.

What we are seeing is that when you send just a WAV file to a unity mailbox it does not light the lamp. However, if you record a WAV file via unity it does. Is there a way to set specific parameters at the Unity mailbox level to recognize any WAV file at light MWI?

Thanks.

Cisco Employee

Re: How to determine diffrence in Unity Voice Message as opposed

You'll _have_ to dance with MAPI to make this work... you'll need to set the message class and media flags in MAPI before Unity will consider the message a voice mail.

New Member

Re: How to determine diffrence in Unity Voice Message as opposed

can you elaborate a little more.

I was thinking there would be a MAPI parameter within the RAW attributes that would allow this. I just don't know where that would be.

Little Help Here.... Throw me a bone.....

Cisco Employee

Re: How to determine diffrence in Unity Voice Message as opposed

You would have to set that MAPI property (PR_MESSAGE_CLASS) on the message to "IPM.Note.Voice.Unity". That is the only way Unity sees a message as a Unity message -- that's it, no other way. The MAPI property is on a message. When you are talking about "MAPI parameter within the RAW attributes" what are you talking about? What are you looking at, and how are you looking at it?

Cisco Employee

Re: How to determine diffrence in Unity Voice Message as opposed

Unfortunately you’re not just going to be able to twiddle with some raw properties and drive home. Sorry, but this is a non trivial operation I’m afraid – you will have to pony up and learn about the MAPI interface. The MAPI extensions are not simply tucked into the email raw properties in a way you can go edit/dig them out. Here’s the Messaging API’s programmer’s reference on MSDN:

http://msdn.microsoft.com/library/?url=/library/en-us/mapi/html/_mapi1book_legal_information_2.asp?frame=true

Here’s an actual chunk of sample code where they create a message, set some properties on it (including message class) and send it off:

http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B200174

The property ID for the media flag Unity is looking at on a message that determines if it’s a voice mail or not has a property ID of 0x7209 and a value of 2 means it’s a voice mail message.

There is a scripting interface for MAPI called Collaboration Data Objects that could make some of this a bit easier for you. Here’s an overview on CDO:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdo/html/_olemsg_overview_of_cdo.asp?frame=true

You should be able to get at/set all MAPI properties.

Now, all that said… to check if a message is a voice mail is pretty easy – you just need to check the media flag noted above – however _setting_ a message to be usable by Unity involves twiddling with 15 or 20 properties in some cases and gets pretty complex. For instance the Unity conversation is expecting the sender to be another unity subscriber or the Unity Messaging System mail account – and if it’s not, it’ll get real unhappy when it goes to read that message. In short, this is actually much, much more complicated and involved than I think you’re imagining it is.

If I get some free time I may write up a sample application in VB using CDO that shows how to go about this type of thing but it’ll take me several days to put it together and test it out and I don’t have cycles for that just at the moment. I’ll stick it on my “to do” list and come back to it when I can.

Cisco Employee

Re: How to determine diffrence in Unity Voice Message as opposed

Jeff's correct, it's a complicated process. There's multiple components in Unity that all work together to decide if a message is a Unity message. Earlier I had said that it's determined by the PR_MESSAGE_CLASS. Well, that's not entirely true. There's two other custom MAPI attributes that Unity uses to actually construct that value inside the PR_MESSAGE_CLASS.

There's the way that the Unity ExchangeMonitor reads message properties to determine the count of new Unity voice mail messages, and there's the way the conversation uses the Unity component, the Mal, to determine new Unity messages. Ick, it's complicated.

132
Views
0
Helpful
7
Replies