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.0KB

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