java - JTApi如何使用介入(Barge)创建 session

标签 java cisco conference jtapi cisco-jtapi

我们有 2 部思科电话:一部用于调用经理,另一部用于他的主管。

我们需要在经理接听电话并将主管的电话设为静音时创建 session 。我们正在尝试使用 JTApi 来实现它:WAITING事件 TermConnActiveEv,然后尝试创建 session 。

这是代码示例。

if (callEv instanceof TermConnActiveEv) {
CiscoCall thisCall = (CiscoCall) callEv.getCall();
TerminalConnection connection = ((TermConnActiveEv) callEv).getTerminalConnection();

if (thisCall.getState() != Call.ACTIVE)
{
    System.out.println("call is not active");
    return;
}
try {
    CiscoCall newCall = (CiscoCall) provider.createCall();
    newCall.consult(connection);
    newCall.conference(thisCall);

    ....

但是,PreConditionException 被抛出。我们做错了什么?

最佳答案

您不需要使用插入功能来创建 session 。

你可以尝试做这样的事情:

if (callEv instanceof TermConnActiveEv) {
    CiscoCall thisCall = (CiscoCall) callEv.getCall();
    TerminalConnection tc = thisCall.getConferenceController();
    Connection[] connections = thisCall.getConnections();

    TerminalConnection[] tcs = connections[0].getTerminalConnections();
    if (tcs.length > 0 && tc == null) {
        tc = tcs[0];
    }

    if (tc == null) {
        System.out.println("Conference controller is null.");
    } else {
        try {
            Call call = provider.createCall();
            call.connect(thisAddress.getTerminals()[0], thisAddress, superVisorAddress);
            thisCall.conference(call);
        } catch (Exception ex) {
            System.out.println("Exception " + ex);
            ex.printStackTrace();
        }
    }
}

要设置静音,您可以使用:

((CiscoTerminal)termConnections[i].getTerminal().sendData("<CiscoIPPhoneExecute><ExecuteItem Priority=\"0\"URL=\"Key:Mute\"/></CiscoIPPhoneExecute>");

在应用程序可以使用此功能之前,它必须在终端上添加 TerminalObserver

关于java - JTApi如何使用介入(Barge)创建 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31858671/

相关文章:

java - TestNG DataProvider 的 Ant 构建编码错误

java - NIO 聊天应用程序无法为多个客户端正常工作

ssl - 如何在 Wireshark (Cisco CUCM 10.5) 中通过 TLS 解密 SIP

java - CUCM 8.5 AXLAPI 中的示例 doAuthenticateUser 请求消息

Twilio:以编程方式加入 session 并播放 <Say> 命令或 <Play> 声音文件?

以编程方式进行 Android session 和保持通话

javascript - 无法使用 HTTP 200 代码下载文件

java - 在 int 和 Integer 之间使用哪个更好来确定值?

network-programming - 以编程方式管理思科; Telnet 与 SNMP?

audio - 在音频 session 中查找当前发言人