TRANSFER TO OTHER EXTENTION USING VXML

Version 1
    This document was generated from CDN thread

    Created by: Erick Alfredo Zabala Sanjines on 29-02-2012 12:20:51 PM
     
     
    I have that topology network
     
     
    fxo ===== vxml =====router 2801 ===== ip phone 7940 (101)
                                                                   ip phone 7940 (110)
                                                                   ip phone 7940 (115)
     
     
    That is my VXML:
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <vxml version="2.0">

    <!--
    Cisco Voicexml Sample Code
    File Name : acme1.vxml

    Copyright (c) 2003 by Cisco Systems, Inc.
    All rights reserved.

    SAMPLE APPLICATION AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND BY CISCO, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
    LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, SATISFACTORY QUALITY OR ARISING FROM A COURSE OF
    DEALING, LAW, USAGE, OR TRADE PRACTICE.  CISCO TAKES NO RESPONSIBILITY REGARDING ITS USAGE IN AN APPLICATION.  THE APPLICATION IS PROVIDED AS AN EXAMPLE
    ONLY, THEREFORE CISCO DOES NOT MAKE ANY REPRESENTATIONS REGARDING ITS RELIABILITY, SERVICEABILITY, OR FUNCTION.  IN NO EVENT DOES CISCO WARRANT THAT THE
    SOFTWARE IS ERROR FREE OR THAT CUSTOMER WILL BE ABLE TO OPERATE THE SOFTWARE WITHOUT PROBLEMS OR INTERRUPTIONS.  NOR DOES CISCO WARRANT THAT THE SOFTWARE
    OR ANY EQUIPMENT ON WHICH THE SOFTWARE IS USED WILL BE FREE OF VULNERABILITY TO INTRUSION OR ATTACK.  THIS SAMPLE APPLICATION IS NOT SUPPORTED BY CISCO IN
    ANY MANNER. CISCO DOES NOT ASSUME ANY LIABILITY ARISING FROM THE USE OF THE APPLICATION. FURTHERMORE, IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR
    ANY INCIDENTAL OR CONSEQUENTIAL DAMAGES, LOST PROFITS, OR LOST DATA, OR ANY OTHER INDIRECT DAMAGES EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN INFORMED OF THE
    POSSIBILITY THEREOF.
    -->


    <property name="timeout" value="3s"/>
    <property name="interdigittimeout" value="3s"/>
    <property name="bargein" value="true"/>

    <catch event="connection.disconnect.transfer">

        <log> Connection with the callee established </log>
    <exit/>

    </catch>

    <catch event ="noinput nomatch error" count="3">

    <exit/>

    </catch>





    <catch event="telephone.disconnect.hangup">

      <log> Catch Handler  ::  User disconnected </log>
    <exit/>

    </catch>



    <catch event="error.badfetch">
      <log>  Catch Handler  ::  Bad Fetch </log>
    <exit/>
    </catch>



    <var name="option"/>
    <var name="mydur"/>

    <form id="main">
        <field name="getdigit" type="digits?length=3">
        <grammar type="application/grammar+regex">...</grammar>

            <noinput>
           
            <goto next="#transfer"/>       

            </noinput>

            <nomatch>

               <goto next="#transfer"/>

            </nomatch>

        <prompt bargein="true">
            <audio src="welcome.wav"/>
        </prompt>

        <filled>
            <assign name="option" expr="getdigit"/>
            <goto next="#transfer_me"/>
        </filled>
        </field>     
    </form>

    <form id="transfer_me">
       

        <block>

        <log>User selected $option</log>

        </block>

       <transfer name="mycall" destexpr="'tel:+'+ option"  type="blind" connecttimeout="15s" bridge="false" cisco-longpound ="true">
           

                        <filled>
                        <assign name="mydur" expr="mycall$.duration"/>

                            <if cond = "mycall == 'busy'">
                              <prompt>
                                <audio src="busy.au"></audio>
                              </prompt>
                              <log> TRANSFER ITEM   ::   Destination is busy</log>
                            <elseif cond = "mycall == 'noanswer'"/>
                              <prompt>
                                <audio src="busy.au"></audio>
                              </prompt>
                              <log> TRANSFER ITEM   ::   called party is not answering </log>
                            <elseif cond = "mycall == 'near_end_disconnect'"/>
                              <log> TRANSFER ITEM   ::   Calling party disconnected </log>
                            <elseif cond = "mycall == 'far_end_disconnect'"/>
                              <log> TRANSFER ITEM   ::   Called party disconnected </log>
                            <elseif cond = "mycall == 'unknown'"/>
                              <log> TRANSFER ITEM   ::   Call transfer status is UNKNOWN</log>
                            <else/>
                              <prompt><audio src="busy.au"></audio></prompt>
                            </if>

                            <log>TRANSFER ITEM   ::   The value in mycall is <value expr="mycall"/></log>
                            <log>TRANSFER ITEM   ::   Duration of call is <value expr="mydur"/></log>
                    </filled>


       
        </transfer>

    </form>

    <form id="transfer">
       

         

       <transfer name="mycall" dest="tel:+101"  type="blind" connecttimeout="15s" bridge="false" cisco-longpound ="true">
           

                        <filled>
                        <assign name="mydur" expr="mycall$.duration"/>

                            <if cond = "mycall == 'busy'">
                              <prompt>
                                <audio src="busy.au"></audio>
                              </prompt>
                              <log> TRANSFER ITEM   ::   Destination is busy</log>
                            <elseif cond = "mycall == 'noanswer'"/>
                              <prompt>
                                <audio src="busy.au"></audio>
                              </prompt>
                              <log> TRANSFER ITEM   ::   called party is not answering </log>
                            <elseif cond = "mycall == 'near_end_disconnect'"/>
                              <log> TRANSFER ITEM   ::   Calling party disconnected </log>
                            <elseif cond = "mycall == 'far_end_disconnect'"/>
                              <log> TRANSFER ITEM   ::   Called party disconnected </log>
                            <elseif cond = "mycall == 'unknown'"/>
                              <log> TRANSFER ITEM   ::   Call transfer status is UNKNOWN</log>
                            <else/>
                              <prompt><audio src="busy.au"></audio></prompt>
                            </if>

                            <log>TRANSFER ITEM   ::   The value in mycall is <value expr="mycall"/></log>
                            <log>TRANSFER ITEM   ::   Duration of call is <value expr="mydur"/></log>
                    </filled>


       
        </transfer>

    </form>





    </vxml>
     
     
    I want to transfer to other extention when I calling by fxo, I can get to extention for example 101, but Extention 101 wants to transfer to other extention for example 110. The extention 101 can't transfer to 110 what is the problem?? Help me please !!! What is my mistake??
     
     

    application
     service test ftp://10.60.0.201/acme1.vxml
     !
    voice-port 1/1/0
     supervisory disconnect dualtone mid-call
     cptone ES
     timeouts call-disconnect 3
     timeouts ringing 20
     timeouts wait-release 3
     impedance 900r
     description PSTN_2444843
     station-id name HTC
     station-id number 2444843
    !
    voice-port 1/1/1
     supervisory disconnect dualtone mid-call
     cptone ES
     timeouts call-disconnect 3
     timeouts ringing 20
     timeouts wait-release 3
     impedance 900r
     description PSTN_2441968
     station-id name HTC
     station-id number 2441968
    !
    !
    !
    dial-peer voice 6601 pots
     service test
     destination-pattern 9.T
     direct-inward-dial
     port 1/1/0
    !
    dial-peer voice 6602 pots
     service test
     destination-pattern 9.T
     direct-inward-dial
     port 1/1/1
    !

    ephone-dn  1  dual-line
     number 101
     pickup-group 666
     description EYZAGUIRRE, Vita_
     name EYZAGUIRRE, Vita_
     call-forward busy 101
     call-forward noan 440 timeout 15
    !
    !

    ephone  1
     ephone-template 1
     keepalive 200
     username "P101" password 1234
     mac-address 000A.8A66.39DB
     type 7940
     keep-conference
     button  1:1
     
    ..... eph 2 and 3 ok
     
     
     
     

    Subject: RE: TRANSFER TO OTHER EXTENTION USING VXML
    Replied by: Raghavendra Gutty Veeranagappa on 01-03-2012 06:11:32 AM
    Hi Erick,

    you need to configure below command under ephone-dn 1,  since you doing blind transfer.

    ephone-dn  1  dual-line
       transfer-mode blind

    Thanks,
    Raghavendra