Kamailio.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import java.lang.*;
  2. import java.io.*;
  3. import org.siprouter.*;
  4. import org.siprouter.NativeInterface.*;
  5. public class Kamailio extends NativeMethods
  6. {
  7. static
  8. {
  9. System.load("/opt/kamailio/lib/kamailio/modules/app_java.so");
  10. }
  11. /* Constructor. Do not remove !!! */
  12. public Kamailio()
  13. {
  14. }
  15. public int child_init(int rank)
  16. {
  17. switch (rank)
  18. {
  19. case Ranks.PROC_MAIN:
  20. LM_INFO("We're at PROC_MAIN\n");
  21. break;
  22. case Ranks.PROC_TIMER:
  23. LM_INFO("We're at PROC_TIMER\n");
  24. break;
  25. case Ranks.PROC_RPC:
  26. LM_INFO("We're at PROC_RPC/PROC_FIFO\n");
  27. break;
  28. case Ranks.PROC_TCP_MAIN:
  29. LM_INFO("We're at PROC_TCP_MAIN\n");
  30. break;
  31. case Ranks.PROC_UNIXSOCK:
  32. LM_INFO("We're at PROC_UNIXSOCK\n");
  33. break;
  34. case Ranks.PROC_ATTENDANT:
  35. LM_INFO("We're at PROC_ATTENDANT\n");
  36. break;
  37. case Ranks.PROC_INIT:
  38. LM_INFO("We're at PROC_INIT\n");
  39. break;
  40. case Ranks.PROC_NOCHLDINIT:
  41. LM_INFO("We're at PROC_NOCHLDINIT/PROC_MIN\n");
  42. break;
  43. case Ranks.PROC_SIPINIT:
  44. LM_INFO("We're at PROC_SIPINIT\n");
  45. break;
  46. case Ranks.PROC_SIPRPC:
  47. LM_INFO("We're at PROC_SIPRPC\n");
  48. break;
  49. }
  50. return 1;
  51. }
  52. public int TestMethod()
  53. {
  54. LM_INFO(String.format("Msg Type: %s\n", SipMsg.getMsgType()));
  55. IPPair src = SipMsg.getSrcAddress();
  56. if (src != null)
  57. {
  58. LM_INFO(String.format("src address=%s, src port=%d\n", src.ip, src.port));
  59. }
  60. else
  61. {
  62. LM_ERR("IPPair src is null!");
  63. }
  64. IPPair dst = SipMsg.getDstAddress();
  65. if (dst != null)
  66. {
  67. LM_INFO(String.format("dst address=%s, dst port=%d\n", dst.ip, dst.port));
  68. }
  69. else
  70. {
  71. LM_ERR("IPPair dst is null!");
  72. }
  73. LM_INFO(String.format("buffer:\n%s\n", SipMsg.getBuffer().trim()));
  74. SipMsg msg = SipMsg.ParseSipMsg();
  75. if (msg != null)
  76. {
  77. LM_INFO("msg:\n");
  78. LM_INFO(String.format("\tid=%d\n", msg.id));
  79. LM_INFO(String.format("\tpid=%d\n", msg.pid));
  80. LM_INFO(String.format("\teoh='%s'\n", msg.eoh));
  81. LM_INFO(String.format("\tunparsed='%s'\n", msg.unparsed));
  82. LM_INFO(String.format("\tbuf='%s'\n", msg.buf));
  83. LM_INFO(String.format("\tlen=%d\n", msg.len));
  84. LM_INFO(String.format("\tnew_uri='%s'\n", msg.new_uri));
  85. LM_INFO(String.format("\tdst_uri='%s'\n", msg.dst_uri));
  86. LM_INFO(String.format("\tparsed_uri_ok=%d\n", msg.parsed_uri_ok));
  87. LM_INFO(String.format("\tparsed_orig_ruri_ok=%d\n", msg.parsed_orig_ruri_ok));
  88. LM_INFO(String.format("\tadd_to_branch_s='%s'\n", msg.add_to_branch_s));
  89. LM_INFO(String.format("\tadd_to_branch_len=%d\n", msg.add_to_branch_len));
  90. LM_INFO(String.format("\thash_index=%d\n", msg.hash_index));
  91. LM_INFO(String.format("\tmsg_flags=%d\n", msg.msg_flags));
  92. LM_INFO(String.format("\tset_global_address='%s'\n", msg.set_global_address));
  93. LM_INFO(String.format("\tset_global_port='%s'\n", msg.set_global_port));
  94. }
  95. else
  96. {
  97. LM_ERR("SipMsg msg is null!\n");
  98. }
  99. return 1;
  100. }
  101. }