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.

SIPBye.java 2.9KB

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.Level;
  9. import java.util.logging.Logger;
  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.ExpiresHeader;
  18. import javax.sip.header.FromHeader;
  19. import javax.sip.header.HeaderFactory;
  20. import javax.sip.header.MaxForwardsHeader;
  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. *
  28. * @author Jan
  29. */
  30. public class SIPBye
  31. {
  32. private Request byeRequest;
  33. private static final Logger lgBye= OhmLogger.getLogger();
  34. //Wichtig Unterscheidung Wer das Gespräch begonnen hat -> Unterschiedliche Header!!!
  35. public SIPBye(String calluser, String proxyAddress, String myName, String myIPAddress,
  36. String myTag,String proxyTag, Integer myPort, String branch, CallIdHeader callID ,
  37. Long cSequenz, MessageFactory messageFactory, ContactHeader contactHeader,
  38. AddressFactory addressFactory, HeaderFactory headerFactory )
  39. {
  40. try
  41. {
  42. Address addressLine = addressFactory.createAddress("sip:" + calluser + "@" + proxyAddress);
  43. URI requestURI = addressLine.getURI();
  44. Address addressfrom = addressFactory.createAddress("sip:" + myName + "@" + myIPAddress);
  45. FromHeader from = headerFactory.createFromHeader(addressfrom, myTag);
  46. Address addressTo = addressFactory.createAddress("sip:" + myName + "@" + proxyAddress);
  47. ToHeader to = headerFactory.createToHeader(addressTo, proxyTag); // Ergänzung TAG!!
  48. ArrayList via = new ArrayList(); //Via needs a List as input
  49. ViaHeader viaheader = headerFactory.createViaHeader(myIPAddress, myPort, "UDP", branch);
  50. via.add(viaheader);
  51. CSeqHeader cSeq = headerFactory.createCSeqHeader(cSequenz, "BYE");
  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. byeRequest = messageFactory.createRequest(requestURI, "BYE", callID, cSeq, from, to, via, maxForwards);
  56. byeRequest.addHeader(contactHeader);
  57. byeRequest.addHeader(allow);
  58. byeRequest.addHeader(expire);
  59. }
  60. catch (Exception ex)
  61. {
  62. lgBye.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
  63. }
  64. }
  65. /**
  66. * @return the byeRequest
  67. */
  68. public Request getByeRequest()
  69. {
  70. return byeRequest;
  71. }
  72. }