how to write vxml in perl?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pramod1984
    New Member
    • Apr 2009
    • 2

    how to write vxml in perl?

    Code:
    #!/usr/bin/perl
    # PERL MODULES WE WILL BE USING
    use DBI;
    use DBD::mysql;
    
    use Asterisk::AGI;
    $AGI = new Asterisk::AGI;
    
    # HTTP HEADER
    
    # Print "Content-type:text/vxml \n\n";
    
    #CONFIG VARIABLES
    $platform="mysql";
    $database="employeedet";
    $host="localhost";
    $port="3306";
    $tablename="employee";
    $user="";
    $pw="";
    
    #DATA SOURCE NAME
    $dsn="dbi:mysql:$database:localhost:3306";
    
    #PERL DBI CONNECT(RENAMED HANDLE)
    $dbstore = DBI->connect($dsn,$user,$pw);
    
    #PREPARE THE QUERY
    $stmtA = "select * from employee where id='1';";
    $sthA = $dbstore->prepare($stmtA) or die "preparing:", $dbstore ->errstr;
    $sthA->execute or die "SQLERROR:$stmtA".$DBI->errstr;
    while(@row = $sthA->fetchrow_array())
    {
     $count=$row[1];
    }
    print qq*
    <?xml version="1.0"?>
    <vxml>
    <form>
    <prompt>
    The employee name is "$count".
    </prmopt>
    </form>
    </vxml>
    *;
    can any one help me i am getting the output when i type in terminal ./employee.agi

    this is my vxml file:
    Code:
    <?xml version="1.0"?>
    <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
    <form id="employeeid">
    <field name="emp" type="number">
    <prompt>
    Enter your Employee ID
    </prompt>
    <grammar src="employeeinfo.vxml" type="application/srgs+xml"/>
    <filled>
    YOu have entered<value expr="emp"/>as employee id number
    </filled>
    </field>
    <block>
    <submit next="http://localhost/vxml/test/employee.agi" namelist="emp"/>
    </block>
    </form>
    </vxml>
    i have kept employee.agi in /var/www/vxml/test folder


    but when i call from a vxml file i am getting error:
    Code:
    Apr 19 13:23:13.21|-2028012656|94|CRITICAL|com.speechworks.vxi|205|VXIinterpreterRun: Failed to parse the URI's content. Make sure that this document consists of valid VXML.|URL=http://localhost/vxml/test/employee.agi
    Apr 19 13:23:13.21|-2028012656|94|EVENT|2|content=Error:  error.badfetch ,  [url]http://localhost/vxml/test/employee.agi[/url]
    please help me its urgent
    Last edited by eWish; Apr 21 '09, 03:15 AM. Reason: moved to perl forum. Also, please use the code tags
  • Icecrack
    Recognized Expert New Member
    • Sep 2008
    • 174

    #2
    Try this i have take out your user and pass for SQL reinsert them

    Code:
    #!/usr/bin/perl
    # PERL MODULES WE WILL BE USING
    use DBI;
    use DBD::mysql;
    
    use Asterisk::AGI;
    $AGI = new Asterisk::AGI;
    
    # HTTP HEADER
    
    Print "Content-type:text/vxml \n\n";
    
    #CONFIG VARIABLES
    $platform="mysql";
    $database="employeedet";
    $host="localhost";
    $port="3306";
    $tablename="employee";
    $user="";
    $pw="";
    
    #DATA SOURCE NAME
    $dsn="dbi:mysql:$database:localhost:3306";
    
    #PERL DBI CONNECT(RENAMED HANDLE)
    $dbstore = DBI->connect($dsn,$user,$pw);
    
    #PREPARE THE QUERY
    $stmtA = "select * from employee where id='1';";
    $sthA = $dbstore->prepare($stmtA) or die "preparing:", $dbstore ->errstr;
    $sthA->execute or die "SQLERROR:$stmtA".$DBI->errstr;
    while(@row = $sthA->fetchrow_array())
    {
    $count=$row[1];
    }
    print <<XMLPRINT;
    <?xml version="1.0"?>
    <vxml>
    <form>
    <prompt>
    The employee name is "$count".
    </prmopt>
    </form>
    </vxml>
    
    XMLPRINT
    Last edited by eWish; Apr 21 '09, 03:16 AM. Reason: Fixed code tags had } on the last tag in stead of ]

    Comment

    • pramod1984
      New Member
      • Apr 2009
      • 2

      #3
      Hi,
      I have made the changes near print <<XMLPRINT; but i am getting error as:

      Can't find string terminator "XMLPRINT" anywhere before EOF at ./employee.agi line 36.

      Comment

      • Icecrack
        Recognized Expert New Member
        • Sep 2008
        • 174

        #4
        Make Sure you have a blank line no spaces Before and After XMLPRINT

        Comment

        Working...