Upgrade 3CX to v18 and get it hosted free!

JAVA-AGI

Author image

There’re a AGI Java example to use it. This example could be compiled under GNU/Linux or Windows.

// RechargeAgi.java Card Recharging by imran ( Pakistan )

import java.io.*;
import java.sql.*;
import java.util.*;
import net.sf.asterisk.fastagi.AGIChannel;
import net.sf.asterisk.fastagi.AGIException;
import net.sf.asterisk.fastagi.AGIRequest;
import net.sf.asterisk.fastagi.AbstractAGIScript;

/*
MySql Table
Cards
pkid | uid | pin | talktime | chargeddate

  • /

class rechargeAGI extends AbstractAGIScript
{
public Statement mystatement = null;
public Connection myconnection = null;

public void dbconnection() throws Exception
{
try
{
Class.forName(“com.mysql.jdbc.Driver”).newInstance();

String con = “jdbc:mysql://localhost/gitpbx?user=dd&password=dd”;
myconnection = DriverManager.getConnection(con);
mystatement = myconnection.createStatement();

}catch (Exception e )
{
System.out.println(“DB Connection failed”);
}

}

public void service(AGIRequest request, AGIChannel channel)throws AGIException
{
try{
dbconnection();
}catch ( Exception e )
{
System.out.println(“Connection failed”);
}

String myPIN=””;
String sql =””;
ResultSet rs;
String mymenuoption=””;

String CallerID = request.getParameter(“callerid”);
String CalledNUM = request.getParameter(“calledNUM”);

try
{
sql =”select uid,pin,talktime from Cards where uid ='”+CallerID+”‘”;
rs = mystatement.executeQuery(sql);
if( !rs.next() )
{
//stream message invalid uid
streamFile(channel,”Invalild-CallerID-Called”);
System.exit(0);
}

// play a menu 1 to 4 message here
for ( int i = 0; i<3;i++)
{
mymenuoption=””;

mymenuoption=request.getDnid();

if ( mymenuoption.equals(“”) || ( Integer.parseInt(mymenuoption) > 4 ) )
{
continue;
}
else
{
if( i < 3 )
{
streamFile(channel,”Invalid-option-selected”);
streamFile(channel,”Thanks-for-using”);
System.exit(0);
}

if ( mymenuoption.equals(“2”) || mymenuoption.equals(“3”) )
{

for ( int j=0; j<3; j++ )
{
// Please enter your pin code
myPIN=””;
myPIN =request.getDnid();

if ( myPIN.equals(“”) || myPIN.length() < 14 )
{
continue;
}
else
{
if( j < 3 )
{
streamFile(channel,”Invalid-PIN-code-entered”);
break;
}

sql =”select uid,pin,talktime from Cards where uid ='”+CallerID+”‘ and pin='”+myPIN+”‘”;
rs = mystatement.executeQuery(sql);
if( !rs.next() )
{
//stream message invalid uid
streamFile(channel,”no-record-have-found”);
}
else
{
if ( mymenuoption.equals(“2”) )
{
sql =”update Cards set talktime= talktime + ‘500’,chargeddate=sysdate() where uid ='”+CallerID+”‘ and pin='”+myPIN+”‘”;
mystatement.executeQuery(sql);
streamFile(channel,”Card-charged-successfully”);
}
if ( mymenuoption.equals(“3”) )
{
sql =”update Cards set talktime=talktime + ‘1000’,chargeddate=sysdate() where uid ='”+CallerID+”‘ and pin='”+myPIN+”‘”;
mystatement.executeQuery(sql);
streamFile(channel,”Card-charged-successfully”);
}

sql =”select uid,pin,talktime from Cards where uid ='”+CallerID+”‘”;
rs = mystatement.executeQuery(sql);
mymenuoption =”1″;
break;
}

}

}

}

// Say CallerID’s balance in dollars n cents
if ( mymenuoption.equals(“1”) )
{
int dollar=(Integer.parseInt(rs.getString(“talktime”))/100);
int cents =(Integer.parseInt(rs.getString(“talktime”))%100);

streamFile(channel,”You-have-balance”);
sayNumber(channel,String.valueOf(dollar));
streamFile(channel,”Dollars”);
sayNumber(channel,String.valueOf(cents));
streamFile(channel,”Cents”);

}

if ( mymenuoption.equals(“4”) )
{
streamFile(channel,”Thanks-for-using”);
System.exit(0);
}
}
}

}catch (Exception e )
{
streamFile(channel,”Application-is-temporarliy-not-functioning”);
System.exit(0);
}
}
}


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.
Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.