Hello,
comments inline.
On 11/13/2003 11:42 AM, Alessio Focardi wrote:
After some hassles I succesfully installed pdt module.
Now when I compose 22220 before a number the uri is rewritten with
"iptel.org", here is a transcript:
What is your expectation here? Shouldn't it be like that? To which
domain is mapped this prefix (22220)?
11(14926) SIP Request:
11(14926) method: <INVITE>
11(14926) uri: <sip:222220555555@sferica.net>
11(14926) version: <SIP/2.0>
11(14926) parse_headers: flags=1
11(14926) Found param type 235, <rport> = <n/a>; state=6
11(14926) Found param type 232, <branch> =
<z9hG4bK6D151D75538C4C19987ADC66F1B9505F>; state=16
11(14926) end of header reached, state=5
11(14926) parse_headers: Via found, flags=1
11(14926) parse_headers: this is the first via
11(14926) After parse_msg...
11(14926) preparing to run routing scripts...
11(14926) DEBUG : is_maxfwd_present: searching for max_forwards header
11(14926) parse_headers: flags=128
11(14926) end of header reached, state=9
11(14926) DEBUG: get_hdr_field: <To> [32]; uri=[sip:222220555555@sferica.net]
11(14926) DEBUG: to body [<sip:222220555555@sferica.net>
]
11(14926) get_hdr_field: cseq <CSeq>: <34431> <INVITE>
11(14926) DEBUG: is_maxfwd_present: value = 70
11(14926) PDT: update_new_uri: sip:555555@iptel.org
but, in the software client what I get is a "403 No relay" error.
It might be from
iptel.org if there is no '555555' user there.
I'cant understand if the error is coming from my server, or from
iptel.org ....
You can use ngrep or ethereal on the same machine as ser to see if the
traffic on the network.
Best regards,
}Daniel
Here is my config, any help will be appreciated, tnx !
debug=7
fork=yes
log_stderror=yes
alias=sferica.net
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 "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/pdt.so"
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
modparam("usrloc", "db_mode", 2)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("rr", "enable_full_lr", 1)
modparam("pdt", "db_url", "sql://ser:heslo@localhost/pdt")
modparam("pdt", "db_table", "domains")
modparam("pdt", "prefix", "2")
modparam("pdt", "start_range", 2000)
modparam("pdt", "hsize_2pow", 2)
# ------------------------- 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 (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
prefix2domain();
# 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==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("sferica.net",
"subscriber")) {
www_challenge("sferica.net", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("402", "Offline");
break;
# voicemail forward
#rewritehostport("interconnessioni.it:5090");
#t_relay_to_udp("interconnessioni.it",
"5090");
#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();
};
}