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.

SIP180Ringing.java 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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.logging.Level;
  8. import java.util.logging.Logger;
  9. import javax.sip.RequestEvent;
  10. import javax.sip.header.CSeqHeader;
  11. import javax.sip.header.CallIdHeader;
  12. import javax.sip.header.ContactHeader;
  13. import javax.sip.header.FromHeader;
  14. import javax.sip.header.HeaderFactory;
  15. import javax.sip.header.ToHeader;
  16. import javax.sip.header.ViaHeader;
  17. import javax.sip.message.MessageFactory;
  18. import javax.sip.message.Response;
  19. import logger.OhmLogger;
  20. /**
  21. * Erstellt den Ringing Header, wird als zweites gesendet sobald man einen Anruf bekommt
  22. * Wiederholen bis User das Telefon abnimmt oder nichtmehr angerufen wird
  23. *
  24. * @author Jan
  25. */
  26. public class SIP180Ringing
  27. {
  28. private Response responseRing;
  29. public static final Logger lgRing = OhmLogger.getLogger();
  30. //private SubmissionPublisher<Integer> publisherZahl;
  31. public SIP180Ringing(RequestEvent requestEvent, String myTag, ContactHeader contact,
  32. HeaderFactory headerFactory, MessageFactory messageFactory)
  33. {
  34. try
  35. {
  36. responseRing = messageFactory.createResponse(180, requestEvent.getRequest());
  37. responseRing.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via"));
  38. responseRing.addHeader((FromHeader) requestEvent.getRequest().getHeader("From"));
  39. //persönlichen Tag muss beim To-Header ergänzt werden
  40. ToHeader tempTo = ((ToHeader) requestEvent.getRequest().getHeader("To"));
  41. tempTo.setTag(myTag);
  42. responseRing.addHeader(tempTo);
  43. responseRing.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID"));
  44. responseRing.addHeader((CSeqHeader) requestEvent.getRequest().getHeader("Cseq"));
  45. responseRing.addHeader(contact);
  46. responseRing.addHeader(headerFactory.createSupportedHeader("replace,path,timer"));
  47. responseRing.addHeader(headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"));
  48. responseRing.addHeader(headerFactory.createAllowEventsHeader("talk,hold,refer")); //für was wird er gebraucht
  49. lgRing.info("180-Ringing Header erstellt");
  50. }
  51. catch (Exception ex)
  52. {
  53. lgRing.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
  54. }
  55. }
  56. /**
  57. * @return the responseRing
  58. */
  59. public Response getResponseRing()
  60. {
  61. return responseRing;
  62. }
  63. }