We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

issues with leaving a voicemail

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

issues with leaving a voicemail

Post by magicsoft »

I have a similar problem that some have reported with trying to leave a voicemail. I decreased the "finalsilence" to 2000ms, but this has not solved the problem. Incidentally, the call log shows that the call was exactly one second shorter in duration, so I know the change took effect. The call log shows that everything occurred correctly, and there is a 30-second window between the start of the voicemail (in the log) and the disconnect event (in the log). So clearly the PLUM system thinks it is leaving the message. Also, if I actually pick up the phone, but don't respond to the "challenge prompt", my script assumes a machine has picked up, and I can hear it waiting and then playing the voicemail prompt. Several of my testers reported getting a blank voicemail, although one did report that it worked correctly.

Below is the VXML I'm using, which you should be able to run by removing the "subdialog" tags, and the "root" tag. The idea is that if a person picks up, he'll press 1, and the call will be transferred to another script. If not, I know it's a machine, and I wait for silence and then leave a message.

Code: Select all

<?xml version="1.0"?>
<vxml version="2.0" application="call_root.vxml">

	<form id="patienttest">
		<field name="answer">
			<property name="inputmodes" value="dtmf"/> 
			<grammar type="application/x-jsgf" mode="dtmf">
				( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 )+
			</grammar>
			<prompt>
				This is Continuing Care calling with an important message.  Please press one.
			</prompt>
			<filled>
				<goto next="#person"/>
			</filled>
			<noinput>
				<goto next="#machine"/>
			</noinput>
		</field>
	</form>

	<form id="person">
		<block>
			<assign name="varQuestion" expr="'PersonAnswered'"/>
			<assign name="varAnswer" expr="1"/>
		</block>
		<subdialog name="enterdata" namelist="varQuestion varAnswer varCallID" src="enterdata.ashx"/>
		<block>
			<goto next="call_compliance_intro.vxml"/>
		</block>
	</form>

	<form id="machine">
		<block>
			<assign name="varQuestion" expr="'PersonAnswered'"/>
			<assign name="varAnswer" expr="0"/>
		</block>
		<subdialog name="enterdata" namelist="varQuestion varAnswer varCallID" src="enterdata.ashx"/>
		<record finalsilence="2000ms"/>
		<block>
			<prompt bargein="false">
				Hello, this is Continuing Care. I&apos;m calling to check on the sleep therapy patient at this address.
				Please call our patient management service at <say-as type="acronym"> 1 617 712 3999 </say-as> extension <say-as type="acronym"> 1634 </say-as>
				when you have a minute so we can track how you are doing.
				The call should only take two minutes of your time and is designed to help us better care for you.
				The number again is <say-as type="acronym"> 1 617 712 3999 </say-as> extension <say-as type="acronym"> 1634 </say-as> and you can call anytime day or night.  
				Thanks, and have a great day.			
			</prompt>
			<disconnect/>
		</block>
	</form>

</vxml>

magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

Re: issues with leaving a voicemail

Post by magicsoft »

For the record, I still have the same problem even if I remove the "finalsilence" completely.

magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

Re: issues with leaving a voicemail

Post by magicsoft »

