From 599f55240de0c3f03a96836099d0d69375609c79 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 30 Jul 2019 15:13:59 +0200 Subject: [PATCH] . --- src/model/SIP.java | 19 +++++ .../{SIPRinging.java => SIP180Ringing.java} | 58 ++++++++------- src/model/SIP200Ok.java | 63 ++++++++++++++++ src/model/SIPmodel.java | 74 ++++++++++++++++--- 4 files changed, 177 insertions(+), 37 deletions(-) create mode 100644 src/model/SIP.java rename src/model/{SIPRinging.java => SIP180Ringing.java} (75%) create mode 100644 src/model/SIP200Ok.java diff --git a/src/model/SIP.java b/src/model/SIP.java new file mode 100644 index 0000000..a435cd4 --- /dev/null +++ b/src/model/SIP.java @@ -0,0 +1,19 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package model; + +/** + * + * @author Jan + */ +public class SIP +{ + public SIP() + { + + } +} diff --git a/src/model/SIPRinging.java b/src/model/SIP180Ringing.java similarity index 75% rename from src/model/SIPRinging.java rename to src/model/SIP180Ringing.java index 6668d9c..5960e59 100644 --- a/src/model/SIPRinging.java +++ b/src/model/SIP180Ringing.java @@ -15,33 +15,60 @@ import javax.sip.SipException; import javax.sip.header.AllowEventsHeader; import javax.sip.header.AllowHeader; import javax.sip.header.CSeqHeader; +import javax.sip.header.ContactHeader; import javax.sip.header.FromHeader; +import javax.sip.header.HeaderFactory; import javax.sip.header.ToHeader; import javax.sip.header.ViaHeader; +import javax.sip.message.MessageFactory; import javax.sip.message.Response; +import logger.OhmLogger; /** * * @author Jan */ -public class SIPRinging implements Runnable +public class SIP180Ringing implements Runnable { private RequestEvent evtubergabe; private ExecutorService threadring; private boolean run; private Response responsering; + private MessageFactory messageFactory; + private HeaderFactory headerFactory; + private String myTag; + private String proxyTag; + + public static final Logger lg = OhmLogger.getLogger(); //private SubmissionPublisher publisherZahl; - public SIPRinging(RequestEvent evtubergabe) + public SIP180Ringing(RequestEvent evtubergabe, String myTag, ContactHeader contact) { this.evtubergabe = evtubergabe; threadring = Executors.newSingleThreadExecutor(); + try { responsering = this.messageFactory.createResponse(180, evtubergabe.getRequest()); + responsering.addHeader((ViaHeader) evtubergabe.getRequest().getHeader("Via")); + responsering.addHeader((FromHeader) evtubergabe.getRequest().getHeader("From")); + AllowHeader allow = this.headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"); + //Bei Ringing muss persönlicher Tag ergänzt werden + ToHeader temptoring = (ToHeader) evtubergabe.getRequest().getHeader("To"); + proxyTag = temptoring.getTag(); + temptoring.setTag(String.valueOf(this.myTag)); + responsering.addHeader(temptoring); + long cSequenz = ((CSeqHeader) evtubergabe.getRequest().getHeader("Cseq")).getSeqNumber(); + responsering.addHeader((CSeqHeader) evtubergabe.getRequest().getHeader("Cseq")); + responsering.addHeader(contact); + responsering.addHeader(allow); + AllowEventsHeader allowevent = this.headerFactory.createAllowEventsHeader("talk,hold,refer,call-info");// für was gebraucht + responsering.addHeader(allowevent); + lg.info("Ringing Header erfolgreich erstellt"); } catch (Exception ex) { + lg.info("Fehler bei erstellen des Ringing Headers"); lg.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex); } } @@ -57,31 +84,6 @@ public class SIPRinging implements Runnable run = false; } - public void createRingingHeader() - { - try - { - responsering.addHeader((ViaHeader) evtubergabe.getRequest().getHeader("Via")); - responsering.addHeader((FromHeader) evtubergabe.getRequest().getHeader("From")); - AllowHeader allow = this.headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"); - //Bei Ringing muss persönlicher Tag ergänzt werden - ToHeader temptoring = (ToHeader) evtubergabe.getRequest().getHeader("To"); - proxyTag = temptoring.getTag(); - temptoring.setTag(String.valueOf(this.myTag)); - responsering.addHeader(temptoring); - cSequenz = ((CSeqHeader) evtubergabe.getRequest().getHeader("Cseq")).getSeqNumber(); - responsering.addHeader((CSeqHeader) evtubergabe.getRequest().getHeader("Cseq")); - responsering.addHeader(contactHeader); - responsering.addHeader(allow); - AllowEventsHeader allowevent = this.headerFactory.createAllowEventsHeader("talk,hold,refer,call-info");// für was gebraucht - responsering.addHeader(allowevent); - } - catch (Exception ex) - { - lg.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex); - } - } - @Override public void run() { @@ -93,7 +95,7 @@ public class SIPRinging implements Runnable } catch (SipException ex) { - Logger.getLogger(SIPRinging.class.getName()).log(Level.SEVERE, null, ex); + Logger.getLogger(SIP180Ringing.class.getName()).log(Level.SEVERE, null, ex); } try { diff --git a/src/model/SIP200Ok.java b/src/model/SIP200Ok.java new file mode 100644 index 0000000..7479b36 --- /dev/null +++ b/src/model/SIP200Ok.java @@ -0,0 +1,63 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package model; + +import java.util.logging.Logger; +import javax.sip.RequestEvent; +import javax.sip.header.AllowEventsHeader; +import javax.sip.header.AllowHeader; +import javax.sip.header.CSeqHeader; +import javax.sip.header.CallIdHeader; +import javax.sip.header.ContactHeader; +import javax.sip.header.FromHeader; +import javax.sip.header.HeaderFactory; +import javax.sip.header.ToHeader; +import javax.sip.header.ViaHeader; +import javax.sip.message.MessageFactory; +import javax.sip.message.Response; +import logger.OhmLogger; + +/** + * + * @author Jan + */ +public class SIP200Ok +{ + private Response response; + private static final Logger lg200Ok = OhmLogger.getLogger(); + public SIP200Ok(MessageFactory messageFactory, RequestEvent requestEvent, + ContactHeader contactHeader, HeaderFactory headerFactory) + { + try + { + Response response = messageFactory.createResponse(200, requestEvent.getRequest()); + response.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via")); + response.addHeader((FromHeader) requestEvent.getRequest().getHeader("From")); + response.addHeader((ToHeader) requestEvent.getRequest().getHeader("To")); + response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID")); + response.addHeader((CSeqHeader) requestEvent.getRequest().getHeader("Cseq")); + response.addHeader(contactHeader); + AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"); + AllowEventsHeader allowevents = headerFactory.createAllowEventsHeader("talk,hold,refer,call-info"); + response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID")); + response.addHeader(allow); + response.addHeader(allowevents); + lg200Ok.info("200Ok Header erfolgreich erstellt"); + } + catch (Exception ex) + { + lg200Ok.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex); + } + } + + /** + * @return the response + */ + public Response getResponse() + { + return response; + } +} diff --git a/src/model/SIPmodel.java b/src/model/SIPmodel.java index 4622287..424c0aa 100644 --- a/src/model/SIPmodel.java +++ b/src/model/SIPmodel.java @@ -54,8 +54,8 @@ public class SIPmodel implements SipListenerExt private String[][] codecs; //unterstütze Codecs[RTP-Parameter][CodecBezeichnung] - public int myPort = 5060; - public String myName = "129"; + private int myPort = 5060; + private String myName = "129"; public String protocolTyp = "UDP"; public String myIPAddress; public String proxyAddress; @@ -69,9 +69,9 @@ public class SIPmodel implements SipListenerExt private int countWerdeAngerufen; public long cSequenz = 1; - public String proxyTag; - public int myTag = (new Random()).nextInt(); - public int branch = hashCode(); + private String proxyTag; + private int myTag = (new Random()).nextInt(); + private int branch = hashCode(); public Address contactAddress; public ContactHeader contactHeader; @@ -336,15 +336,15 @@ public class SIPmodel implements SipListenerExt public Response create200Ok(RequestEvent requestEvent) throws ParseException { - Response response = this.messageFactory.createResponse(200, requestEvent.getRequest()); + Response response = messageFactory.createResponse(200, requestEvent.getRequest()); response.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via")); response.addHeader((FromHeader) requestEvent.getRequest().getHeader("From")); response.addHeader((ToHeader) requestEvent.getRequest().getHeader("To")); response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID")); response.addHeader((CSeqHeader) requestEvent.getRequest().getHeader("Cseq")); response.addHeader(contactHeader); - AllowHeader allow = this.headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"); - AllowEventsHeader allowevents = this.headerFactory.createAllowEventsHeader("talk,hold,refer,call-info"); + AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"); + AllowEventsHeader allowevents = headerFactory.createAllowEventsHeader("talk,hold,refer,call-info"); response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID")); response.addHeader(allow); response.addHeader(allowevents); @@ -425,7 +425,7 @@ public class SIPmodel implements SipListenerExt RequestEvent requestEvent; if ((requestEvent = evtWerdeAngerufen) != null && werdeAngerufen == true) { - countWerdeAngerufen = 0; + countWerdeAngerufen = 0; try { @@ -594,4 +594,60 @@ public class SIPmodel implements SipListenerExt { //view.getTxtArea().append("processDialogTerminated\n"); } + + /** + * @param myPort the myPort to set + */ + public void setMyPort(int myPort) + { + this.myPort = myPort; + } + + /** + * @return the myName + */ + public String getMyName() + { + return myName; + } + + /** + * @return the proxyTag + */ + public String getProxyTag() + { + return proxyTag; + } + + /** + * @param proxyTag the proxyTag to set + */ + public void setProxyTag(String proxyTag) + { + this.proxyTag = proxyTag; + } + + /** + * @return the myTag + */ + public int getMyTag() + { + return myTag; + } + + /** + * @param myTag the myTag to set + */ + public void setMyTag(int myTag) + { + this.myTag = myTag; + } + + /** + * @return the branch + */ + public int getBranch() + { + return branch; + } }