Guest User

opensips.cfg_logic

a guest
Oct 31st, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. route{
  2.  
  3. route("SANITY_CHECKS");
  4. route("MATCH_DIALOG");
  5. $avp(server_ip)="XXX.XXX.X.XXX";
  6. $avp(term-ip) = $Ri;
  7. $avp(source-ip)= $si; #source ip address of message
  8.  
  9. $avp(source-port)=$sp; # source port of message
  10. $avp(src_ipz_ip) = $Ri;
  11. $avp(dest-ip)=$od;
  12. $avp(dest-port)=$op;
  13. $avp(dst_type) = "CARRIER";
  14. $avp(use-rtpproxy)="YES";
  15. $avp(ruri)=$rU; #username in request URI
  16.  
  17. xlog("L_INFO","[$time(%Y-%m-%d %H:%M:%S)] Incoming Request CI:$ci RM:$rm FU:$fU TU:$tU SI:$avp(source-ip) SP:$avp(source-port) PC:$proto TE:$avp(term-ip) \n");
  18.  
  19. if(method=="INVITE") {
  20. route("PROCESS_INVITE");
  21. } else if(method=="CANCEL") {
  22. route("PROCESS_CANCEL");
  23. } else if(method=="ACK") {
  24. route("PROCESS_ACK");
  25. } else if(method=="OPTIONS") {
  26. route("PROCESS_OPTIONS");
  27. } else if(method=="REGISTER"){
  28. route("PROCESS_REGISTER");
  29. } else {
  30. sl_send_reply("501", "Method is not implemented"); ### From here that funny 501 is coming....
  31. }
  32. exit;
  33. }
  34.  
  35. route[PROCESS_INVITE] {
  36.  
  37. route("SETCDR");
  38. if(t_check_trans()) {
  39. drop();
  40. }
  41. route("CHECK_NAT");
  42. create_dialog();
  43. do_accounting("aaa","cdr|failed");
  44. route("REALY_ROUTE");
  45. exit;
  46. }
  47.  
  48. route[RELAY_ROUTE] {
  49. if(is_method("INVITE|UPDATE")) {
  50. xlog("L_INFO","CI:$ci In Relay Route RU:$ru DU:$du Tu:$tu TU:$tU CT:$ct\n");
  51. if(!has_totag() && is_method("INVITE") && !isflagset(15)) {
  52. xlog("L_INFO","CI:$ci Topology_Hiding Call\n");
  53. setflag(15);
  54. topology_hiding("UC");
  55. # record_route();
  56.  
  57.  
  58. }
  59. if($avp(use-rtpproxy)=="YES") {
  60. route(PROCESS_RTPPROXY_OFFER);
  61. }
  62. xlog("L_INFO","CI:$ci Routing Call IP:$avp(dest-ip) PORT:$avp(dest-port)\n");
  63.  
  64. $avp(call_status)="Failed";
  65. t_on_branch("DEFAULT_BRANCH_ROUTE");
  66. t_on_reply("DEFAULT_REPLY_ROUTE");
  67. }
  68.  
  69. xlog("L_INFO","DAILOG STATUS:::: $DLG_end_reason $DLG_did $DLG_status $DLG_count\n");
  70.  
  71. # record_route();
  72. if (!t_relay()) {
  73. sl_reply_error();
  74. }
  75. exit;
  76. }
  77.  
  78. route[MATCH_DIALOG] {
  79.  
  80. xlog("L_INFO",":::::DAILOG STATUS:::: $rm: $DLG_end_reason $DLG_did $DLG_status $DLG_count\n"); #HERE I AM GETTING most values null
  81. if(has_totag() && is_method("INVITE|ACK|BYE|UPDATE|REFER|PRACK|INFO") ) {
  82. xlog("L_INFO","INSIDE MATCH_DIALOG :::: $rm\n");
  83. # loose_route();
  84. xlog(" found match request to a dialog \n");
  85. if(topology_hiding_match()) { #THIS CONDITIONS FAILS FOR ALL REQUESTS
  86. if(is_method("BYE")) {
  87. rtpproxy_unforce();
  88. }
  89. route("RELAY_ROUTE");
  90. }
  91. }
  92. }
  93.  
  94. route[PROCESS_ACK] {
  95. xlog("L_INFO","IN PROCESS ACK\n");
  96. if(t_check_trans()) {
  97. t_relay();
  98. }
  99. exit;
  100. }
Add Comment
Please, Sign In to add comment