asterisk-java und cdr

podsau

Neuer User
Mitglied seit
3 Jun 2009
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
kennt sich jemand mit dem asterisk framework "asterisk-java" aus ?? mein problem liegt darin das ich gern einen call datail record in einer db abspeichern möchte. dafür gibt es ja methoden um z.b. die dauer eines gespräches zurück zu bekommen. leider habe ich keine ahnung wie ich diese richtig in mein testprogramm, welches die userid und namen (und hoffentlich irgendwann die anrufdauer)ausliesst, in eine db schreibt und wieder ausgibt, implementieren kann.

Code:
import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;
import org.asteriskjava.fastagi.*; 
import java.sql.*;

public class app extends BaseAgiScript {

	public void service(AgiRequest request, AgiChannel channel) throws AgiException
	{
		// Answer the channel...
		answer();

			
		String userId = request.getCallerIdNumber();
		String userName = request.getCallerIdName();
				

	    	try{
	        	String url ="jdbc:mysql://localhost/";
	        	String driver ="org.gjt.mm.mysql.Driver"; 
	        	String user="root";
	        	String pw="admin01";
	        	String dbName="asterisk";

	        	try {
	            		// Treiber laden
	            		Class.forName(driver);
	          	}
	          	catch(Exception e) {
	            	System.err.println(e.getMessage());
	            	System.exit(0);
	          	}




	       		Connection conn = DriverManager.getConnection(url+dbName,user,pw);                 
	             	System.out.println("Connection to MySQL Database Successful"+conn);

           		Statement stmt = conn.createStatement();                                             



          		stmt.executeUpdate( "INSERT INTO benutzer (name,id) VALUES ("+userName+","+userId+")" );

	              
        		ResultSet rs = stmt.executeQuery( "SELECT * FROM benutzer" );                            
        		while ( rs.next() )                                                     
                   
        		System.out.println(rs.getString(1)+"   "+ rs.getString(2));


      			stmt.close();                                                                      
            		rs.close();




	     	}
 		catch (SQLException sqe1){
	  		sqe1.printStackTrace();
	        	System.out.println("Caught SQL Exception: " + sqe1);
		}

		
        
	
		hangup();

	
	}//public void service	
	
	
}//public class app
 
hat noch niemand erfahrungen mit dem auslesen eines cdr datensatzes über das asterisk-java framework gesammelt?? in der javadoc steht zwar auch was drüber aber ich bekomm das einfach nich hin :(
 
hat noch niemand erfahrungen mit dem auslesen eines cdr datensatzes über das asterisk-java framework gesammelt?? in der javadoc steht zwar auch was drüber aber ich bekomm das einfach nich hin :(

Du verwendest hier doch ein Agi. Da läuft der Channel noch. Ich bin mir nicht mal sicher ob du zu diesem Zeitpunkt schon auf die CDR-Daten zugreifen kannst. Ich würde mal im Manager-API nach schauen. Dort gibt es ein Event für die CDRs.
Gruß,
Heldenhaft
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,295
Beiträge
2,249,593
Mitglieder
373,893
Neuestes Mitglied
Kukkatto
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.