Classification of human vs. answering machine for outbound call is done by Experience Portal. The classification is based on the length of the voice energy that is detected after the call is answered. You require the Enhanced Call Classification license on the Experience Portal system to differentiate human vs. answering machine. The classification is done only if the application sends a classification request to Experience Portal.
Note:
In the VoiceXML <TRANSFER> outcall method, the human vs. answering machine classification is never done.
Detection of answer, busy, RNA, and so on classification is done by Communication Manager and not by Experience Portal. Communication Manager needs the SA8874 feature to detect this classification. The detection is done on all outcalls except for blind transfers.
The application designer needs to enable call classification for outbound calls. If the call is going to be invoked by the Application Interface web service LaunchVXML method, you can specify the call classification parameters when you invoke the web service, as described in Call classification with the LaunchVXML method.
Otherwise, the application designer has to set enable_call_classification=true in the hints attribute of the <createcall> tag.
When call classification is enabled, a call will receive one or more connection.signal events containing the event$.info.callprogress field. This field will have one of the values described in Call classification for outbound calls.
Note:
Remember that the page may receive connection.signal events that do not contain the callprogress field. It is up to the page to determine if thecallprogress field exists and to take the appropriate course of action based on the value of this field.
The default timeout for outbound call classification is 20 seconds (or 20000 milliseconds). The default value can be overridden for outbound calls by setting the call_classification_timeout parameter in the hints attribute on the <createcall> tag to the desired number of milliseconds before call classification analysis should time out.
The following example shows a simple connection.signal handler page that first determines whether this is a connection.signal event bearing classification data. If it is, the handler assesses the data to determine what action to take. If the classification is live_voice, then it returns a status of success and the page continues to run. Otherwise, a it returns the failure status no answer.
<transition event="connection.signal">
<if cond="typeof(event$.info) != 'undefined'">
<if cond="typeof(event$.info.callprogress) != 'undefined'">
<var name="call_classification" expr="event$.info.callprogress"/>
<var name="status"/>
<if cond="call_classification == 'live_voice'">
<assign name="status" expr="'success'"/>
<send name="'avaya.launchresponse'" targettype="'avaya_platform'"
target="session.id" namelist="status"/>
<else/>
<assign name="status" expr="'no answer'"/>
<send name="'avaya.launchresponse'" targettype="'avaya_platform'"
target="session.id" namelist="status"/>
</if>
</if>
</if>
</transition>