Ich habe folgendes Problem.
Ich habe eine Gui Oberfläche die die Telefonnummer eines Anrufers anzeigt der gerade Anruft.
Um die Nummer zu bekommen habe ich eine Methode(könnt daraus auch eine extra Klasse machen). Jedoch beinhaltet diese Methode keinen Listener der schaut ob jemand Anruft.
Es läuft nur ein Poll ab mit einer bestimmten Schrittzahl. z.B. Hörer abheben Poll1, Nummerwählen Poll2,...
Das heisst ich muss mindestens 2 Polls einstellen damit ich die Nummer bekomme. Das klappt auch. Auf meiner Oberfläche
erscheint die Nummer des Anrufers. Doch wenn das alles einmal abgelaufen ist ist das Programm zu ende da kein Listener genutz wird.Und ich will ja das die Oberfläche weiter sich aktuallisieren kann wenn wieder ein Anruf eingeht.
Wie kann ich nun dieses Problem beheben? Kann man selber einen Listener schreiben? Ich hab mal den Code mitgepostet:
Das ist die Klasse wo ich meine Telenummerbekomme
Ich habe eine Gui Oberfläche die die Telefonnummer eines Anrufers anzeigt der gerade Anruft.
Um die Nummer zu bekommen habe ich eine Methode(könnt daraus auch eine extra Klasse machen). Jedoch beinhaltet diese Methode keinen Listener der schaut ob jemand Anruft.
Es läuft nur ein Poll ab mit einer bestimmten Schrittzahl. z.B. Hörer abheben Poll1, Nummerwählen Poll2,...
Das heisst ich muss mindestens 2 Polls einstellen damit ich die Nummer bekomme. Das klappt auch. Auf meiner Oberfläche
erscheint die Nummer des Anrufers. Doch wenn das alles einmal abgelaufen ist ist das Programm zu ende da kein Listener genutz wird.Und ich will ja das die Oberfläche weiter sich aktuallisieren kann wenn wieder ein Anruf eingeht.
Wie kann ich nun dieses Problem beheben? Kann man selber einen Listener schreiben? Ich hab mal den Code mitgepostet:
Das ist die Klasse wo ich meine Telenummerbekomme
Code:
public void gettelefonnummer()
{
String a = new String ();
String[] state_text = {"Idle","Setup","SetupAck","CallProc","Alert","Connect","Disc-In","Disc-Out"};
String User = "xxx";
int Anzahl = 2; //<---- 2 Polls
String TelAnlage = "geheim";
try {
URL url = new URL("http://"+TelAnlage+"/PBX0/user.soap");
PbxLocator locator = new PbxLocator();
PbxBindingStub pbx = new PbxBindingStub(url, locator);
pbx.setUsername("xxx");
pbx.setPassword("xxx");
IntHolder session = new IntHolder(0);
IntHolder key = new IntHolder(0);
pbx.initialize(User, "tolinaApp", false, true, session, key);
int ret;
ret = pbx.echo(session.value, key.value);
int user_h;
user_h = pbx.userInitialize(session.value, User, false);
AnyInfo anyInfo = new AnyInfo();
anyInfo = pbx.poll(session.value);
UserInfo userInfos[];
CallInfo callInfos[];
No[] nos;
userInfos = anyInfo.getUser();
for (int j = 1; j <= Anzahl; j++)
{
anyInfo = pbx.poll(session.value);
callInfos = anyInfo.getCall();
for (int i = 0; i < callInfos.length; i++) {
nos = callInfos[i].getNo();
a = nos[0].getE164(); //<---Hier bekomme ich die Nummer
seta(a);
}
}
Gui neu = new Gui(); //<--- Hier rufe ich meine Gui auf in der ein Label dann per getMethode die Nummer bekommt
neu.setVisible(true);
pbx.userEnd(user_h);
pbx.end(session.value);
System.out.println("Ende");
}
catch (MalformedURLException e) {
e.printStackTrace();
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}