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.

SIPRegister.java 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 SIPRegister
  31. {
  32. private static final Logger lgRegister = OhmLogger.getLogger();
  33. private Request request;
  34. public SIPRegister(String proxyAddress, String myTag, String myIPAddress, int myPort,
  35. int branch, AddressFactory addressFactory, HeaderFactory headerFactory,
  36. MessageFactory messageFactory, ContactHeader contactHeader, CallIdHeader callID)
  37. {
  38. try
  39. {
  40. Address addressto = addressFactory.createAddress("sip:" + proxyAddress); //evtl. mit Port: sip:192.168.100.11:5060
  41. ToHeader to = headerFactory.createToHeader(addressto, null); // Integer.toString(myTag) address + myTag
  42. URI requestURI = addressto.getURI();
  43. FromHeader from = headerFactory.createFromHeader(addressto, myTag); //this.contactAddress
  44. ArrayList via = new ArrayList(); //Via needs a List as input
  45. ViaHeader viaheader = headerFactory.createViaHeader(myIPAddress, myPort, "UDP", String.valueOf(branch));
  46. via.add(viaheader);
  47. CSeqHeader cSeq = headerFactory.createCSeqHeader(1L, "REGISTER");
  48. MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(70);
  49. AllowHeader allow = headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE");
  50. ExpiresHeader expire = headerFactory.createExpiresHeader(3600); //int value
  51. request = messageFactory.createRequest(requestURI, "REGISTER", callID, cSeq, from, to, via, maxForwards);
  52. request.addHeader(contactHeader);
  53. request.addHeader(allow);
  54. request.addHeader(expire);
  55. lgRegister.info("Register Header erstellt");
  56. }
  57. catch (Exception ex)
  58. {
  59. lgRegister.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
  60. }
  61. }
  62. /**
  63. * @return the request
  64. */
  65. public Request getRequest()
  66. {
  67. return request;
  68. }
  69. }