Here's the log for my magicjack phone. It appears it might not be playing the voicemail message on this one for some reason. But the log for when I called my cell phone definitely showed the prompt being played.
Tue 12 Oct 2010 10:41:44 AM EDT:
Call Start Event: ANII 18563965043 DNIS outbound VURL http://us.popproxy.plumgroup.com/plumvp/startpage.php
DocumentParser::FetchDocument()
DocumentParser::FetchDocument(http://us.popproxy.plumgroup.com/plumvp/startpage.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp/startpage.php
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp/startpage.php
Click here to view saved VoiceXML script
VXI::var_element(name="sessionID" expr = "session.id")
DocumentParser::FetchDocument(startpage.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp ... 1286894425
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp ... 1286894425
Click here to view saved VoiceXML script
VXI::var_element(name="callee_type" expr = "'answeringmachine'")
VXI::var_element(name="phone_number" expr = "'18563965043'")
VXI::var_element(name="call_id" expr = "'2434186'")
VXI::var_element(name="message_reference" expr = "'10'")
VXI::var_element(name="call_parameters" expr = "''")
VXI::var_element(name="campaign_parameters" expr = "''")
DocumentParser::FetchDocument(http://login.sleepcarecenter.com/autoca ... tcall.ashx)
Posted form data is URL encoded
Attempting to fetch http://login.sleepcarecenter.com/autoca ... tcall.ashx
Click here to view saved VoiceXML script
DocumentParser::FetchDocument(call_root.vxml)
Cache Miss: http://login.sleepcarecenter.com/autoca ... _root.vxml
Attempting to fetch http://login.sleepcarecenter.com/autoca ... _root.vxml
Click here to view saved VoiceXML script
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 )+
</grammar>
---------
VXI::var_element(name="varDOB" expr = "")
VXI::var_element(name="varIncomingNumber" expr = "")
VXI::var_element(name="varOutgoingNumber" expr = "")
VXI::var_element(name="varResponseType" expr = "")
VXI::var_element(name="varQuestion" expr = "")
VXI::var_element(name="varReturnAnswer" expr = "")
VXI::var_element(name="varReturnQuestion" expr = "")
VXI::var_element(name="varOrderSomething" expr = "")
VXI::var_element(name="varCallID" expr = "")
VXI::assign_element(name="varCallID" expr = "10")
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male">
This is Continuing Care calling with an important message. Please press one.
</voice></speak>
---------
VXI::field_element - activating grammars for form = 'patienttest' formitem = 'answer'
VXI::do_recognition()
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf"
Newly queued prompts are now being played

Tue 12 Oct 2010 10:41:54 AM EDT:
received event: noinput:
VXI::assign_element(name="varQuestion" expr = "'PersonAnswered'")
VXI::assign_element(name="varAnswer" expr = "0")
VXI::queue_prompts()
DocumentParser::FetchDocument(enterdata.ashx)
Cache Miss: http://login.sleepcarecenter.com/autoca ... onAnswered
Attempting to fetch http://login.sleepcarecenter.com/autoca ... onAnswered
Click here to view saved VoiceXML script
VXI::var_element(name="varReturnQuestion" expr = "'PersonAnswered'")
VXI::var_element(name="varReturnAnswer" expr = "'0'")
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_297186'
PromptManager::Play()

Tue 12 Oct 2010 10:41:59 AM EDT:
received event: noinput:
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_297186'
PromptManager::Play()

Tue 12 Oct 2010 10:42:05 AM EDT:
received event: connection.disconnect.hangup:
VXI::exit_element()
Call End Event
Ending session
Ending Session On Channel 5

magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

Re: issues with leaving a voicemail

Post by magicsoft »

Here's the log for when I call my cell phone. Note that here it shows that it did play the voicemail prompt, and that the disconnect didn't happen until 30 seconds after the prompt, so it's not as though it's just hanging up prematurely.
Tue 12 Oct 2010 10:57:23 AM EDT:
Call Start Event: ANII 13522741199 DNIS outbound VURL http://us.popproxy.plumgroup.com/plumvp/startpage.php
DocumentParser::FetchDocument()
DocumentParser::FetchDocument(http://us.popproxy.plumgroup.com/plumvp/startpage.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp/startpage.php
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp/startpage.php
Click here to view saved VoiceXML script
VXI::var_element(name="sessionID" expr = "session.id")
DocumentParser::FetchDocument(startpage.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp ... 1286894331
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp ... 1286894331
Click here to view saved VoiceXML script
VXI::var_element(name="callee_type" expr = "'voice'")
VXI::var_element(name="phone_number" expr = "'13522741199'")
VXI::var_element(name="call_id" expr = "'2434228'")
VXI::var_element(name="message_reference" expr = "'10'")
VXI::var_element(name="call_parameters" expr = "''")
VXI::var_element(name="campaign_parameters" expr = "''")
DocumentParser::FetchDocument(http://login.sleepcarecenter.com/autoca ... tcall.ashx)
Posted form data is URL encoded
Attempting to fetch http://login.sleepcarecenter.com/autoca ... tcall.ashx
Click here to view saved VoiceXML script
DocumentParser::FetchDocument(call_root.vxml)
Cache Miss: http://login.sleepcarecenter.com/autoca ... _root.vxml
Attempting to fetch http://login.sleepcarecenter.com/autoca ... _root.vxml
Click here to view saved VoiceXML script
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 )+
</grammar>
---------
VXI::var_element(name="varDOB" expr = "")
VXI::var_element(name="varIncomingNumber" expr = "")
VXI::var_element(name="varOutgoingNumber" expr = "")
VXI::var_element(name="varResponseType" expr = "")
VXI::var_element(name="varQuestion" expr = "")
VXI::var_element(name="varReturnAnswer" expr = "")
VXI::var_element(name="varReturnQuestion" expr = "")
VXI::var_element(name="varOrderSomething" expr = "")
VXI::var_element(name="varCallID" expr = "")
VXI::assign_element(name="varCallID" expr = "10")
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male">
This is Continuing Care calling with an important message. Please press one.
</voice></speak>
---------
VXI::field_element - activating grammars for form = 'patienttest' formitem = 'answer'
VXI::do_recognition()
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf"
Newly queued prompts are now being played

Tue 12 Oct 2010 10:57:33 AM EDT:
received event: noinput:
VXI::assign_element(name="varQuestion" expr = "'PersonAnswered'")
VXI::assign_element(name="varAnswer" expr = "0")
VXI::queue_prompts()
DocumentParser::FetchDocument(enterdata.ashx)
Cache Miss: http://login.sleepcarecenter.com/autoca ... onAnswered
Attempting to fetch http://login.sleepcarecenter.com/autoca ... onAnswered

Tue 12 Oct 2010 10:57:34 AM EDT:
Click here to view saved VoiceXML script
VXI::var_element(name="varReturnQuestion" expr = "'PersonAnswered'")
VXI::var_element(name="varReturnAnswer" expr = "'0'")
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_300167'
PromptManager::Play()

Tue 12 Oct 2010 10:57:41 AM EDT:
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male">
Hello, this is Continuing Care. I'm calling to check on the sleep therapy patient at this address.
Please call our patient management service at <say-as type="acronym"> 1 617 712 3999 </say-as> extension <say-as type="acronym"> 1634 </say-as>
when you have a minute so we can track how you are doing.
The call should only take two minutes of your time and is designed to help us better care for you.
The number again is <say-as type="acronym"> 1 617 712 3999 </say-as> extension <say-as type="acronym"> 1634 </say-as> and you can call anytime day or night.
Thanks, and have a great day.
</voice></speak>
---------

Tue 12 Oct 2010 10:57:42 AM EDT:
starting playback: bargein=false, inputmodes="dtmf speech"
Newly queued prompts are now being played
VXI::disconnect_element()

Tue 12 Oct 2010 10:58:14 AM EDT:
Disconnect
Disconnecting On Channel 12

Tue 12 Oct 2010 10:58:15 AM EDT:
received event: connection.disconnect.hangup:
VXI::exit_element()
Call End Event
Ending session
Ending Session On Channel 12

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

Re: issues with leaving a voicemail

Post by support »

Hi,

About your voicemail issue, here is possibly what is happening for your outbound calls:

1) An outbound call is made to someone's cell phone.
2) When the cell phone doesn't pick up and goes to voicemail, the IVR immediately begins to play "This is Continuing Care calling with an important message. Please press one." while someone's voicemail is being said, "Hi. This is ______. I'm not here right now, but please leave a message and I'll get back to you."
3) While the IVR is waiting for the noinput, the voicemail is taking in silence.
4) The voicemail saves a "blank message", while the IVR proceeds to then state the message: "Hello, this is Continuing Care. I'm calling to check on the sleep therapy patient...."

