我是新手,用语音overIP。我正在寻找如何使用asterisk java API注册一个数字,该API使用了API,它是如何工作的以及它在哪里注册。请指导我提前致谢
答案 0 :(得分:0)
这是添加SIP用户的示例
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.manager.ManagerConnectionFactory;
import org.asteriskjava.manager.action.GetConfigAction;
import org.asteriskjava.manager.action.UpdateConfigAction;
import org.asteriskjava.manager.response.ManagerResponse;
public class Sip {
private ManagerConnection managerConnection;
public Sip(ManagerConnection managerConnection2)
{
managerConnection=managerConnection2;
/* ManagerConnectionFactory factory = new ManagerConnectionFactory(
"127.0.0.1", "manager", "pa55w0rd");
this.managerConnection = factory.createManagerConnection();*/
}
public String Add( String ext,String type,String username, String secret,String host,String context ) {
UpdateConfigAction updateConfigAction;
ManagerResponse updateConfigResponse;
updateConfigAction = new UpdateConfigAction();
updateConfigAction.addCommand(UpdateConfigAction.ACTION_NEWCAT, ext, null, null, null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "context", context, null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "host", host, null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "type", type, null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "username", username, null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "secret", secret, null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "nat", "yes", null);
updateConfigAction.addCommand(UpdateConfigAction.ACTION_APPEND, ext, "quality", "yes", null);
updateConfigAction.setSrcFilename("sip.conf");
updateConfigAction.setDstFilename("sip.conf");
updateConfigAction.setReload(true);
try {
//managerConnection.login();
updateConfigResponse = managerConnection.sendAction(updateConfigAction, 10000);
System.out.println(updateConfigResponse.getResponse());
//managerConnection.logoff();
return updateConfigResponse.getResponse();
} catch( Exception e ) {
System.out.println("AddExtension - IOException - " + e.toString());
}
return "Error";
}
public String show_users(){
try {
GetConfigAction getc;
ManagerResponse getr;
Map<String,Object> map;
String res="";
getc=new GetConfigAction();
getc.setFilename("sip.conf");
//managerConnection.login();
getr=managerConnection.sendAction(getc,30000);
map=getr.getAttributes();
for (Map.Entry<String, Object> entry : map.entrySet()) {
Object o = entry.getValue();
String k = entry.getKey();
if(k.substring(0, 8).equals("category")){
res+=o+" "+k.substring(9, 15)+"\n";
}
}
// managerConnection.logoff();
return res;
} catch( Exception e ) {
System.out.println("Show users - IOException - " + e.toString());
}
return "Erreur";
}
public String Del_user(String user){
UpdateConfigAction updateConfigAction;
ManagerResponse updateConfigResponse;
updateConfigAction = new UpdateConfigAction();
updateConfigAction.addCommand(UpdateConfigAction.ACTION_DELCAT, user, null, null, null);
updateConfigAction.setSrcFilename("sip.conf");
updateConfigAction.setDstFilename("sip.conf");
updateConfigAction.setReload(true);
try {
//managerConnection.login();
updateConfigResponse = managerConnection.sendAction(updateConfigAction, 10000);
System.out.println(updateConfigResponse.getResponse());
//managerConnection.logoff();
return updateConfigResponse.getResponse();
} catch( Exception e ) {
System.out.println("Del user - IOException - " + e.toString());
}
return "Error";
}
public Map<String, String> show_user(String user){
try {
GetConfigAction getc;
ManagerResponse getr;
Map<String,Object> map;
Map<String, String> m=new HashMap<String, String>();
getc=new GetConfigAction();
getc.setFilename("sip.conf");
//managerConnection.login();
getr=managerConnection.sendAction(getc,30000);
map=getr.getAttributes();
for (Map.Entry<String, Object> entry : map.entrySet()) {
Object o = entry.getValue();
String k = entry.getKey();
if(k.substring(0, 4).equals("line")&&(k.substring(5, 11).equals(user))){
StringTokenizer st=new StringTokenizer((String)o,"=");
String n=st.nextToken();
String v=st.nextToken();
m.put(n,v);
}
}
// managerConnection.logoff();
return m;
} catch( Exception e ) {
System.out.println("Showuser - IOException - " + e.toString());
}
return null;
}
public static void main(String arg[]){
Map<String, Object> m;
ManagerConnectionFactory factory = new ManagerConnectionFactory(
"127.0.0.1", "manager", "pa55w0rd");
ManagerConnection managerConnection = factory.createManagerConnection();
Sip a=new Sip(managerConnection );
System.out.print(a.show_user("000003"));
}
}