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.

SIPInvite.java 3.1KB

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.sdp.SessionDescription;
  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.ContactHeader;
  18. import javax.sip.header.ContentTypeHeader;
  19. import javax.sip.header.ExpiresHeader;
  20. import javax.sip.header.FromHeader;
  21. import javax.sip.header.HeaderFactory;
  22. import javax.sip.header.MaxForwardsHeader;
  23. import javax.sip.header.ToHeader;
  24. import javax.sip.header.ViaHeader;
  25. import javax.sip.message.MessageFactory;
  26. import javax.sip.message.Request;
  27. import logger.OhmLogger;
  28. /**
  29. *
  30. * @author Jan
  31. */
  32. public class SIPInvite
  33. {
  34. private Request inviterequest;
  35. private static final Logger lgInvite = OhmLogger.getLogger();
  36. public SIPInvite(String sipaddresse, String proxyaddresse, String myIPAddress,
  37. int myPort,
  38. String myTag, int branch, CallIdHeader callID, long cSequenz,
  39. AddressFactory addressFactory, SessionDescription sessionDescription,
  40. HeaderFactory headerFactory, MessageFactory messageFactory, ContactHeader contactHeader)
  41. {
  42. try
  43. {
  44. Address addressto = addressFactory.createAddress("sip:" + sipaddresse + "@" + proxyaddresse);
  45. ToHeader to = headerFactory.createToHeader(addressto, null); // Integer.toString(myTag) address + myTag
  46. URI requestURI = addressto.getURI();
  47. FromHeader from = headerFactory.createFromHeader(addressto, String.valueOf(myTag)); //this.contactAddress
  48. ArrayList via = new ArrayList(); //Via needs a List as input
  49. ViaHeader viaheader = headerFactory.createViaHeader(myIPAddress, myPort, "UDP", String.valueOf(branch));
  50. via.add(viaheader);
  51. CSeqHeader cSeq = headerFactory.createCSeqHeader(cSequenz, "INVITE");
  52. MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(70);
  53. AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE");
  54. ExpiresHeader expire = headerFactory.createExpiresHeader(3600); //int value
  55. inviterequest = messageFactory.createRequest(requestURI, "INVITE", callID, cSeq, from, to, via, maxForwards);
  56. inviterequest.addHeader(contactHeader);
  57. inviterequest.addHeader(allow);
  58. inviterequest.addHeader(expire);
  59. ContentTypeHeader content = headerFactory.createContentTypeHeader("application", "sdp");
  60. inviterequest.addHeader(content);
  61. inviterequest.setContent(sessionDescription, content);
  62. lgInvite.info("Invitation Header erstellt");
  63. }
  64. catch (Exception ex)
  65. {
  66. lgInvite.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
  67. }
  68. }
  69. /**
  70. * @return the inviterequest
  71. */
  72. public Request getInviterequest()
  73. {
  74. return inviterequest;
  75. }
  76. }