Pastebin is 300% more awesome when you are logged in. Sign Up, it's FREE!
Guest

siproute

By: a guest on Feb 28th, 2013  |  syntax: Python  |  size: 6.36 KB  |  hits: 37  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. debug=3            # debug level (cmd line: -dddddddddd)
  2. fork=yes
  3. log_stderror=no    # (cmd line: -E)
  4. log_facility=LOG_LOCAL0
  5.  
  6. #/* Uncomment these lines to enter debugging mode
  7. #fork=no
  8. #log_stderror=yes
  9. #*/
  10.  
  11. check_via=no    # (cmd. line: -v)
  12. dns=no          # (cmd. line: -r)
  13. rev_dns=no      # (cmd. line: -R)
  14. children=4
  15.  
  16.  
  17. #change
  18. listen=udp:10.0.0.10:5060
  19. listen=udp:10.0.0.10:5061
  20. listen=udp:10.0.0.10:5062
  21.  
  22. alias=msg1.domain.me
  23. sip_warning=yes
  24.  
  25. # ------------------ module loading ----------------------------------
  26.  
  27.  
  28. mpath="/usr/lib64/opensips/modules/"
  29. loadmodule "sl.so"
  30. loadmodule "tm.so"
  31. loadmodule "rr.so"
  32. loadmodule "maxfwd.so"
  33. loadmodule "textops.so"
  34. loadmodule "mi_fifo.so"
  35. loadmodule "dialog.so"
  36. loadmodule "uac_auth.so"
  37. loadmodule "uac.so"
  38. loadmodule "db_mysql.so"
  39. loadmodule "acc.so"
  40. loadmodule "exec.so"
  41. loadmodule "xmpp.so"
  42.  
  43.  
  44. # RR
  45. modparam("rr", "append_fromtag", 1)
  46.  
  47. # UAC
  48. modparam("uac", "restore_mode", "none")
  49.  
  50. # ----------------- setting module-specific parameters ---------------
  51.  
  52. #change
  53. modparam("xmpp", "sip_domain", "msg1.domain.me")
  54. modparam("xmpp", "xmpp_domain", "msg1.domain.me")
  55. modparam("xmpp", "xmpp_host", "msg1.domain.me")
  56. modparam("xmpp", "xmpp_port", 5275)
  57. modparam("xmpp", "xmpp_password", "password")
  58. modparam("xmpp", "backend", "component")
  59.  
  60. modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
  61.  
  62. modparam("acc", "early_media", 1)
  63. modparam("acc", "report_cancels", 1)
  64. modparam("acc", "db_flag", 2)
  65.  
  66.  
  67. #change
  68. modparam("acc", "db_url", "mysql://root:password@localhost/asterisk")
  69. modparam("acc", "db_table_acc",'ast_cdr')
  70. modparam("acc", "db_extra", "src=$avp(src); dst=$avp(dst); channel=$avp(channel); dstchannel=$avp(dstchannel); accountcode=$avp(accountcode); userfield=$avp(userfield);clid=$avp(callid)")
  71. modparam("acc", "acc_time_column", "calldate")
  72. modparam("acc", "acc_sip_code_column", "lastapp")
  73. modparam("acc", "acc_callid_column", "lastdata")
  74. modparam("acc", "acc_method_column", "dcontext")
  75. modparam("acc", "acc_sip_reason_column", "disposition")
  76. modparam("acc", "log_extra", "src=$avp(src); dst=$avp(dst); channel=$avp(channel); dstchannel=$avp(dstchannel); accountcode=$avp(accountcode); userfield=$avp(userfield);content=$avp(content);callid=$avp(callid)")
  77. modparam("acc", "log_flag", 2)
  78. modparam("acc", "log_level", 2)
  79. modparam("acc", "log_facility", "LOG_LOCAL0")
  80.  
  81.  
  82. # -------------------------  request routing logic -------------------
  83.  
  84. route {
  85.         record_route();
  86.         # initial sanity checks -- messages with max_forwards==0, or excessively long requests
  87.         if (!mf_process_maxfwd_header("10")) {
  88.                 sl_send_reply("483","Too Many Hops");
  89.                 exit;
  90.         };
  91.  
  92.         if (!is_method("MESSAGE")) {
  93.                 exit;
  94.         }
  95.        
  96.         if (msg:len >=  2048) {
  97.                 sl_send_reply("513", "Message too big");
  98.                 exit;
  99.         };
  100.  
  101.         ### absorb retransmissions ###
  102.         if (!t_newtran()) {
  103.                 sl_reply_error();
  104.                 return;
  105.         } else {
  106.                 xlog("[CORE] [$rm] Created new transaction [$si:$sp]\n");
  107.         }
  108.  
  109.         setflag(2);
  110.  
  111.         switch($rp) {
  112.  
  113.                 case 5060:
  114.                         xlog("######################################");
  115.                         xlog("     FROM EXTERNAL SENDING TO ILC- $si - $rp");
  116.                         xlog("     [PEER] [$rm] External destination detected, rewriting ruri [$ru/$ci]\n");
  117.                         xlog("######################################");
  118.  
  119.                         ## Rewrite the request uri and the to domain
  120.  
  121.                         ## If the request-uri (user portion length is 11) then strip the first digit off
  122.                         ## 1-555-555-1234 -> 555-555-1234 (without the dashses for readability)
  123.  
  124.                         if ($(fU{s.len}) == 11) {
  125.                                 uac_replace_from("sip:$(fU{s.substr,1,0})@$fd");
  126.                         }
  127.  
  128.                         if ($(rU{s.len}) == 11) {
  129.                                 strip(1);
  130.                         }
  131.  
  132.                         #change
  133.                         $ru = "sip:" + $rU + "@10.0.0.10:5062";
  134.  
  135.                         $avp(src) = $(fU{s.substr,1,0});
  136.                         $avp(dst) = $(tU{s.substr,1,0});
  137.                         $avp(channel) = $fu;
  138.                         $avp(dstchannel) = $tu;
  139.                         $avp(accountcode) = $rU;
  140.                         $avp(userfield) = "EVT00023";
  141.                         $avp(content) = $rb;
  142.                         $avp(callid) = $(ci{s.select,0,@});
  143.  
  144.                         if (exec_msg("/etc/opensips/ilc.php --rU=\"$rU\" --rd=\"$rd\" --td=\"$td\" --rb=\"$rb\" --fu=\"$fu\" --fU=\"$fU\" --fd=\"$fd\"")) {
  145.                                 t_reply("200", "Accepted");
  146.                         } else {
  147.                                 t_reply("404", "Not found");
  148.                         }
  149.  
  150.                         t_relay();
  151.                         break;
  152.                 case 5061:
  153.                         xlog("######################################");
  154.                         xlog("     TO OPENFIRE - 5061");
  155.                         xlog("     [$rm] Processing request from [$si] r-uri [$ru]\n");
  156.                         xlog("######################################");
  157.  
  158.                         #change
  159.                         $ru = "sip:" + $rU + "@domain.me";
  160.  
  161.                         if (xmpp_send_message()) {
  162.                                 t_reply("200", "Accepted");
  163.                         } else {
  164.                                 t_reply("404", "Not found");
  165.                         }
  166.                         break;
  167.                 case 5062:
  168.                         xlog("######################################");
  169.                         xlog("     TO OUTSIDE- $rp");
  170.                         xlog("     [PEER] [$rm] Processing and relaying message from [CORE] to [PEER] [$si:$sp]\n");
  171.                         xlog("######################################");
  172.  
  173.                         $avp(from) = "sip:1" + $fU + "@10.0.0.10";
  174.                         $avp(to) = "sip:1" + $tU + "@outside.domain.com";
  175.  
  176.                         uac_replace_from("", "$avp(from)");
  177.                         uac_replace_to("", "$avp(to)");
  178.  
  179.                         ## If the To: user (user porition is 10) the prefix a 1 to the beginning
  180.                         ## 555-555-1234 -> 1-555-555-1234 (without the dashses for readability)
  181.                         if ($(fU{s.len}) == 10) {
  182.                                 prefix("1");
  183.                         }
  184.  
  185.                         #change - uncomment and delete
  186.                         $ru = "sip:" + $tU + "@domain.me:5063";
  187.  
  188.                         $avp(src) = $fU;
  189.                         $avp(dst) = $tU;
  190.                         $avp(channel) = $fu;
  191.                         $avp(dstchannel) = $tu;
  192.                         $avp(accountcode) = $fU;
  193.                         $avp(userfield) = "EVT00024";
  194.                         $avp(content) = $rb;
  195.                         $avp(callid) = $(ci{s.select,0,@});
  196.                        
  197.                         t_relay();
  198.                         break;         
  199.         }
  200.         return;
  201. }