使用Asterisk服务器注册

时间:2018-04-23 16:43:57

标签: java asterisk

我是新手,用语音overIP。我正在寻找如何使用asterisk java API注册一个数字,该API使用了API,它是如何工作的以及它在哪里注册。请指导我提前致谢

1 个答案:

答案 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"));
    }



}
相关问题