It would be useful for the item developers to be able to have access to some of the real-time logging information while they are calling into the system to test out a deployed callflow; specifically, it would be useful for them to see the ASR result and the semantic category for each utterance. Having this information would help them a) understand the system's behavior during a call, and b) troubleshoot issues in their callflows. Would it be possible to provide a simple interface to the real-time logs that provides this information for each response? Another solution would be to just give them access to the full logs, but that may overwhelm them with more information than they need...
Assigning this to Alex as he has already started developing logging extraction scripts. It would be useful to have some simple tool (e.g. PHP-based) which lists all calls processed on a given Halef instance. Then, per call, all synthesis and recognition events would be listed providing the following fields/functionality:
(per call)
* a unique call ID
* the extension called
* a link to the call's full call recording
* the ANI
* the DNIS
* the call duration
* the IP addresses/host name of the JVXML server
* the IP addresses/host name of the Cairo server
* the start URL
(per event)
* a time stamp
* system (TTS) prompts
* (alternatively) name and link to audio files played by the system
* link to the grammar (or the grammar itself)
* recognition hypothesis
* a link to the stored audio file that was subject to recognition
* (eventually) recognition confidence
* semantic interpretation
Thanks,
DSO
Last edit: Vikram Ramanarayanan 2014-12-05
The first version (which supports interactive analysis of the previously made calls) is up and running at http://it-tjr98.dhbw-stuttgart.de/call_list.php
Comments and feedback are always welcome.
I believe I have an idea on how to use essentially the same script for real-time call monitoring. Working on it.
Last edit: Alexei V. Ivanov 2014-12-13
This is great, Alex! Thanks so much. Two things:
Thanks again,
DSO
Would you please add the scripts to the repo?
Sure.
Vikram, please comment on the best place to attach the files to.
The CallBrowser file set includes:
/srv/http/call_list.php
/srv/http/extract_calls.perl
/srv/http/view_call.perl
/srv/http/view_call.php
There is also one directory:
/srv/http/wave
Done
Now when I look into call duration information.
Sometimes you can see something like that:
e.g. (in verbose mode) see http://it-tjr98.dhbw-stuttgart.de/view_call.php?source=/home/tjr/halef-halef-cairo/cairo-VM/scripts/nohup.out&callID=380aae5a9a28a20b8eeae7e5bba89334@141.31.8.196:1269541860:931710972&Bindex=514533&Eindex=515603
2014-12-10 22:51:14,706 380aae5a9a28a20b8eeae7e5bba89334@141.31.8.196:1269541860:931710972 Got a transaction terminated event
2014-12-10 23:20:43,798 ReceiveStreamEvent received: javax.media.rtp.event.TimeoutEvent[source = RTPManager
Call termination is apparently off.
Last edit: Alexei V. Ivanov 2014-12-14
Hi Alex,
Let's talk on Monday in person about the best way to commit these changes to the repo.
Regards,
Vikram
And one more:
\3. In the case that there is an audio file played rather than a TTS prompt, you are currently just printing the URL rather then providing a link. Would you please fix this. Example call:
http://it-tjr98.dhbw-stuttgart.de/view_call.php?source=/home/tjr/halef-halef-cairo/cairo-VM/scripts/nohup.out&callID=f4e5217d0712b816d442136994fe8e76@141.31.8.197:412170212:158466827&Bindex=486985&Eindex=488879
Last edit: David Suendermann-Oeft 2014-12-13
Done
\4. In the same call, what is the reason that there is no ASR hypotheses between the second and third system prompt?
It is difficult to say what was going on in that call. However, it is likely the problem with ASR server logging itself, as the raw log file contains evidence of only one ASR engagement. It has occurred after the first prompt.
We'll have a closer look at it.
Last edit: Alexei V. Ivanov 2014-12-14
Dear Alex,
Please look at
http://it-tjr98.dhbw-stuttgart.de/view_call.php?source=/home/tjr/halef-cairo/cairo-VM/scripts/nohup.out&callID=849cd25f6ea9c753f5b846bb63bbb799@141.31.8.196:1746978063:51581799&Bindex=29974&Eindex=31051
The audio file cannot be accessed (403)
http://it-tjr98.dhbw-stuttgart.de/wave/201412160214090975.wav
Yours,
DSO
I was able to replicate it up until the moment when I have cleaned the cached wave directory (the dir for storing links to actual audio data).
After the cleanup (without touching the script) the audio file became accessible.
EDIT: After some experimentation had found that the issue was due to a change in cairo path from ".../halef-halef-cairo/..." to ".../halef-cairo/....".
The problem is fixed.
Last edit: Alexei V. Ivanov 2014-12-17
Real-time call monitoring is operational.
Would it be possible to also add the NLU result to the information in the log? I know that the NLU result is deterministic based on the ASR output (given our current rule-based approach), but I still think it would be helpful to designers to have output in the log that indicates the semantic category from the JavaScript script that was assigned, and, potentially, the label of the transition that was taken based on the NLU result. Would it be possible to obtain this information while the call is being processed and add it to the log?
It is possible; we'd have to pull this information from the Apache Tomcat Catalina logs (as opposed to the speech server logs, which is what we're currently doing). Perhaps this is a better solution anyway for pulling logging information required for call-flow designers anyway?
Last edit: Vikram Ramanarayanan 2014-12-18
Currently the porting to another system is still very hacky (even though the main code is still under version control). So we will need to come up with a set of installation scripts (that take as input certain config files to input system-specific information) so that: (i) the necessary symbolic links to system directories (such as /srv/http/) are set up; (ii) the IP address of the machine is correctly linked to the application, etc.