Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1.  
  2.  
  3.  
  4. #ifndef AST_MODULE
  5. #define AST_MODULE
  6. #endif
  7. #include "asterisk.h"
  8. #include <pjsip.h>
  9. #include <pjsip_ua.h>
  10. #include <pjlib.h>
  11.  
  12. #include "asterisk/res_pjsip.h"
  13. #include "asterisk/res_pjsip_session.h"
  14. #include "asterisk/res_hep.h"
  15. #include "asterisk/module.h"
  16. #include "asterisk/netsock2.h"
  17. #include <pjsip.h>
  18. #include <pjmedia.h>
  19. #include <pjmedia-codec.h>
  20. #include <pjsip_ua.h>
  21. #include <pjsip_simple.h>
  22. #include <pjlib-util.h>
  23.  
  24.  
  25.  
  26.  
  27.  
  28. static pj_bool_t logging_on_rx_msg(pjsip_rx_data *rdata);
  29.  
  30. static pj_bool_t logging_on_rx_msg(pjsip_rx_data *rdata)
  31. {
  32. char *paket;
  33.  
  34. // Detekce Missing Required Headers
  35. pjsip_uri *uri_from = NULL;
  36. pjsip_uri *uri_to = NULL;
  37. char from_buffer[1024];
  38. char to_buffer[1024];
  39.  
  40. ast_log(LOG_NOTICE,"WHY DOESNT THIS LINE GET PRINTED");
  41.  
  42.  
  43. paket = rdata->pkt_info.packet;
  44.  
  45. ast_log(LOG_NOTICE,"Jedna se o metodu %.8s \n",paket);
  46.  
  47. uri_from = pjsip_uri_get_uri(rdata->msg_info.from->uri);
  48. uri_to = pjsip_uri_get_uri(rdata->msg_info.to->uri);
  49.  
  50. // MUSIM POUZIT slen, viz moje poznamky, jinak neopravneny pristup do pameti
  51.  
  52. pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, uri_from, from_buffer, sizeof(from_buffer)-1);
  53. pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, uri_to, to_buffer, sizeof(to_buffer)-1);
  54.  
  55. if(from_buffer!=NULL)
  56. {
  57. ast_log(LOG_NOTICE,"Parametr From: ma hodnotu %s \n",from_buffer);
  58. if(to_buffer!=NULL)
  59. {
  60. ast_log(LOG_NOTICE,"Parametr To: ma hodnotu %s \n",to_buffer);
  61. if(((int)rdata->msg_info.cid->id.slen)!=0)
  62. {
  63. ast_log(LOG_NOTICE,"Parametr Call-ID: ma hodnotu %*.s \n",(int)rdata->msg_info.cid->id.slen, rdata->msg_info.cid->id.ptr);
  64. }
  65. else
  66. {
  67. ast_log(LOG_NOTICE,"Zprava neobsahuje parametr Call-ID!");
  68. }
  69. }
  70. else
  71. {
  72. ast_log(LOG_NOTICE,"Zprava neobsahuje parametr To!");
  73. }
  74. }
  75. else
  76. {
  77. ast_log(LOG_NOTICE,"Zprava neobsahuje parametr From!");
  78. }
  79.  
  80.  
  81.  
  82.  
  83.  
  84. // Detekce RFC 2543 INVITE
  85. if(((int)rdata->msg_info.via->branch_param.slen)!=0)
  86. {
  87.  
  88. ast_log(LOG_NOTICE,"Parametr Branch ma hodnotu %*.s \n",(int)rdata->msg_info.via->branch_param.slen, rdata->msg_info.via->branch_param.ptr);
  89. if(((int)rdata->msg_info.from->tag.slen))
  90. {
  91. ast_log(LOG_NOTICE,"Parametr Tag ma hodnotu %*.s \n",(int)rdata->msg_info.from->tag.slen, rdata->msg_info.from->tag.ptr);
  92.  
  93. }
  94. else
  95. {
  96. ast_log(LOG_NOTICE,"Chybi parametr Tag! Zprava dle RFC 2543. \n");
  97. }
  98.  
  99. }
  100. else
  101. {
  102. ast_log(LOG_NOTICE,"Chybi parametr Branch! Zprava dle RFC 2543. \n");
  103. }
  104.  
  105. //Detekce NCL --- PJSIP odregistruje ucastnika pokud zaznamena NCL a dalsi hovory neprobehnou!
  106.  
  107.  
  108. if((rdata->msg_info.clen->len))
  109. {
  110. ast_log(LOG_NOTICE,"Parametr Content-Length ma hodnotu %d \n",rdata->msg_info.clen->len);
  111. }
  112. else
  113. {
  114. if((rdata->msg_info.clen->len)==0)
  115. {
  116. ast_log(LOG_NOTICE,"Parametr Content-Length ma hodnotu %d \n",rdata->msg_info.clen->len);
  117. }
  118. else
  119. {
  120. ast_log(LOG_NOTICE,"Chybna hodnota parametru Content-Length!\n");
  121. }
  122.  
  123. }
  124.  
  125. return PJ_SUCCESS;
  126. }
  127.  
  128.  
  129.  
  130. static pjsip_module res_modul = {
  131. .name = { "Test module", 11 },
  132. .priority = PJSIP_MOD_PRIORITY_APPLICATION ,
  133. .on_rx_request = logging_on_rx_msg,
  134. .on_rx_response = logging_on_rx_msg,
  135.  
  136. };
  137.  
  138.  
  139. static int load_module(void)
  140. {
  141. //CHECK_PJSIP_MODULE_LOADED();
  142. ast_log(AST_LOG_WARNING, "Success in loading!");
  143. ast_sip_register_service(&res_modul);
  144. return AST_MODULE_LOAD_SUCCESS;
  145. }
  146.  
  147. static int unload_module(void)
  148. {
  149. ast_sip_unregister_service(&res_modul);
  150. return 0;
  151. }
  152.  
  153. AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Test module",
  154. .requires = "res_pjsip",
  155. .load = load_module,
  156. .unload = unload_module,
  157. .load_pri = 50,
  158. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement