2015-08-06 19 views
7

Wir haben 2 Cisco-Telefone: eines für Anrufmanager und ein anderes für seinen Vorgesetzten.So verwenden Sie cBarge (Barge) zum Erstellen einer Konferenz mit JTApi

Wir müssen eine Konferenz erstellen, wenn der Manager antwortet und das Telefon des Supervisors stumm schaltet. Wir versuchen es mit JTApi zu erreichen: Warten Sie auf das Ereignis TermConnActiveEv und versuchen Sie dann, eine Konferenz zu erstellen.

Hier ist das Codebeispiel.

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); 

    .... 

Allerdings wird PreConditionException geworfen. Was machen wir falsch?

Antwort

1

Sie müssen zum Erstellen einer Konferenz nicht die Option "Barge" verwenden.

können Sie versuchen, so etwas zu tun:

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(); 
     } 
    } 
} 

stumm So richten Sie verwenden können:

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

Vor der Anwendung kann von dieser Funktion Gebrauch machen, es TerminalObserver auf die müssen hinzufügen Terminal.

+0

Thnx, es funktioniert :) – balbelias