All pastes #575149 Raw Edit

Mine

public text v1 · immutable
·published 2007-06-18 21:33 UTC
rendered paste body
route {
  # stop forwarding at 10 hops to prevent infinite loops
  if (!mf_process_maxfwd_header("10")) {
    log(1, "LOG: Too many hops\n");
    sl_send_reply("483", "Too many hops");
    break;
  };
  # prevents private ip space from being used
  if (search("^(Contact|m): .*@(192\.168\.|10\.|172\.16)")) {
    if (method=="REGISTER") {
      log(1, "LOG: Someone trying to register from private IP\n");
      sl_send_reply("479", "Please don't use private IP addresses" );
      break;
    };
  };
  if (!(uri==myself)) {
   route(4);
   break;
  }
  # separate the destination r-uri from the set of proxies that must be traversed
  loose_route();
  # Local Calls route to telica first
  if ( uri=~"sip:(1?786|1?305|1?754|1?561|1?954|1?772|1?877|1?888|1?800|1?866|1?700|1?[1-9]11)" ) {
    route(2);
    break;
  } else {
     route(3);
     break;
  };

} /* end of initial routing logic */

route[2] {
 # add a record_route to make sure the gw doesnt bounce it back
 record_route();
  if (src_ip==216.106.190.31) {
   rewritehostport("216.106.183.2:5060");
   append_hf("P-hint: GATEWAY\r\n");
  };
  if (src_ip==216.106.183.2) {
   rewritehostport("216.106.190.31");
   append_hf("P-hint: FROM-GATEWAY\r\n");
  };
  if (!t_relay()) {
   sl_reply_error();
   break;
  };
}

route[3] {
 # add a record_route to make sure the gw doesnt bounce it back
 record_route();
  if (src_ip==216.106.190.31) {
   rewritehostport("216.106.184.238:5060");
   append_hf("P-hint: GATEWAY\r\n");
  };
  if (src_ip==216.106.184.238) {
   rewritehostport("216.106.190.31");
   append_hf("P-hint: FROM-GATEWAY\r\n");
  };
  if (!t_relay()) {
   sl_reply_error();
   break;
  };
}
route[4] {
  if (!src_ip==216.106.183.2 | !src_ip==216.106.190.31 | !src_ip==216.106.184.238) {
    log(1, "LOG: Spoofed from attempt\n");
    sl_send_reply("403", "Use From=id next time");
    break;
  };
  if(!t_relay()) {
    sl_reply_error();
  };
}