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. If you'd prefer to explore, try our test area to get started. And see here for current known issues.

New Member

unity connection 9.1.1

Trying to collect data from a voice enabled system directory handler which is used to transfer callers to a specific DN if a match is found.  We have added contacts so as not to use licenses.  My question is how/where is this data kept in unity connection 9.1.1.  CUCM 9.1.2.  I have been reviewing tables and views in CUDLI but have not come across any information.  I have run a few test calls and used  Connection Remote Port Status Monitor and see the call traffic with call detail but that's not useful for our purpose.  We're trying to create a report(s) that will show information about how many calls were handled by the voice enabled system directory handler and to which DN the caller was transferred we need date, time stamps and call duration.  If this is not possible to do we're looking at Nuance SpeechAttendant.

 

Thanks,

  • Unified Communications Applications
1 ACCEPTED SOLUTION

Accepted Solutions
Cisco Employee

the vw_vuiactivity view in

the vw_vuiactivity view in the UnityRptDb database does pick up the name recognition events and results - the grammar in question will be the "VuiDirectoryNameExternalGrammar" - all name lookups us this regardless of the search space filtering set for the name lookup handler  (i.e. the filtering takes place against the results, not against a separate grammar).

The time stamp is in here and you can determine all the activity on a single call (i.e. multiple attempts at searches) using the call guid - an event of "1" means a match and the corresponding "VuiAddressingResolutionGrammar" event 1 and an input of "yes" means the user accepted the name presented as a match (or one of them if it was a list).

This is a global table for all Nuance asr events- so if you have numerous name lookup handlers it's not going to be able to easily filter out which handler was in effect when a particular name recognition event was executed.

resulting matches are names only (i.e. it doesn't give you a unique alias or GUID for the uttered name, just the speech engine's matching name and if the caller accepted it).

Not ideal but it might be enough to give you want you want to know...

to get the total time of call you'd have to take the callGuid value there and trace it through the callactivity table to find when the call came in and when it terminated - given they could be doing a number of things on the call (before and after the name lookup handler interaction) I'm not sure what this information would tell you, though.

19 REPLIES
Cisco Employee

the vw_vuiactivity view in

the vw_vuiactivity view in the UnityRptDb database does pick up the name recognition events and results - the grammar in question will be the "VuiDirectoryNameExternalGrammar" - all name lookups us this regardless of the search space filtering set for the name lookup handler  (i.e. the filtering takes place against the results, not against a separate grammar).

The time stamp is in here and you can determine all the activity on a single call (i.e. multiple attempts at searches) using the call guid - an event of "1" means a match and the corresponding "VuiAddressingResolutionGrammar" event 1 and an input of "yes" means the user accepted the name presented as a match (or one of them if it was a list).

This is a global table for all Nuance asr events- so if you have numerous name lookup handlers it's not going to be able to easily filter out which handler was in effect when a particular name recognition event was executed.

resulting matches are names only (i.e. it doesn't give you a unique alias or GUID for the uttered name, just the speech engine's matching name and if the caller accepted it).

Not ideal but it might be enough to give you want you want to know...

to get the total time of call you'd have to take the callGuid value there and trace it through the callactivity table to find when the call came in and when it terminated - given they could be doing a number of things on the call (before and after the name lookup handler interaction) I'm not sure what this information would tell you, though.

New Member

I'm noticing that the time

I'm noticing that the time stamps are 4 hours off from the actual time of my test calls.  I have a test call I made on 6-3-2014 @ 8:33am and CUDLI shows 12:33:18pm.  I've checked the timezone on the server it shows Eastern Daylight Time (America/New_York).  Perhaps something is set to GMT.  I do have a TAC case open on this as I'm unable to reconcile these dates and times with the server.  We are using NTP but I've been informed that NTP doesn't "deal" with timezones it just supplies a date and time.

Cisco Employee

Just noticed this here - this

Just noticed this here - this thread is getting a little out of control with all its branches and multiple questions tucked into one thread - hard to keep up with.

Short version: Almost all data systems use UDT/GMT for date time storage - always assume local data has no bearing on what's stored in the database other than some special cases.  This is typical for messaging systems and data storage systems alike - when generating a report (or showing messages etc...) you need to provide that information in the timezone that the client viewing it is using in most cases - if the date/time in the database is stored in a local timezone somewhere it will have to figure that out first (usually by a redundant DB fetch to see what local time the box is in) and then convert it to the local timezone of the client - as a rule it's better style and more efficient to always assume GMT/UDT and convert on the fly based on the client's offset.

New Member

I'm very impressed with CUDLI

I'm very impressed with CUDLI!!!!  As I'm more of a jack of all trades and master of none I use SAP Crystal Reports to do my database reports and accessing of DBs.  Are the database available via Data Explorer?

 

Thanks,

Cisco Employee

sure - if you have the ODBC

sure - if you have the ODBC proxy and the Informix SDK installed (which you do if you're running CUDLI) then you'll just need to get the ODBC connection string in place for the Crystal Reports connector - been a few years but I'm certain they support standard ODBC connections.  CUDLI uses the .NET ADO driver (32 bit vs. the 16 bit native ODBC driver) and it's a bit faster and more modern but either will work fine.

If you need help getting your ODBC connection string worked out (depending on what CR supports these days) let me know - I can dig up an example for you.

New Member

Thanks again for the

Thanks again for the information.  I've tried several way to gain access to the database via the ODBC Data Source Administrator, all unsuccessful, and have no idea which tab to use.  Usually I use SQL for my databases which I use successfully but this is a different animal to me.  I would be grateful if you would supply me with an example.

Cisco Employee

sure - connecting to a server

sure - connecting to a server "192.168.0.188" using my Connection account with remote admin rights "MyDbAccount" with a password of "MyPassword" would look like this for a plain ODBC connection:

 

Driver=IBM INFORMIX ODBC DRIVER;Host=192.168.0.188;Server=ciscounity;Service=20532;Protocol=onsoctcp;Database=UnityDirDb;UID=MyDbAccount;PWD=MyPassword;DB_LOCALE=en_us.utf8;CLIENT_LOCALE=en_us.utf8

 

The tricky bit folks trip up on most is the "service" - that's the port on the Connection server the ODBC proxy service is listening on.

The UnityDirDb for the database is the main directory database - you can do cross database queries using "UnityRptDb::vw_..." in your query or attach directly to the report DB in the connection string.

It's been a long time since I've looked at 3rd party report generation engines but anything that can connect to remote databases must support simple 16 bit ODBC connections (many 32 bit drivers for other forms are simply wrappers around ODBC - including IBMs for some years) - so that should work.  I've never seen a system you can't enter a manual connection string but some hide them behind "builders" intended to make it easier - but somewhere there should be a way you can construct the above string.

New Member

I must say I'm very impressed

I must say I'm very impressed with the plethora of tolls and information available at the "tools" location.  I'm surprised that it seem to get little play from Cisco, at least I have not seen much in my interactions with TAC.  So far it has been invaluable to me.  Thanks so much for your prompt and knowledgeable reply's.

New Member

Sorry to be such a bother but

Sorry to be such a bother but I've set up a User DSN per the information you supplied and am receiving  and error message that states Informix ODBC Driver INFORMIXSERVER does not match either DBSERVERNAME or DBSERVERALIASES.  Could this be because on server has hyphens in its name?

 

Thanks,

504
Views
0
Helpful
19
Replies
This widget could not be displayed.