To resolve this issue, you have to play the message that you want to play (regardless of whether it's a machine or a human) and repeat it multiple times to give the voicemail a chance to pick up the message. Or, you can use callee type detection and implement the <record> tag to compensate for the voicemail message that is played before it goes to voicemail.

Hope this helps.

Regards,
Plum Support

magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

Re: issues with leaving a voicemail

Post by magicsoft »

At first, I was confused by your response, but I think I understood it enough that it led me to try something, which has shed some light on the situation, and is probably what you were referring to.

I found that if I increased my original prompt so that it was still playing when my voicemail started to record, then my voicemail would actually record something. So it would seem that because my first prompt ended before my own voice greeting did, my phone's voicemail started to record the silence (which was the time it was waiting for a response), and then interpreted this silence as having lost the connection, thereby disconnecting the call.

I'm guessing that it worked on my one coworkers phone because he has a rather long voice greeting. Therefore, my script actually began to record his greeting, waited until it was done (the finalsilence tag), then began playing the other prompt.

I have 2 problems at this point. First, if the voice greeting on the receiving phone is shorter than my first prompt, the voicemail that gets left includes the end of that prompt, which is not really part of what I want to leave on their voicemail. Second, when my prompt ends and there is no response, instead of it starting the second prompt (the actual message I want to leave), it acts as though it's waiting for a response again, and plays the built-in "Sorry, I didn't understand you".

Log follows:
Tue 12 Oct 2010 02:54:46 PM EDT:
Call Start Event: ANII 13522741199 DNIS outbound VURL http://us.popproxy.plumgroup.com/plumvp/startpage.php
DocumentParser::FetchDocument()
DocumentParser::FetchDocument(http://us.popproxy.plumgroup.com/plumvp/startpage.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp/startpage.php
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp/startpage.php
Click here to view saved VoiceXML script
VXI::var_element(name="sessionID" expr = "session.id")
DocumentParser::FetchDocument(startpage.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp ... 1286909511
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp ... 1286909511
Click here to view saved VoiceXML script
VXI::var_element(name="callee_type" expr = "'answeringmachine'")
VXI::var_element(name="phone_number" expr = "'13522741199'")
VXI::var_element(name="call_id" expr = "'2435182'")
VXI::var_element(name="message_reference" expr = "'10'")
VXI::var_element(name="call_parameters" expr = "''")
VXI::var_element(name="campaign_parameters" expr = "''")
DocumentParser::FetchDocument(http://login.sleepcarecenter.com/autoca ... tcall.ashx)
Posted form data is URL encoded
Attempting to fetch http://login.sleepcarecenter.com/autoca ... tcall.ashx
Click here to view saved VoiceXML script
DocumentParser::FetchDocument(call_root.vxml)
Cache Miss: http://login.sleepcarecenter.com/autoca ... _root.vxml
Attempting to fetch http://login.sleepcarecenter.com/autoca ... _root.vxml
Click here to view saved VoiceXML script
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 )+
</grammar>
---------
VXI::var_element(name="varDOB" expr = "")
VXI::var_element(name="varIncomingNumber" expr = "")
VXI::var_element(name="varOutgoingNumber" expr = "")
VXI::var_element(name="varResponseType" expr = "")
VXI::var_element(name="varQuestion" expr = "")
VXI::var_element(name="varReturnAnswer" expr = "")
VXI::var_element(name="varReturnQuestion" expr = "")
VXI::var_element(name="varOrderSomething" expr = "")
VXI::var_element(name="varCallID" expr = "")
VXI::assign_element(name="varCallID" expr = "10")
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male">
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
This is Continuing Care calling with an important message. Please press one.
</voice></speak>
---------
VXI::field_element - activating grammars for form = 'patienttest' formitem = 'answer'
VXI::do_recognition()
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf"
Newly queued prompts are now being played

Tue 12 Oct 2010 02:55:32 PM EDT:
received event: noinput:
VXI::assign_element(name="varQuestion" expr = "'PersonAnswered'")
VXI::assign_element(name="varAnswer" expr = "0")
VXI::queue_prompts()
DocumentParser::FetchDocument(enterdata.ashx)
Cache Miss: http://login.sleepcarecenter.com/autoca ... onAnswered
Attempting to fetch http://login.sleepcarecenter.com/autoca ... onAnswered
Click here to view saved VoiceXML script
VXI::var_element(name="varReturnQuestion" expr = "'PersonAnswered'")
VXI::var_element(name="varReturnAnswer" expr = "'0'")
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_353515'
PromptManager::Play()

Tue 12 Oct 2010 02:55:37 PM EDT:
received event: noinput:
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_353515'
PromptManager::Play()

Tue 12 Oct 2010 02:55:42 PM EDT:
received event: noinput:
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male"> Sorry, I didn't hear you. </voice></speak>
---------
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_353515'
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf speech"
Newly queued prompts are now being played

Tue 12 Oct 2010 02:55:50 PM EDT:
received event: noinput:
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male"> I didn't hear you that time either. </voice></speak>
---------
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_353515'
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf speech"
Newly queued prompts are now being played

Tue 12 Oct 2010 02:55:57 PM EDT:
received event: noinput:
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="mike" gender="male"> I just can't hear you. </voice></speak>
---------
VXI::queue_prompts()
VXI::record_element - activating grammars for form = 'machine' formitem = '$_internalName_353515'
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf speech"
Newly queued prompts are now being played

Tue 12 Oct 2010 02:56:04 PM EDT:
received event: noinput:
VXI::exit_element()
Call End Event
Ending session
Ending Session On Channel 21

magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

Re: issues with leaving a voicemail

Post by magicsoft »

Okay, I think I have a potential solution to this issue that will work in most circumstances. Here's a snippet of VXML that I'm using:

Code: Select all

<form id="patienttest">
		<record name="answer" finalsilence="2s">
			<prompt timeout="2s">
				Hello, this is Continuing Care.  Please press one.
			</prompt>
			<filled>
				<goto next="#person"/>
			</filled>
			<noinput>
				<goto next="#machine"/>
			</noinput>
		</record>
	</form>
The idea here is that I'll start a dummy recording as soon as the phone is answered. If the person presses a key, execution will flow to "#person" which goes to the script for when a person has answered the phone. If there is no input, then execution goes to "#machine", which plays my answering machine message and disconnects.

The problem here is that any sound qualifies as a valid recording and therefore the "filled" part executes. So when the receiving phone plays the outgoing message greeting, the <record> tag picks that up and thinks it has input, and execution flows to "#person". Is there some way I can force it to only respond when a DTMF key is pressed? I know there's a termination character that can be used, but I'm not sure how to do so. I would think that I could just keep recording until a maxtime has been reached or a DTMF key has been pressed. I'm assuming that the <filled> and <noinput> tags aren't what I should be using to accomplish this, but I'm not sure how to test this scenario correctly.

Thanks,

Andrew

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

Re: issues with leaving a voicemail

Post by support »

Hi,

The problem with this solution is just as you have stated: As soon as the IVR picks up on the answering machine/voicemail message, it will be directed to the "person" branch of your application.

Also, to clarify on previous posts, because you can never account for the length of the answering machine/voicemail message, you can really only leave your voicemail in 2 ways:

1) Use callee type detection to determine whether the callee is a human or answering machine and based on what the callee type detection returns, go to the appropriate branch in your application.

You can see an example of this here: http://support.plumgroup.com/viewtopic.php?f=2

The only issue with using callee type detection for your voicemail is that it is not 100% accurate and will sometimes mistake someone's voicemail as "voice" rather than "answeringmachine."

OR

2) Repeat the message that you want to state to the user (regardless of whether they are human or answering machine) multiple times.

You can see an example of this here: http://support.plumgroup.com/viewtopic.php?t=1325

This solution will guarantee that the message you want to leave for the user gets stated, whether it reaches the human or gets left on the voicemail.

Please let us know if you need any further clarification.

Regards,
Plum Support

magicsoft
Posts: 44
Joined: Wed Aug 25, 2010 8:57 am

Re: issues with leaving a voicemail

Post by magicsoft »

Actually, I came up with another solution, and I'm posting it here in the hope that it might help other people having this problem.

The idea behind this is that as soon as someone (or something) picks up the phone, the <record> tag starts processing and the prompt is played. If a person picked up, they'll press 1 (or any other number), which will be interpreted as the "termchar", be processed by the <filled> tag and control will pass to the "#person" section of the script. If no one presses a key, the <else> tag comes into play, once 3 seconds of silence has occurred, and control is passed to the "#machine" section. If a person's outgoing greeting is particularly short, their voicemail might still pick up a bit of the original prompt, but mine is on the short side and I did not have this problem. If their greeting is average or long in length, the <record> tag simple waits it out until the 3 seconds of silence, discards the recording and then the machine message is left.

This worked for me on both my cell phone (iPhone) and my home phone (magicJack), both of which I was having a problem with before trying this method. I'm curious to know what the PLUM guys think of this solution, and if it helps anyone else out there.

Andrew

Code: Select all

<form id="patienttest">
		<record name="answer" beep="false" modal="false" type="audio/x-wav" dtmfterm="true" finalsilence="3s" maxtime="60s">
			<prompt>
				Hello, this is Continuing Care calling with an important message.  Please press one.
			</prompt>
			<filled>
				<if cond="answer$.termchar==1 || answer$.termchar==2 || answer$.termchar==3 || answer$.termchar==4 || answer$.termchar==5 || answer$.termchar==6 || answer$.termchar==7 || answer$.termchar==8 || answer$.termchar==9 || answer$.termchar==0">
					<goto next="#person"/>
				<else/>
					<goto next="#machine"/>
				</if>
			</filled>
		</record>
	</form>

Post Reply