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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. /**
  8. *
  9. * @author Jan
  10. */
  11. public class SIP180Ringing
  12. {/*
  13. private RequestEvent evtubergabe;
  14. private ExecutorService threadring;
  15. private boolean run;
  16. private Response responsering;
  17. private MessageFactory messageFactory;
  18. private HeaderFactory headerFactory;
  19. private String myTag;
  20. private String proxyTag;
  21. public static final Logger lg = OhmLogger.getLogger();
  22. //private SubmissionPublisher<Integer> publisherZahl;
  23. public SIP180Ringing(RequestEvent evtubergabe, String myTag, ContactHeader contact)
  24. {
  25. this.evtubergabe = evtubergabe;
  26. threadring = Executors.newSingleThreadExecutor();
  27. try
  28. {
  29. responsering = this.messageFactory.createResponse(180, evtubergabe.getRequest());
  30. responsering.addHeader((ViaHeader) evtubergabe.getRequest().getHeader("Via"));
  31. responsering.addHeader((FromHeader) evtubergabe.getRequest().getHeader("From"));
  32. AllowHeader allow = this.headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE");
  33. //Bei Ringing muss persönlicher Tag ergänzt werden
  34. ToHeader temptoring = (ToHeader) evtubergabe.getRequest().getHeader("To");
  35. proxyTag = temptoring.getTag();
  36. temptoring.setTag(String.valueOf(this.myTag));
  37. responsering.addHeader(temptoring);
  38. long cSequenz = ((CSeqHeader) evtubergabe.getRequest().getHeader("Cseq")).getSeqNumber();
  39. responsering.addHeader((CSeqHeader) evtubergabe.getRequest().getHeader("Cseq"));
  40. responsering.addHeader(contact);
  41. responsering.addHeader(allow);
  42. AllowEventsHeader allowevent = this.headerFactory.createAllowEventsHeader("talk,hold,refer,call-info");// für was gebraucht
  43. responsering.addHeader(allowevent);
  44. lg.info("Ringing Header erfolgreich erstellt");
  45. }
  46. catch (Exception ex)
  47. {
  48. lg.info("Fehler bei erstellen des Ringing Headers");
  49. lg.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
  50. }
  51. }
  52. public void start()
  53. {
  54. run = true;
  55. threadring.submit(this);
  56. }
  57. public void stop()
  58. {
  59. run = false;
  60. }
  61. @Override
  62. public void run()
  63. {
  64. while (run)
  65. {
  66. try
  67. {
  68. this.sipProvider.sendResponse(responsering);
  69. }
  70. catch (SipException ex)
  71. {
  72. Logger.getLogger(SIP180Ringing.class.getName()).log(Level.SEVERE, null, ex);
  73. }
  74. try
  75. {
  76. sleep(1000);
  77. }
  78. catch (Exception e)
  79. {
  80. }
  81. }
  82. }
  83. */
  84. }