.
This commit is contained in:
parent
cbb42b3041
commit
599f55240d
19
src/model/SIP.java
Normal file
19
src/model/SIP.java
Normal file
@ -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()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -15,33 +15,60 @@ import javax.sip.SipException;
|
|||||||
import javax.sip.header.AllowEventsHeader;
|
import javax.sip.header.AllowEventsHeader;
|
||||||
import javax.sip.header.AllowHeader;
|
import javax.sip.header.AllowHeader;
|
||||||
import javax.sip.header.CSeqHeader;
|
import javax.sip.header.CSeqHeader;
|
||||||
|
import javax.sip.header.ContactHeader;
|
||||||
import javax.sip.header.FromHeader;
|
import javax.sip.header.FromHeader;
|
||||||
|
import javax.sip.header.HeaderFactory;
|
||||||
import javax.sip.header.ToHeader;
|
import javax.sip.header.ToHeader;
|
||||||
import javax.sip.header.ViaHeader;
|
import javax.sip.header.ViaHeader;
|
||||||
|
import javax.sip.message.MessageFactory;
|
||||||
import javax.sip.message.Response;
|
import javax.sip.message.Response;
|
||||||
|
import logger.OhmLogger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Jan
|
* @author Jan
|
||||||
*/
|
*/
|
||||||
public class SIPRinging implements Runnable
|
public class SIP180Ringing implements Runnable
|
||||||
{
|
{
|
||||||
private RequestEvent evtubergabe;
|
private RequestEvent evtubergabe;
|
||||||
private ExecutorService threadring;
|
private ExecutorService threadring;
|
||||||
private boolean run;
|
private boolean run;
|
||||||
private Response responsering;
|
private Response responsering;
|
||||||
|
private MessageFactory messageFactory;
|
||||||
|
private HeaderFactory headerFactory;
|
||||||
|
private String myTag;
|
||||||
|
private String proxyTag;
|
||||||
|
|
||||||
|
public static final Logger lg = OhmLogger.getLogger();
|
||||||
//private SubmissionPublisher<Integer> publisherZahl;
|
//private SubmissionPublisher<Integer> publisherZahl;
|
||||||
|
|
||||||
public SIPRinging(RequestEvent evtubergabe)
|
public SIP180Ringing(RequestEvent evtubergabe, String myTag, ContactHeader contact)
|
||||||
{
|
{
|
||||||
this.evtubergabe = evtubergabe;
|
this.evtubergabe = evtubergabe;
|
||||||
threadring = Executors.newSingleThreadExecutor();
|
threadring = Executors.newSingleThreadExecutor();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
responsering = this.messageFactory.createResponse(180, evtubergabe.getRequest());
|
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)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
lg.info("Fehler bei erstellen des Ringing Headers");
|
||||||
lg.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
|
lg.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -57,31 +84,6 @@ public class SIPRinging implements Runnable
|
|||||||
run = false;
|
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
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
@ -93,7 +95,7 @@ public class SIPRinging implements Runnable
|
|||||||
}
|
}
|
||||||
catch (SipException ex)
|
catch (SipException ex)
|
||||||
{
|
{
|
||||||
Logger.getLogger(SIPRinging.class.getName()).log(Level.SEVERE, null, ex);
|
Logger.getLogger(SIP180Ringing.class.getName()).log(Level.SEVERE, null, ex);
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
63
src/model/SIP200Ok.java
Normal file
63
src/model/SIP200Ok.java
Normal file
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -54,8 +54,8 @@ public class SIPmodel implements SipListenerExt
|
|||||||
|
|
||||||
private String[][] codecs; //unterstütze Codecs[RTP-Parameter][CodecBezeichnung]
|
private String[][] codecs; //unterstütze Codecs[RTP-Parameter][CodecBezeichnung]
|
||||||
|
|
||||||
public int myPort = 5060;
|
private int myPort = 5060;
|
||||||
public String myName = "129";
|
private String myName = "129";
|
||||||
public String protocolTyp = "UDP";
|
public String protocolTyp = "UDP";
|
||||||
public String myIPAddress;
|
public String myIPAddress;
|
||||||
public String proxyAddress;
|
public String proxyAddress;
|
||||||
@ -69,9 +69,9 @@ public class SIPmodel implements SipListenerExt
|
|||||||
private int countWerdeAngerufen;
|
private int countWerdeAngerufen;
|
||||||
|
|
||||||
public long cSequenz = 1;
|
public long cSequenz = 1;
|
||||||
public String proxyTag;
|
private String proxyTag;
|
||||||
public int myTag = (new Random()).nextInt();
|
private int myTag = (new Random()).nextInt();
|
||||||
public int branch = hashCode();
|
private int branch = hashCode();
|
||||||
public Address contactAddress;
|
public Address contactAddress;
|
||||||
public ContactHeader contactHeader;
|
public ContactHeader contactHeader;
|
||||||
|
|
||||||
@ -336,15 +336,15 @@ public class SIPmodel implements SipListenerExt
|
|||||||
|
|
||||||
public Response create200Ok(RequestEvent requestEvent) throws ParseException
|
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((ViaHeader) requestEvent.getRequest().getHeader("Via"));
|
||||||
response.addHeader((FromHeader) requestEvent.getRequest().getHeader("From"));
|
response.addHeader((FromHeader) requestEvent.getRequest().getHeader("From"));
|
||||||
response.addHeader((ToHeader) requestEvent.getRequest().getHeader("To"));
|
response.addHeader((ToHeader) requestEvent.getRequest().getHeader("To"));
|
||||||
response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID"));
|
response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID"));
|
||||||
response.addHeader((CSeqHeader) requestEvent.getRequest().getHeader("Cseq"));
|
response.addHeader((CSeqHeader) requestEvent.getRequest().getHeader("Cseq"));
|
||||||
response.addHeader(contactHeader);
|
response.addHeader(contactHeader);
|
||||||
AllowHeader allow = this.headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE");
|
AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE");
|
||||||
AllowEventsHeader allowevents = this.headerFactory.createAllowEventsHeader("talk,hold,refer,call-info");
|
AllowEventsHeader allowevents = headerFactory.createAllowEventsHeader("talk,hold,refer,call-info");
|
||||||
response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID"));
|
response.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID"));
|
||||||
response.addHeader(allow);
|
response.addHeader(allow);
|
||||||
response.addHeader(allowevents);
|
response.addHeader(allowevents);
|
||||||
@ -425,7 +425,7 @@ public class SIPmodel implements SipListenerExt
|
|||||||
RequestEvent requestEvent;
|
RequestEvent requestEvent;
|
||||||
if ((requestEvent = evtWerdeAngerufen) != null && werdeAngerufen == true)
|
if ((requestEvent = evtWerdeAngerufen) != null && werdeAngerufen == true)
|
||||||
{
|
{
|
||||||
countWerdeAngerufen = 0;
|
countWerdeAngerufen = 0;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -594,4 +594,60 @@ public class SIPmodel implements SipListenerExt
|
|||||||
{
|
{
|
||||||
//view.getTxtArea().append("processDialogTerminated\n");
|
//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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user