Howto:Announcement Before Answering (simplified)
This is a simplified version of the Howto:Announcement Before Answering utility. This version is based on an XML script that plays the announcement. As opposed to the other version, it will first play the announcement and then connect to the called party. The called party is not called simultaneously to playing the announcement. It is simpler in so far as it does not require to create a separate PBX object for each called party using this service.
Applies To
This information applies to
- V10 SR10 PBX and later.
More Information
Configuration
This announcement before answering configuration is based on the Voicemail PBX object. The Waiting Queue has a personal announcement configured separately for each PBX User object.
We assume an existing PBX user with the name PBX User 1
and number 201
with following desired behaviour: an external call to this user is always immediately connected to the announcement. The announcement is played and when it is finished, the caller is put through to the extension.
- Voicemail
- Create a Voicemail
vm-txt
. Configure the Script URL ashttp://x.x.x.x/drive/CF0/txtvormelden/announcement_before_answer.xml?$_trace=255
and the Number to9
(check Voicemail Reference for more information).
- Call Forward to Voicemail
- Create a so-called administrative call forward on the User object: create a CFU with Only Not. from
9
(which is the Number of the voicemail object) to the Number of the Voicemail object followed by the Number of the user (9202
in our example). This CFs can not be deleted by user configured CFs via a phone function key etc., but will be overridden by user configured CFUs (if there is one).
Finally you should have something like this:
Script
Please see the Download section for the most recent version of the voicemail script. The following commented version is reproduced here to demonstrate the idea, it may be outdated though.
<?xml version="1.0" encoding="utf-8" ?>
<voicemail xmlns="http://www.innovaphone.com/xsd/voicemail6.xsd" _ver="--VER--">
<function define="Main">
<assign out="digitsdone" value="false"/>
<event type="timer" name="guard">
<assign out="digitsdone" value="true"/>
<pbx-getcallinfo out-cgpn="$cgpn" out-cdpn="$cdpn" out-leg2="$leg2" />
<dbg string="### timer-expired: " string2="$cdpn"/>
</event>
<event type="call-info" block="false">
<dbg string="### call-info"/>
<timer name="guard" sec="0"/>
<timer name="guard" sec="4"/>
</event>
<timer name="guard" sec="4"/>
<while notcond="$digitsdone">
<wait sec="1"/>
<dbg string="### wait"/>
</while>
<dbg string="### final called-party: " string2="$cdpn"/>
<store-get root="" name="en_you_will_be_connected.g711a" out-url="$url"/>
<pbx-prompt url="$url" barge-in="false"/>
<pbx-xfer e164="$cdpn" out-cause="$cause" />
</function>
</voicemail>