diff --git a/src/model/SIPACK.java b/src/model/SIPACK.java new file mode 100644 index 0000000..f0d6aa9 --- /dev/null +++ b/src/model/SIPACK.java @@ -0,0 +1,81 @@ +/* + * 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.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.sip.ResponseEvent; +import javax.sip.address.Address; +import javax.sip.address.AddressFactory; +import javax.sip.address.URI; +import javax.sip.header.AllowHeader; +import javax.sip.header.CSeqHeader; +import javax.sip.header.CallIdHeader; +import javax.sip.header.FromHeader; +import javax.sip.header.HeaderFactory; +import javax.sip.header.MaxForwardsHeader; +import javax.sip.header.SupportedHeader; +import javax.sip.header.ToHeader; +import javax.sip.header.ViaHeader; +import javax.sip.message.MessageFactory; +import javax.sip.message.Request; +import logger.OhmLogger; + +/** + * Erstellt den Trying Header, wird als erstes gesendet sobald man einen Anruf bekommt + * @author Jan + */ +public class SIPACK +{ + private Request ackRequest; + private static final Logger lgTry = OhmLogger.getLogger(); + + public SIPACK(MessageFactory messageFactory, ResponseEvent responseEvent, AddressFactory addressFactory, String sipaddresse, String proxyaddresse, String myname, + HeaderFactory headerFactory, long cSeq ) + { + try + { // + ArrayList via = new ArrayList(); + ViaHeader viaheader = (ViaHeader) responseEvent.getResponse().getHeader("Via"); + via.add(viaheader); + FromHeader from = (FromHeader) responseEvent.getResponse().getHeader("From"); + ToHeader to = (ToHeader) responseEvent.getResponse().getHeader("To"); + CallIdHeader callID = (CallIdHeader) responseEvent.getResponse().getHeader("Call-ID"); + MaxForwardsHeader maxForwardsHeader = headerFactory.createMaxForwardsHeader(70); + + Address addressto = addressFactory.createAddress("sip:" + myname+ "@" + proxyaddresse); + URI requestURI = addressto.getURI(); + CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(cSeq, "ACK"); + + SupportedHeader supp = headerFactory.createSupportedHeader("replace,path,timer"); //nachschauen + AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"); + //ackRequest.addHeader(supp); + //ackRequest.addHeader(allow); + + ackRequest = messageFactory.createRequest(requestURI, "ACK", callID, cSeqHeader, from, to, via, maxForwardsHeader); + lgTry.info("100-Trying Header erstellt"); + } + catch (Exception ex) + { + lgTry.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex); + } + + } + + /** + * @return the ackRequest + */ + public Request getAckRequest() + { + return ackRequest; + } + + /** + * @return the ackRequest + */ + +}