0

我已经实现了一个 Java 方法(使用 Asterisk-Java 库)来启动两个用户之间的调用。Alice 是呼叫者,而 Bob 是接收者。它有效,但我不知道为什么,它分两步完成:

  1. 爱丽丝接到她自己的电话。
  2. 如果 Alice 接听电话,那么她和 Bob 之间的通话就会启动。(= Alice 必须点击“Accept the call”,以便最终拨打 Bob。

知道为什么爱丽丝会先接到自己的电话吗?

这是我的代码:

public void call(final String user, final String exten) throws IOException, AuthenticationFailedException, TimeoutException {
    OriginateAction originateAction;
    ManagerResponse originateResponse;

    originateAction = new OriginateAction();
    originateAction.setChannel("SIP/" + user);
    originateAction.setContext("work");
    originateAction.setExten(exten);
    originateAction.setPriority(new Integer(1));
    originateAction.setTimeout(new Long(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);

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

1 回答 1

0
originateAction.setChannel("SIP/" + user);

这一行动首先展开。

如果您需要其他订单,您应该执行其他订单。

您可以通过本地/频道进行拨号。

这个问题我在上个月回答了 4 到 5 次。

有关更多信息,请参阅其他类似问题。

于 2018-02-16T06:07:48.773 回答