From 739ecaf317a45589db7e8caa729ddf88229df51f Mon Sep 17 00:00:00 2001 From: Normal Date: Sun, 16 Jun 2019 10:40:04 +0200 Subject: [PATCH] =?UTF-8?q?Erg=C3=A4nzungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/commands/CommandAnnehmen.java | 3 +- src/model/VoIP.java | 64 ++++++++++++++------ 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/controller/commands/CommandAnnehmen.java b/src/controller/commands/CommandAnnehmen.java index e98810e..b5a20a0 100644 --- a/src/controller/commands/CommandAnnehmen.java +++ b/src/controller/commands/CommandAnnehmen.java @@ -15,8 +15,9 @@ import model.VoIP; /** * * @author Jan - * Anruf annehmen -> Evt muss noch gelöscht werden falls nichtmehr angerufen wird, + * Anruf annehmen -> Event muss noch gelöscht werden falls nichtmehr angerufen wird, * welches Kriterium??? + * -> evtl. über "Undo" aktion */ public class CommandAnnehmen implements CommandInterface { diff --git a/src/model/VoIP.java b/src/model/VoIP.java index 39f9027..b7f0fe7 100644 --- a/src/model/VoIP.java +++ b/src/model/VoIP.java @@ -52,15 +52,20 @@ public class VoIP implements SipListenerExt Properties properties; // Other properties. private int counter = 10; - + + private int myPort = 5060; private String myName = "129"; private String protocolTyp = "UDP"; private String myIPAddress; private String proxyAddress; - - Boolean invite; + + Boolean invite; //Bool für SDP falls ich anrufe + + //Hilfsvariablen wenn ich angerufen werde. evtl. noch optimieren RequestEvent evtWerdeAngerufen; + Boolean werdeAngerufen; + private int countWerdeAngerufen; int tag = (new Random()).nextInt(); private int branch = hashCode(); @@ -70,14 +75,18 @@ public class VoIP implements SipListenerExt public VoIP(Hauptfenster view) //Konstruktor für eigene Daten { this.view = view; + invite = true; + proxyAddress = ""; + + countWerdeAngerufen = 0; + evtWerdeAngerufen = null; + werdeAngerufen =false; + try { //wird an sich erstmal nicht gebraucht aber später sinnvoll um eigene Daten zu initialisieren String abc = InetAddress.getLocalHost().getHostAddress(); - invite = true; - proxyAddress = ""; - evtWerdeAngerufen = null; - + this.myIPAddress = InetAddress.getLocalHost().getHostAddress(); this.sipFactory = SipFactory.getInstance(); @@ -91,7 +100,8 @@ public class VoIP implements SipListenerExt this.listeningPoint = this.sipStack.createListeningPoint(this.myIPAddress, this.myPort, this.protocolTyp); this.sipProvider = this.sipStack.createSipProvider(this.listeningPoint); this.sipProvider.addSipListener(this); - this.contactAddress = this.addressFactory.createAddress("sip:129@" + this.myIPAddress + ":" + this.myPort); //+ ":" + this.myPort + //this.contactAddress = this.addressFactory.createAddress("sip:129@" + this.myIPAddress + ":" + this.myPort); //+ ":" + this.myPort + this.contactAddress = this.addressFactory.createAddress("sip:" + myName+ "@" + this.myIPAddress + ":" + this.myPort); this.contactHeader = this.headerFactory.createContactHeader(contactAddress); } @@ -114,7 +124,6 @@ public class VoIP implements SipListenerExt lg.info("Vorbereiten des Registrierungs Headers"); proxyAddress = serverIP + ":" + serverPort; Address addressto = this.addressFactory.createAddress("sip:" + proxyAddress); //evtl. mit Port: sip:192.168.100.11:5060 - //Address addressto = this.addressFactory.createAddress("sip:192.168.100.11"); ToHeader to = this.headerFactory.createToHeader(addressto, null); // Integer.toString(tag) address + tag URI requestURI = addressto.getURI(); CallIdHeader callId = this.sipProvider.getNewCallId(); @@ -138,10 +147,7 @@ public class VoIP implements SipListenerExt int serverPort) throws ParseException, InvalidArgumentException, SipException, SdpException { invite = true; - - - - Address addressto = this.addressFactory.createAddress("sip:" + sipaddresse + "@" + proxyaddresse); //evtl. mit Port: sip:192.168.100.11:5060 + Address addressto = this.addressFactory.createAddress("sip:" + sipaddresse + "@" + proxyaddresse); //Address addressto = this.addressFactory.createAddress("sip:121@192.168.100.11"); ToHeader to = this.headerFactory.createToHeader(addressto, null); // Integer.toString(tag) address + tag URI requestURI = addressto.getURI(); @@ -209,10 +215,24 @@ public class VoIP implements SipListenerExt //Aktive Kommunikation else if ((Request.INVITE).equals(requestEvent.getRequest().getMethod())) // Invite von anderem Benutzer { + countWerdeAngerufen++; FromHeader abc = (FromHeader) requestEvent.getRequest().getHeader("From"); - view.getTxtArea().append("Werde von " + abc.getAddress() + " angerufen\n"); evtWerdeAngerufen = requestEvent; - lg.info("Hab Invitation bekommen"); + System.out.println(countWerdeAngerufen); + if(countWerdeAngerufen<7) + { + werdeAngerufen = true; + lg.info("Hab Invitation bekommen"); + view.getTxtArea().append("Werde von " + abc.getAddress() + " angerufen\n"); + } + else + { + werdeAngerufen = false; + lg.info("Leider waren Sie nicht erreichbar"); + view.getTxtArea().append("Sie waren nicht erreichbar\n"); + countWerdeAngerufen = 0; + } + } else if ((Request.ACK).equals(requestEvent.getRequest().getMethod())) { @@ -327,13 +347,14 @@ public class VoIP implements SipListenerExt public void annehmen() //Fehlende Bedingung { RequestEvent requestEvent; - if ((requestEvent=evtWerdeAngerufen) != null) + if ((requestEvent=evtWerdeAngerufen) != null && werdeAngerufen==true) { + countWerdeAngerufen =0; try { //Trying Message to Server (Response Trying) - + Response responsetry = this.messageFactory.createResponse(100, requestEvent.getRequest()); responsetry.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via")); responsetry.addHeader((FromHeader) requestEvent.getRequest().getHeader("From")); @@ -388,9 +409,9 @@ public class VoIP implements SipListenerExt ContentTypeHeader content = headerFactory.createContentTypeHeader("application", "sdp"); okandSDP.addHeader(content); okandSDP.setContent(createSDPHeader(), content); - System.out.println(okandSDP); this.sipProvider.sendResponse(okandSDP); + view.getTxtArea().append("Telefonat beginnt\n"); evtWerdeAngerufen =null; } catch (ParseException | SipException | SdpException ex) @@ -399,6 +420,9 @@ public class VoIP implements SipListenerExt } } + else + view.getTxtArea().append("Zur Zeit gibt es keinen Anruf\n"); + } //Get Methoden falls man mal die Parameter braucht @@ -425,22 +449,26 @@ public class VoIP implements SipListenerExt @Override public void processTimeout(TimeoutEvent timeoutEvent) { + view.getTxtArea().append("processTimeout\n"); } @Override public void processIOException(IOExceptionEvent exceptionEvent) { + view.getTxtArea().append("processIOException\n"); } @Override public void processTransactionTerminated( TransactionTerminatedEvent transactionTerminatedEvent) { + view.getTxtArea().append("processTransactionTerminated\n"); } @Override public void processDialogTerminated( DialogTerminatedEvent dialogTerminatedEvent) { + view.getTxtArea().append("processDialogTerminated\n"); } }