# asterisk-java



## podsau (3. Jun 2009)

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 ausliesst, in eine db schreibt und wieder ausgibt, implementieren kann.


```
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);
	          	}

	          	System.out.println("debug1");


	       		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
```


----------



## tuxedo (3. Jun 2009)

Also hast du eher ein JDBC/SQL Problem als ein Netzwerkproblem?

btw: du benutzt einen Uralten JDBC Treiber für MySQL. Den wird AFAIK gar nicht mehr unterstützt. Probiers mit dem neuen Connector/J, zu bekommen auf MySQL :: The world's most popular open source database

- Alex


----------



## podsau (3. Jun 2009)

ne an der datenbankanbindung liegt es nicht die funktioniert. mir geht es darum wie ich über das asterisk-java framework auf meine cdr's zugreifen kann die bei jedem anruf erstellt werden


----------



## tuxedo (3. Jun 2009)

Ist das nicht über das request-Objekt erreichbar? *mich nicht auskenn und nun raten tu*
Denke das Thema ist doch recht speziell. Gibt es keine Mailingliste oder Forum zu Asterisk-Java? Denn da wird man sicherlich bescheid wissen.


- Alex


----------



## podsau (3. Jun 2009)

ne über request gehts nich.is leider wirklich ziemlich speziell aber habe bis jetz kein dafür zuständiges forum gefunden..trotzdem danke


----------



## Unregistriert (24. Okt 2009)

Fuer den naechsten der sucht: Asterisk-Java - Project Mailing Lists


----------

