Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 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. ast_log(LOG_NOTICE," Jedna se o metodu %*.s ", (int)rdata->msg_info.msg->line.req.method.name.slen, rdata->msg_info.msg->line.req.method.name.ptr);
  47.  
  48. uri_from = pjsip_uri_get_uri(rdata->msg_info.from->uri);
  49. uri_to = pjsip_uri_get_uri(rdata->msg_info.to->uri);
  50.  
  51. // MUSIM POUZIT slen, viz moje poznamky, jinak neopravneny pristup do pameti
  52.  
  53. pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, uri_from, from_buffer, sizeof(from_buffer)-1);
  54. pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, uri_to, to_buffer, sizeof(to_buffer)-1);
  55.  
  56. if(from_buffer!=NULL)
  57. {
  58. ast_log(LOG_NOTICE,"Parametr From: ma hodnotu %s \n",from_buffer);
  59. if(to_buffer!=NULL)
  60. {
  61. ast_log(LOG_NOTICE,"Parametr To: ma hodnotu %s \n",to_buffer);
  62. if(((int)rdata->msg_info.cid->id.slen)!=0)
  63. {
  64. ast_log(LOG_NOTICE,"Parametr Call-ID: ma hodnotu %*.s \n",(int)rdata->msg_info.cid->id.slen, rdata->msg_info.cid->id.ptr);
  65. }
  66. else
  67. {
  68. ast_log(LOG_NOTICE,"Zprava neobsahuje parametr Call-ID!");
  69. }
  70. }
  71. else
  72. {
  73. ast_log(LOG_NOTICE,"Zprava neobsahuje parametr To!");
  74. }
  75. }
  76. else
  77. {
  78. ast_log(LOG_NOTICE,"Zprava neobsahuje parametr From!");
  79. }
  80.  
  81.  
  82.  
  83.  
  84.  
  85. // Detekce RFC 2543 INVITE
  86. if(((int)rdata->msg_info.via->branch_param.slen)!=0)
  87. {
  88.  
  89. 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);
  90. if(((int)rdata->msg_info.from->tag.slen))
  91. {
  92. ast_log(LOG_NOTICE,"Parametr Tag ma hodnotu %*.s \n",(int)rdata->msg_info.from->tag.slen, rdata->msg_info.from->tag.ptr);
  93.  
  94. }
  95. else
  96. {
  97. ast_log(LOG_NOTICE,"Chybi parametr Tag! Zprava dle RFC 2543. \n");
  98. }
  99.  
  100. }
  101. else
  102. {
  103. ast_log(LOG_NOTICE,"Chybi parametr Branch! Zprava dle RFC 2543. \n");
  104. }
  105.  
  106. //Detekce NCL --- PJSIP odregistruje ucastnika pokud zaznamena NCL a dalsi hovory neprobehnou!
  107.  
  108.  
  109. if((rdata->msg_info.clen->len))
  110. {
  111. ast_log(LOG_NOTICE,"Parametr Content-Length ma hodnotu %d \n",rdata->msg_info.clen->len);
  112. }
  113. else
  114. {
  115. if((rdata->msg_info.clen->len)==0)
  116. {
  117. ast_log(LOG_NOTICE,"Parametr Content-Length ma hodnotu %d \n",rdata->msg_info.clen->len);
  118. }
  119. else
  120. {
  121. ast_log(LOG_NOTICE,"Chybna hodnota parametru Content-Length!\n");
  122. }
  123.  
  124. }
  125.  
  126. return PJ_SUCCESS;
  127. }
  128.  
  129.  
  130.  
  131. static pjsip_module res_modul = {
  132. .name = { "Test module", 11 },
  133. .priority = PJSIP_MOD_PRIORITY_APPLICATION ,
  134. .on_rx_request = logging_on_rx_msg,
  135. .on_rx_response = logging_on_rx_msg,
  136.  
  137. };
  138.  
  139.  
  140. static int load_module(void)
  141. {
  142. //CHECK_PJSIP_MODULE_LOADED();
  143. ast_log(AST_LOG_WARNING, "Success in loading!");
  144. ast_sip_register_service(&res_modul);
  145. return AST_MODULE_LOAD_SUCCESS;
  146. }
  147.  
  148. static int unload_module(void)
  149. {
  150. ast_sip_unregister_service(&res_modul);
  151. return 0;
  152. }
  153.  
  154. AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Test module",
  155. .requires = "res_pjsip",
  156. .load = load_module,
  157. .unload = unload_module,
  158. .load_pri = 50,
  159. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement