You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SIPACK.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package model;
  7. import java.util.ArrayList;
  8. import java.util.logging.Level;
  9. import java.util.logging.Logger;
  10. import javax.sip.ResponseEvent;
  11. import javax.sip.address.Address;
  12. import javax.sip.address.AddressFactory;
  13. import javax.sip.address.URI;
  14. import javax.sip.header.AllowHeader;
  15. import javax.sip.header.CSeqHeader;
  16. import javax.sip.header.CallIdHeader;
  17. import javax.sip.header.FromHeader;
  18. import javax.sip.header.HeaderFactory;
  19. import javax.sip.header.MaxForwardsHeader;
  20. import javax.sip.header.SupportedHeader;
  21. import javax.sip.header.ToHeader;
  22. import javax.sip.header.ViaHeader;
  23. import javax.sip.message.MessageFactory;
  24. import javax.sip.message.Request;
  25. import logger.OhmLogger;
  26. /**
  27. * Erstellt den Trying Header, wird als erstes gesendet sobald man einen Anruf bekommt
  28. * @author Jan
  29. */
  30. public class SIPACK
  31. {
  32. private Request ackRequest;
  33. private static final Logger lgTry = OhmLogger.getLogger();
  34. public SIPACK(MessageFactory messageFactory, ResponseEvent responseEvent, AddressFactory addressFactory, String sipaddresse, String proxyaddresse, String myname,
  35. HeaderFactory headerFactory, long cSeq )
  36. {
  37. try
  38. { //
  39. ArrayList via = new ArrayList();
  40. ViaHeader viaheader = (ViaHeader) responseEvent.getResponse().getHeader("Via");
  41. via.add(viaheader);
  42. FromHeader from = (FromHeader) responseEvent.getResponse().getHeader("From");
  43. ToHeader to = (ToHeader) responseEvent.getResponse().getHeader("To");
  44. CallIdHeader callID = (CallIdHeader) responseEvent.getResponse().getHeader("Call-ID");
  45. MaxForwardsHeader maxForwardsHeader = headerFactory.createMaxForwardsHeader(70);
  46. Address addressto = addressFactory.createAddress("sip:" + myname+ "@" + proxyaddresse);
  47. URI requestURI = addressto.getURI();
  48. CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(cSeq, "ACK");
  49. SupportedHeader supp = headerFactory.createSupportedHeader("replace,path,timer"); //nachschauen
  50. AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE");
  51. //ackRequest.addHeader(supp);
  52. //ackRequest.addHeader(allow);
  53. ackRequest = messageFactory.createRequest(requestURI, "ACK", callID, cSeqHeader, from, to, via, maxForwardsHeader);
  54. lgTry.info("100-Trying Header erstellt");
  55. }
  56. catch (Exception ex)
  57. {
  58. lgTry.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
  59. }
  60. }
  61. /**
  62. * @return the ackRequest
  63. */
  64. public Request getAckRequest()
  65. {
  66. return ackRequest;
  67. }
  68. /**
  69. * @return the ackRequest
  70. */
  71. }