2015-08-06 18 views
7

2 cisco telefonumuz var: biri arama yöneticisi için ve diğeri de denetçisi için.JTApi ile konferans oluşturmak için cBarge (Barge) nasıl kullanılır

Yönetici, yöneticinin telefonunu kapatıp yanıt verdiğinde bir konferans oluşturmamız gerekiyor. JTApi kullanarak elde etmeye çalışıyoruz: etkinlik için bekle TermConnActiveEv, daha sonra konferans oluşturmaya çalışıyoruz.

İşte kod örneği.

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

    .... 

Ancak PreConditionException atılır. Neyi yanlış yapıyoruz?

cevap

1

Konferans oluşturmak için Barge'ı kullanmanız gerekmez.

Böyle bir şey yapmak deneyebilirsiniz:

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

dilsiz ayarlamak için kullanabilirsiniz:

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

Bu özelliğin kullanımı yapabilirsiniz uygulaması, bu üzerinde TerminalObserver eklemelisiniz önce terminal.

+0

Thnx, işe yarıyor :) – balbelias

İlgili konular