[Serusers] Re: Problems with SER pdt module

cgorand cgorand at etu.info.unicaen.fr
Tue Aug 3 11:01:13 CEST 2004


Hi, 

I think I have a problem with my ser.cfg, is there somebody know where to 
find some docs. I've found some docs at 

http://www.iptel.org/ser/doc/modules/html/pdt.html 

and I've take look to the sample config file with pdt in the sources, but
it's seems it doesn't work with my config. Perhaps I don't
put prefix2domain(); to the right place. 

my ser.cfg: 

check_via=no # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
#port=5060
#children=4
fifo="/tmp/ser_fifo"
fifo_mode=438 


# ------------------ module loading ---------------------------------- 

loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so" 

loadmodule "/usr/local/lib/ser/modules/pdt.so" 

# ----------------- setting module-specific parameters --------------- 

modparam("registrar","nat_flag",6)
modparam("nathelper","natping_interval",3)
modparam("nathelper","ping_nated_only",1)
modparam("nathelper", "rtpproxy_sock", "/var/run/rtpproxy.sock") 

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

modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url", "sql://ser:ser_password at localhost/ser") 

modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("rr", "enable_full_lr", 1) 

modparam("pdt", "db_url", "sql://pdt:pdt_password at localhost/pdt")
modparam("pdt", "db_table", "domains")
modparam("pdt", "prefix", "2")
modparam("pdt", "terminator",0)
#modparam("pdt", "start_range", 200)
#modparam("pdt", "hsize_2pow", 2) 

# -------------------------  request routing logic -------------------
# main routing logic
route{ 

if(nat_uac_test("3"))
{
 if((method == "REGISTER") || !(search("^Record-Route:")))
 {
  log("LOG:Someone trying to register from private IP, rewriting\n");
  fix_nated_contact();
  if(method == "INVITE")
  {
       fix_nated_sdp("1");
  };
  force_rport();
  setflag(6);
 };
};
#---------------------------------------------------- 

if (!mf_process_maxfwd_header("255")) {
 sl_send_reply("483","Too Many Hops");
 break;
};
if ( msg:len > max_len ) {
 sl_send_reply("513", "Message too big");
 break;
};
if (!method=="REGISTER") record_route();
# loose-route processing
if (loose_route()) {
 append_hf("P-hint: rr-enforced\r\n");
 route(1);
 break;
}; 

if (!uri==myself) {
               # mark routing logic in request
               append_hf("P-hint: outbound\r\n");
               route(1);
               break;
       };
# is it to the right place ????
 prefix2domain();
#-------------
 if (uri==myself) { 

 if (method=="REGISTER") { 

 if (!www_authorize("mydomain.com", "subscriber")) {
   www_challenge("mydomain.com", "0");
   break;
  };
  save("location");
  break;
 };
       lookup("aliases");
               if (!uri==myself) {
                       append_hf("P-hint: outbound alias\r\n");
                       route(1);
                       break;
               };
 if (!lookup("location")) {
  sl_send_reply("404", "Not Found");
  break;
 };
};
       lookup("aliases");
               if (!uri==myself) {
                       append_hf("P-hint: outbound alias\r\n");
                       route(1);
                       break;
               };
}
route[1]
{
       if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" && 
!search("^Route:")){
           sl_send_reply("479", "We don't forward to private IP addresses");
           break;
       };
      if (isflagset(6)) {
           force_rtp_proxy();
       };
       t_on_reply("1");
       if (!t_relay()) {
               sl_reply_error();
       };
} 

onreply_route[1] {
   if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
       fix_nated_contact();
       force_rtp_proxy();
   } else if (nat_uac_test("1")) {
       fix_nated_contact();
   };
} 


Regards,
Charles 

cgorand writes: 

> 
> Oups , I've done a mistake :
>>> When I use Xten client (SIP softphone) and I call a user at 
>>> fwd.pulver.com from mydomain.com : 23330XXXXX at fwd.pulver.com <<<<---
> I wanted to say 23330XXXX at mydomain.com instead of 
> 23330XXXXX at fwd.pulver.com  
> 
> So the problem is that pulver can't retrive mydomain.com ? Or they've
> got a problem with their server ?  
> 
> Regards,
> Charles  
> 
> Elena-Ramona Modroiu a &eacute;crit:  
> 
>> Hi,  
>> 
>> 
>>> I entered in DB the code and domain matching. code = 333 
>>> domain[333]=fwd.pulver.com
>>> (0 is the terminator digit by default)  
>>> 
>>> When I use Xten client (SIP softphone) and I call a user at 
>>> fwd.pulver.com from mydomain.com : 23330XXXXX at fwd.pulver.com
>> 
>> You should call 23330XXXXX at your_domain and then this it will be 
>> translated into XXXXX at fwd.pulver.com.  
>> 
>>> fwd.pulver.com tells me Too Many Hops ?
>>> Where is the problem ? fwd.pulver.com ? Or my SER ?
>> 
>> fwd.pulver.com has for sure a routing problem if it returns "Too Many 
>> Hops" :-) .  
>> 
>> Greetings,
>> Ramona
>  
> 
 




More information about the sr-users mailing list