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

Platform not transfering call through my development account

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
sparktech
Posts: 7
Joined: Tue Aug 11, 2009 2:28 pm
Location: Los Angeles

Platform not transfering call through my development account

Post by sparktech »

Hi,

I am currently developing an application using the free developer account and are not getting a call transfer to work successfully. It worked once but all subsequent attempt results in noanswer even though the phone lines to which we are testing call transfer are all free. I have tried with various phone numbers but failed with all.
Following is my VoiceXML script:

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3.org/2001/vxml 
    http://www.w3.org/TR/voicexml20/vxml.xsd"
    application="common.vsp">
      
    <meta http-equiv="Expires" content="0" />
    
    <script>
    <![CDATA[
        var retryCount = 0;
        var transferNumber = 'tel:17145945595;postd=pp1100';
        
        function maxRetryExceeded()
        {
            if (parseInt(retryCount) > 20)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
        function incRetryCount()
        {
            retryCount++;
        }
    ]]>    
    </script>    
    <form id="transfer">
        <transfer name="callTransfer" destexpr="transferNumber" connecttimeout="20s">
            <filled>
                <log expr="'transfer call completed for phone ' + transferNumber + ' with status ' + callTransfer" />
                <if cond="callTransfer=='noanswer'">
	                <log expr="'retryCount is ' + retryCount"/>
                    <if cond="!maxRetryExceeded()">
                        <log expr="'We have retried less than 20 times ' + retryCount"/>
                        <script>
                        <![CDATA[
                            incRetryCount();
                        ]]>    
                        </script>
                        <log expr="'retryCount is ' + retryCount"/>
                        <prompt bargein="false">
                            <voice>
                                All our customer care associates are currently
                                busy helping other customers. Please wait while
                                your call is connected.
                            </voice>
                        </prompt>
                        <clear namelist="callTransfer"/>
                        <goto next="#transfer"/>                      
                    </if>
                    <submit next="callCompleted.vsp" namelist="<%=commonParams%> callTransfer"/>
                </if>
            </filled>
            <catch>
                <submit next="callCompleted.vsp" namelist="<%=commonParams%> callTransfer"/>
            </catch>
        </transfer>
    </form>
</vxml>


Following is the Logs generated by the system:

Mon 10 Aug 2009 10:08:01 PM EDT:
DocumentParser::FetchDocument(transferCallStart.vsp)
Cache Miss: http://65.60.116.165:8080/cons/transfer ... elivered=0
Attempting to fetch http://65.60.116.165:8080/cons/transfer ... elivered=0
DocumentParser::FetchDocument(common.vsp)
Cache Miss: http://65.60.116.165:8080/cons/common.vsp
Attempting to fetch http://65.60.116.165:8080/cons/common.vsp
VXI::var_element(name="isAnsweringMachine" expr = "'false'")
VXI::var_element(name="callRequestId" expr = "64")
VXI::var_element(name="callLegId" expr = "159")
VXI::var_element(name="msgDelivered" expr = "false")
VXI::queue_prompts()
Bridge Transfer: tel:17145945595;postd=pp1100

Mon 10 Aug 2009 10:08:21 PM EDT:
Makecall Failed: Timeout of 20s reached
transfer call completed for phone tel:17145945595;postd=pp1100 with status noanswer
retryCount is 0
We have retried less than 20 times 0
retryCount is 1
bargein set to false
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice><speak>
All our customer care associates are currently
busy helping other customers. Please wait while
your call is connected.
</speak></voice></speak>
---------

Mon 10 Aug 2009 10:08:22 PM EDT:
Newly queued prompts are now being played
VXI::queue_prompts()

Mon 10 Aug 2009 10:08:30 PM EDT:
Bridge Transfer: tel:17145945595;postd=pp1100

Mon 10 Aug 2009 10:08:50 PM EDT:
Makecall Failed: Timeout of 20s reached
transfer call completed for phone tel:17145945595;postd=pp1100 with status noanswer
retryCount is 1
We have retried less than 20 times 1
retryCount is 2
bargein set to false
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice><speak>
All our customer care associates are currently
busy helping other customers. Please wait while
your call is connected.
</speak></voice></speak>
---------
Newly queued prompts are now being played
VXI::queue_prompts()

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

transfer number in IVR code not an automated system

Post by support »

Hi,

Can you please confirm that the phone number (17145945595) that you listed in your IVR code is correct? When we have tried calling into it, it isn't reaching an automated system.

Regards,
Plum Support
Last edited by support on Mon Dec 21, 2009 5:36 pm, edited 1 time in total.

sparktech
Posts: 7
Joined: Tue Aug 11, 2009 2:28 pm
Location: Los Angeles

Post by sparktech »

Hi,

Yes you are correct that this number is not mapped to an automated system. Infact all the numbers I tried in my testing were personal numbers belonging to me or other members of my team. This was just for the purpose of testing our scripts. It is likely that even in final deplyment we use number pointing to individuals rather than to an automated system. Is it a requirement that the phone line be answered by a automated system for purpose of transfer? I hope not though!

Thanks
Mohit

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

tested your IVR code

Post by support »

Hi,

No, it is not a requirement that the phone line be answered by an automated system for purpose of transfer.

Looking at your IVR code, we saw this line:

Code: Select all

tel:17145945595;postd=pp1100
So, the expected behavior would be to dial this number (which would be an automated system), have it wait (the two "p"s in your postd) and then dial the extension (1100).

In any case, we have tested your IVR code and found that someone has picked up on the transfer each time. Having an IVR demo account or a full IVR hosting account makes no difference in doing this transfer.

Regards,
Plum Support
Last edited by support on Wed Feb 24, 2010 12:19 pm, edited 5 times in total.

sparktech
Posts: 7
Joined: Tue Aug 11, 2009 2:28 pm
Location: Los Angeles

Post by sparktech »

Hi There,

I see your point regarding your expectation of an automated system at the other end.

So atleast it is clear from your tests that the script is generally correct and should be able to initiate a tranfer call. I will test my script again today with other numbers.

Thanks
Mohit

sparktech
Posts: 7
Joined: Tue Aug 11, 2009 2:28 pm
Location: Los Angeles

Post by sparktech »

Hi,

I did some more testing with call transfering yesterday. I tried with transfering to different phone numbers on different phone networks (AT&T, Sprint, Vonage). However the plum voice server failed to transfer call on any of the system. Looking at the call logs, the system continues to report that the called numbers were 'noanswer' even though each of these numbers were completely free and we did not receive calls on any of the numbers. I am posting the generated voiceXML script here again for your reference. The script itself has been captured from the call logs from your website.
Going forward, is it possible for you guys to look at any additional logs when your system is trying to make an outgoing call, and see why it is failing to connect.
Here is the voicexml:

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3.org/2001/vxml 
    http://www.w3.org/TR/voicexml20/vxml.xsd"
    application="common.vsp">
    <meta http-equiv="Expires" content="0" />
    
    <var name="isAnsweringMachine" expr="'false'"/>
    <var name="callRequestId" expr="75"/>
    <var name="callLegId" expr="174"/>
    <var name="msgDelivered" expr="false" />
    
    <script>
    <![CDATA[
        var retryCount = 0;
        var transferNumber = '17147158002';
        
        function maxRetryExceeded()
        {
            if (parseInt(retryCount) > 20)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
        function incRetryCount()
        {
            retryCount++;
        }
    ]]>    
    </script>    
    <form id="transfer">
        <transfer name="callTransfer" destexpr="transferNumber" connecttimeout="20s">
            <filled>
                <log expr="'transfer call completed for phone ' + transferNumber + ' with status ' + callTransfer" />
                <if cond="callTransfer=='noanswer'">
	                <log expr="'retryCount is ' + retryCount"/>
                    <if cond="!maxRetryExceeded()">
                        <log expr="'We have retried less than 20 times ' + retryCount"/>
                        <script>
                        <![CDATA[
                            incRetryCount();
                        ]]>    
                        </script>
                        <log expr="'retryCount is ' + retryCount"/>
                        <prompt bargein="false">
                            <voice>
                                All our customer care associates are currently
                                busy helping other customers. Please wait while
                                your call is connected.
                            </voice>
                        </prompt>
                        <clear namelist="callTransfer"/>
                        <goto next="#transfer"/>                      
                    </if>
                    <submit next="callCompleted.vsp" namelist="callLegId callRequestId msgDelivered isAnsweringMachine callTransfer"/>
                </if>
            </filled>
            <catch>
                <submit next="callCompleted.vsp" namelist="callLegId callRequestId msgDelivered isAnsweringMachine callTransfer"/>
            </catch>
        </transfer>
    </form>
</vxml>

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

IVR code tel URL format suggestion

Post by support »

Hi,

When you make the initial IVR outbound call, how are you sending the phone_number variable?

If you are using the tel URL format, you should follow this format:

tel:+16177123000

Please let us know if this makes any difference for you for your IVR.

Regards,
Plum Support
Last edited by support on Mon Dec 21, 2009 5:38 pm, edited 1 time in total.

sparktech
Posts: 7
Joined: Tue Aug 11, 2009 2:28 pm
Location: Los Angeles

Post by sparktech »

Hi There,

Ok so adding a + in the URL fixed the problem. Transfer now happens correctly. It was interesting though that the plaform was able to initiate an out going call without the + in there, however failed while tranfering call.

Thanks for the help

Mohit

Post Reply