Programatically access Unity server messages [unity 7x]

Unanswered Question
Jan 20th, 2010

Hi,

    Using Curl is it posible to access the inbox data from the unity server or using some Soap API's
or is there any direct access to the database of the unity server ?

I am using the version 7.1.2.20000 .

Please help me on this.

thanks/Chandar

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
Loading.
Ginger Dillon Wed, 01/20/2010 - 12:40

Hi -

When you say inbox, I think of voice messages. Voice messages are not stored in the Unity database.  The Unity database stores subscriber information and other voicemail configuration data for example user account alias, where the user's inbox resides (like Exchange mailbox server), phone extension, voicemail configuration settings etc.  For Unity system messages, event information is stored in the Application or System event log of the Windows server.  Unity trace information is also stored elsewhere.  There are ways to programmatically access the Unity database - here is a great link for additional information - http://www.ciscounitytools.com/CodeSamples.html.  Jeff Lindborg is also a moderator on this forum - if you reply back what type of information you are looking for, I'm sure he or another forum expert will be able to point you in the right direction :-)

Sincerely, Ginger

chandarvr Wed, 01/20/2010 - 23:18

Hi,

I am looking for accessing the configuration related data aswell as the voice mail data which are in Inbox.

thanks/Chandar.

lindborg Fri, 01/22/2010 - 13:51

For messages you'll need to go through an interface such as IMAP or MAPI to Exchange to get them - Unity does not store them in it's own database.  Many books and articles out there on how to gain access to message boxes using super user access for various Exchange versions (trickier in 2010).  You don't get these through the Unity database.

If you can be a bit more specific about what you want to pull from Unity's SQL database we might be able to help - it's basic ODBC type access for Unity - can be done off box or on and Ginger already pointed you at a few samples you can look at for the basics.  I'd suggest downloading the CUDLE database explorer (has a data dictionary built into it and can make looking at and finding the data you're looking for a bit easier).  You can find it on its home page here: http://www.ciscounitytools.com/Applications/Unity/CUDLE/CUDLE.html

Lots of tables and inner joins needed to find some of the deeper data so if you have some specific requirement for what you need, post it out here and we can help.

If you're looking for a web based interface (AJAX or the like), Unity does not support such an interface.  STraight up ODBC is as good as it gets.  Unity Connection 7.1(3) does support a web based interface for database access to most top level data just as a side note.

-Jeff

chandarvr Sun, 01/24/2010 - 23:43

Hi,

Basically i have a interface and database and i need to get the voice mail/messages for coresponding users[ODBC Database access also is fine] and  this

will be displayed in my interfaces,Already i have the interface for viewing the QOS from Cisco Call manager by parsing CDR/CRM files.

Same manner i need to get the voice mails so that i can display is here in my interface.

If Cisco Unity server is providing Soap Api's or direct access to the database [Super user access for fetching the data] then it will be fine for me.

If the voice mails are stored in a directory even access to that directory will be fine for me.I can parse it and display in my database.

thanks/Chandar

chandarvr Mon, 01/25/2010 - 05:39

I need to get the

1) A list of the voice mail boxes [count],Voice Mail box status, size

What will be the possible way for accessing this data programmatically ?

thanks/Chandar

lindborg Tue, 01/26/2010 - 07:43

You can easily get the number of subscribers (users with voice mail boxes stored in Exchange or Domino) out of the Unity database -

a couple of examples on the old samples page referenced above have that - connect to the UnityDirDB and get a count of users in the vw_Subscriber view that have a subscriber type of 1 or 3 (Exchange or Domino respectively).  Other subscriber types are remote users that don't have mailstores attached to Unity (i.e. SMTP/VPIM/Bridge/AMIS users).

To get at the mailstore, as noted, you have to go through whatever storage Unity is attached to (Exchange 55/2000/2003/Domino).  With Exchange the most common method is IMAP - Unity uses MAPI for access to additional properties not offered via IMAP but for your purposes either would work.  Exchange does have the concept of a super user account (an account with rights to the mailstore) - There are numerous articles and samples on the web talking about how to get information from Exchange mailstores - the vw_Subscriber view noted above includes the SMTP address and DirctoryID (GUID pointing to the user's AD record) - everything you need for mailbox identification.

Short version is you wont get things like message count (read/unread/deleted/total size etc...) from the Unity database in SQL - we don't keep that kind of information around.  All that's kept in SQL is that the user has at least one unread voice mail message or not (their MWI is on or off accordingly - a flag is kept for this in the DB) - but for more detailed mailbox info you'll have to go directly to the store.

-J

Actions

This Discussion