java - 如何通过 asterisk-java 调用一个人

标签 java asteriskami

我在 manager.conf 中创建了一个名为 : mark 的用户管理器,在“sip.conf”中创建了名为“utilisateur”的用户 我想通过 Asterisk-java 调用用户:“utilisateur”,我尝试了这段代码:

  import java.io.IOException;

  import org.asteriskjava.manager.AuthenticationFailedException;
  import org.asteriskjava.manager.ManagerConnection;
  import org.asteriskjava.manager.ManagerConnectionFactory;
  import org.asteriskjava.manager.TimeoutException;
  import org.asteriskjava.manager.action.OriginateAction;
  import org.asteriskjava.manager.response.ManagerResponse;

   public class HelloManager
  {
   private ManagerConnection managerConnection;

  public HelloManager() throws IOException
  {
    ManagerConnectionFactory factory = new ManagerConnectionFactory(
     "localhost",  "mark", "1234");

    this.managerConnection = factory.createManagerConnection();
   }

  public void run() throws IOException, AuthenticationFailedException,
        TimeoutException
  {
     OriginateAction originateAction;
      ManagerResponse originateResponse;

      originateAction = new OriginateAction();
      originateAction.setChannel("SIP/utilisateur");
     originateAction.setContext("default");
     originateAction.setExten("2222");
     originateAction.setPriority(new Integer(1));
     originateAction.setTimeout(new Integer(30000));

    // connect to Asterisk and log in
    managerConnection.login();

    // send the originate action and wait for a maximum of 30 seconds for Asterisk
    // to send a reply
    originateResponse = managerConnection.sendAction(originateAction, 30000);

    // print out whether the originate succeeded or not
    System.out.println(originateResponse.getResponse());

    // and finally log off and disconnect
    managerConnection.logoff();
   }

   public static void main(String[] args) throws Exception
  {
    HelloManager helloManager;

    helloManager = new HelloManager();
    helloManager.run();
  }
  }

 And in extension.conf i added this extension :

[default]
 exten => 2222,1,Dial(SIP/utilisateur)
 exten => 2222,2,Answer

我从asterisk服务器收到此错误,有人可以帮助我吗:

 Exception in thread "main" org.asteriskjava.manager.TimeoutException: Timeout waiting for response to Originate
at org.asteriskjava.manager.internal.ManagerConnectionImpl.sendAction(ManagerConnectionImpl.java:809)
at org.asteriskjava.manager.DefaultManagerConnection.sendAction(DefaultManagerConnection.java:289)
at HelloManager.run(HelloManager.java:40)
at HelloManager.main(HelloManager.java:54)

最佳答案

您未在出站调用者中设置要调用的号码。

originateAction.setCallerId(<phonenumber>);

关于java - 如何通过 asterisk-java 调用一个人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23865978/

相关文章:

java - 通过 Asterisk Java 检测与 Asterisk 的连接状态

c# - 在 C# 中使用 AsterNET 发起 VoIP 调用

javascript - 使用文本转语音消息发起调用

java - Spring /速度/Maven/Tomcat - "requested resource is not available"

java - 调试中耗时增加了吗?

java - 为什么在通过 jmeter 运行脚本后出现套接字关闭错误?

java - 如何测试 Java SIP 客户端?

sip - 如何在 Asterisk 中记录调用(SIP)请求?

java哈希函数冲突

java - 如何在 Netty 中将 EventExecutorGroup 与 NioDatagramChannel 一起使用?