| The message 'The application is processing the end of call.' is heard by some callers |
| Categories: Audium Call Services 3.4.x and 3.5, Audium OpenSDK |
| Article ID: | 49 |
| Last updated: | April 25, 2007 |
| User Opinions |
|
No users have voted.
|
|
Thank you for rating this answer.
|
SUMMARY
This article describes the conditions under which this message will be played to callers, and how to avoid these conditions.
SYMPTOMS
In a system that calls Audium applications as subdialogs, a user visits application1, is returned to the parent system, and then visits application2. At this point, the user hears "The application is processing the end of call." and may be disconnected.
RESOLUTION
This problem generally only occurs when application1 utilizes an On End Call class that takes time to complete its processing.
What is happening is that during the visit to application1, Audium Call Services issues a cookie to the physical call. When application1 is done, the final VoiceXML page that tells the voice browser to clear the session is not sent until the On End Call class (if one is used) has completed its processing. This is to ensure that this class has access to the session to perform its tasks.
This may occassionally cause problems when Audium applications are called as subdialogs, because if application2 is visited before application1's On End Call class is complete, the same session is reused (remember, the cookie was issued for the physical call), and the caller is played this message. Additionally, the VoiceXML that includes this message is terminated with an <EXIT />element, which is inappropriate when the Audium application is called as a subdialog (i.e. it should be <RETURN />), so an error may be logged.
While there are many possible solutions to this problem, the three easiest approaches are as follows:
1) Instead of performing the processing in the On End Call class, spawn a thread from this class which performs the processing. Note that this is not appropriate in cases where the session needs to be accessed, since it will likely be cleared during the thread's execution.
2) Add a delay to the system that is calling Audium applications as subdialogs, so that it waits before allowing access to application2. This delay will give application1's On End Call class enough time to finish, and clear out the session. Different values for this delay should be tested, to find the smallest value that avoids this message from being heard.
3) Configure Audium Call Services to use URL encoding for session tracking instead of cookies. This will avoid the situation altogether, since the request to application2 will have a new session assigned to it (i.e. a cookie cannot be reused, because it does not exist):
- Go to the folder AUDIUM_HOME/CallServices/gateways/YOUR_GATEWAY_FOLDER
where YOUR_GATEWAY_FOLDER is the folder for the adapter you plan on using.
- Open up the plugin.xml found in this folder in a text or XML editor. Add the following line under all the existing <SETTING>tags in between the <PLUGIN>tags:
<SETTING name="cookie">no</SETTING>
- Restart the application server in order to pick up this change. Note that all applications that are using this gateway adapter will now run with URL encoding
|
| Visitor Comments |
|
No visitor comments posted. Post a comment
|
| Related Questions |
|
No related questions were found.
|
| Attachments |
|
No attachments were found.
|