Advertisement
Guest User

siproute

a guest
Feb 28th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.36 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement