if it works for sip to sip it should work for pstn cause ser doesnt
really care where it comes from just processes the message.
Is the ACK being sent back to ser, is the actual call successful to pstn
Iqbal
On 6/25/2005, "Pablo Bertuzzi" <pablob(a)ccdcom.net> wrote:
Hello, i am runing ser 0.10.99-dev8 and 0.8.14 on a
different machine.
When calling from a sip device (Linksys RT31P2) to
PSTN (Cisco 5300), the ACK message is not logged to
mysql. Only INVITEs (without 200 status) and BYEs are
logged.
The other scenarios sip to sip and pstn to sip, log
all the messages i need. (INVITE 200, ACK and BYE)
I am sure there is something missing in ser.cfg.
Any clue on what i am doing wrong??
Kind regards, Pablo.
# ------------------ 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/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 2)
# -- auth params --
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
# -- rr params --
modparam("rr", "enable_full_lr", 1)
# -- acc params --
modparam("acc", "db_flag", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "report_ack", 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
if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (method=="INVITE" || method=="BYE" ||
method=="ACK") {
setflag(1);
};
if (loose_route()) {
# mark routing logic in request
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;
};
# 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 (src_ip==66.100.100.70 and method=="INVITE") { ## Calls from
PSTN
forward(uri:host, uri:port); ##
break; ##
};
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("66.100.100.73",
"subscriber")) {
www_challenge("66.100.100.73", "0");
break;
};
save("location");
break;
};
if (method=="INVITE" || method=="BYE" ||
method=="CANCEL" || method=="ACK") {
setflag(1);
acc_db_request("", "acc");
};
if (uri=~"^sip:1786[0-9]*@66.100.100.73") {
prefix("5000#");
rewritehostport("66.100.100.70:5060");
forward(uri:host, uri:port);
break;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers