Hi Joshua,

try to debug your script:
   1) is the nat flag set for the re-invite
   2) is the force_rtp_proxy called?
   3)......

regards,
bogdan

Joshua Laroff wrote:

Hello,
I am new to openser and rtpproxy. I have tried to configure openser so that
reinvites are also handled by rtpproxy. It seems however that they are not.
I have included my config below:

debug=9
fork=yes
log_stderror=no

check_via=no
dns=no
rev_dns=no
port=5060
children=4
fifo="/tmp/openser_fifo"

# ------------------ Module Loading Section -------------------------
mpath="/usr/lib/openser/modules/"

loadmodule "mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "auth.so"
loadmodule "auth_db.so"
loadmodule "uri.so"
loadmodule "uri_db.so"
loadmodule "domain.so"
loadmodule "nathelper.so"
loadmodule "textops.so"
loadmodule "avpops.so"
loadmodule "permissions.so"
loadmodule "options.so"
#------------------- Module Parameters -----------------------------
modparam("auth_db|permissions|uri_db|usrloc", "db_url",
"mysql://openser:[EMAIL PROTECTED]/openser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")

#--- nathelper params ---
modparam("nathelper", "rtpproxy_sock", "udp:127.0.0.1:8899")
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_from", "sip:[EMAIL PROTECTED]")

#--- usrloc params ---
modparam("usrloc", "db_mode", 2)

#--- registrar params ---
modparam("registrar", "nat_flag", 6)

#--- rr params ---
modparam("rr", "enable_full_lr", 1)

#--- tm params ---
modparam("tm", "fr_inv_timer", 27)
modparam("tm", "fr_inv_timer_avp", "i:45")

#--- permissions params ---
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
#------------------------ Main Routing Block ------------------------------
route {
# -----------------------------------------
 # Sanity check Section
 # -----------------------------------------
 if (!mf_process_maxfwd_header("10")) {
   sl_send_reply("483", "Too Many Hops");
   exit;
 };

 if (msg:len > max_len) {
   sl_send_reply("513", "Message Overflow");
   exit;
 };

 # -------------------------------------------
 # Record Route Section
 # -------------------------------------------
 if (method!="REGISTER") {
   record_route();
 };

 # -------------------------------------------
 # Call Tear Down Section
 # -------------------------------------------
 if (method=="BYE" || method=="CANCEL") {
   unforce_rtp_proxy();
 };

 # -------------------------------------------
 # - Loose Route Section
 # -------------------------------------------
 if (loose_route()) {
   if ((method=="INVITE" || method=="REFER") && !has_totag()) {
     sl_send_reply("403", "Forbidden");
     exit;
 };

 if (method=="INVITE") {
   if (!allow_trusted()) {
     if (!proxy_authorize("", "subscriber")) {
       proxy_challenge("", "0");
       exit;
     } else if (!check_from()) {
       sl_send_reply("403", "Use From=ID");
       exit;
};
     consume_credentials();
}; if (nat_uac_test("19")) {
     setflag(6);
}; }; route(4); route(1);
   exit;
};
 # ---------------------------------------------
 # - Call Type Processing Section
 # ---------------------------------------------

   if (!is_uri_host_local()) {
     if (is_from_local() || allow_trusted()) {
       route(4);
       route(1);
     } else {
       sl_send_reply("403", "Forbidden");
     };
     exit;
   };

   if (method=="ACK") {
     route(1);
     exit;
   } if (method=="CANCEL") {
     route(1);
     exit;
   } else if (method=="INVITE") {
     route(3);
     exit;
   } else if (method=="REGISTER") {
     route(2);
     exit;
   } else if (uri==myself) {
       if (method==OPTIONS) {
         options_reply();
          }
   }

   lookup("aliases");
   if (!is_uri_host_local()) {
     route(4);
     route(1);
     exit;
   };

   if (!lookup("location")) {
     sl_send_reply("404", "User Not Found");
     exit;
   };

route(1); }

route[1] {
# --------------------------------------------
 # - Default Message Handler
 # --------------------------------------------

 t_on_reply("1");
 if (!t_relay()) {
   if (method=="INVITE" || method=="ACK") {
     unforce_rtp_proxy();
   };

   sl_reply_error();
   };
}

route[2] {
# --------------------------------------------
 # - REGISTER Message Handler
 # --------------------------------------------

 sl_send_reply("100", "Trying");

 if (!search("^Contact:[ ]*\*") && nat_uac_test("19")) {
   setflag(6);
   fix_nated_register();
   force_rport();
 };

 if (!www_authorize("", "subscriber")) {
   www_challenge("", "0");
   exit;
 };

 if (!check_to()) {
   sl_send_reply("401", "Unauthorized");
   exit;
 };
     consume_credentials();

 if (!save("location")) {
   sl_reply_error();
 };
}
route[3] {

 # ------------------------------------------------
 # - INVITE Message Handler
 # ------------------------------------------------

 if (!allow_trusted()) {
   if (!proxy_authorize("", "subscriber")) {
     proxy_challenge("", "0");
     exit;
   } else if (!check_from()) {
     sl_send_reply("403", "Use From=ID");
     exit;
   };
   consume_credentials();
 };
 if (nat_uac_test("19")) {
   setflag(6);
 };

 if (uri=~"^sip:1[0-9]{10}@") {
   strip(1);
 };

 lookup("aliases");
 if (!is_uri_host_local()) {
   route(4);
   route(5);
   exit;
 };

 if (uri=~"^sip:011[0-9]*@") {         # International PSTN
   route(4);
   route(5);
   exit;
 };
if (!lookup("location")) {
   if (uri=~"^sip:[0-9]{10}@") {       # Domestic PSTN
     route(4);
     route(5);
     exit;
   };
sl_send_reply("404", "User Not Found");
   exit;
  };
route(4);
  route(5);
}

route[4] {

 # ---------------------------------------
 # - NAT Traversal Section
 # ---------------------------------------

 if (isflagset(6)) {
   force_rport();
   fix_nated_contact();
   force_rtp_proxy();
 };
}

route[5] {

 # ----------------------------------------
 # - PSTN GATEWAY Handler
 # ----------------------------------------

 rewritehost("204.x.x.x");
#  avp_write("i:45", "inv_timeout");
 route(1);
}

onreply_route[1] {

 # ---------------------------------------
 # - REPLY ROUTE
 # ---------------------------------------

 if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") {
   if (!search("^Content-Length:[ ]*0")) {
     force_rtp_proxy();
   }
 }
 if (nat_uac_test("1")) {
   fix_nated_contact();
 };
}



_______________________________________________
Users mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to