We have downloaded the latest ser software from cvs in order to support appending of remote party id while using mysql as the ser database.
After compiling and installing the ser software we included the auth and auth_db parameters and also the append_rpid_hf() function in our ser.cfg file as shown below.
 
SER server starts and registration is successfull however when forwarding to the pstn gateway, ser will not append the remote party id header, even if the rpid and uri columns in mysql database are populated accordingly using the serctl add rpid command. Calls are also successfull however the gateway will not include the calling party number in the setup message because the rpid header is missing.
 
 
Any ideas please?
 
Thanks
 
Charles and Andrew
 
 
 
# ----------- global configuration parameters ------------------------
 
#debug=3         # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
 
/* Uncomment these lines to enter debugging mode
debug=7
fork=no
log_stderror=yes
*/
 
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"
 
# ------------------ module loading ----------------------------------
 
loadmodule "/our_downloads/sip_router/modules/mysql/mysql.so"
#loadmodule "//lib/ser/modules/mysql.so"
 
loadmodule "//lib/ser/modules/sl.so"
loadmodule "//lib/ser/modules/tm.so"
loadmodule "//lib/ser/modules/rr.so"
loadmodule "//lib/ser/modules/maxfwd.so"
loadmodule "//lib/ser/modules/usrloc.so"
loadmodule "//lib/ser/modules/registrar.so"
loadmodule "//lib/ser/modules/textops.so"
 
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "//lib/ser/modules/auth.so"
loadmodule "//lib/ser/modules/auth_db.so"
 

#loadmodule "//lib/ser/modules/acc.so"
 
# ----------------- setting module-specific parameters ---------------
 
# -- usrloc params --
 
#modparam("usrloc", "db_mode",   0)
 
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 1)
 
 
 
# -- auth params --
 

modparam("auth_db", "use_rpid", 1)
modparam("auth_db", "rpid_column", "rpid")
modparam("auth", "rpid_prefix", "<sip:")
modparam("auth", "rpid_suffix", "@testphone.com>:party=calling;screen=no;privacy=off")
 
 
 

# Uncomment if you are using auth module
#
modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
modparam("auth_db", "password_column", "password")
 
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
 
 
 
# -------------------------  request routing logic -------------------
 
# main routing logic
 
route{
 
 # initial sanity checks -- messages with
 # max_forwards==0, or excessively long requests
 if (!mf_process_maxfwd_header("10")) {
  sl_send_reply("483","Too Many Hops");
  break;
 };
 if ( msg:len > max_len ) {
  sl_send_reply("513", "Message too big");
  break;
 };
 
 
 
 
 # we record-route all messages -- to make sure that
 # subsequent messages will go through our proxy; that's
 # particularly good if upstream and downstream entities
 # use different transport protocol
 record_route(); 
 # loose-route processing
 if (loose_route()) {
  t_relay();
  break;
 };
 
 
 # if the request is for other domain use UsrLoc
 # (in case, it does not work, use the following command
 # with proper names and addresses in it)
 if (uri=~"testphone.com")  {
  lookup("aliases");
  if (method=="REGISTER") {
 
#Uncomment this if you want to use digest authentication
   if (!www_authorize("testphone.com", "subscriber")) {
    www_challenge("testphone.com", "0");
    append_rpid_hf();
    break;
   };
 

   
   save("location");
   break;
  };
 
 
 
                   if (uri=~"^sip:21") {
                       append_rpid_hf();
                       forward(a valid ip address for the gateway was inserted here);
                       break;
                   }
 
                   if (uri=~"^sip:123") {
                      forward(a valid ip address for the gareway was inserted here);
                      break;
                   }
 

  # native SIP destinations are handled using our USRLOC DB
  if (!lookup("location")) {
          sl_send_reply("404", "Not Found");
   break;
  };
 };
 
 
 

 # forward to current uri now; use stateful forwarding; that
 # works reliably even if we forward from TCP to UDP
 if (!t_relay()) {
  sl_reply_error();
 };
 
 
}