[Serusers] fr_inv_timer problem when using SIPPS
Jiri Kuthan
jiri at iptel.org
Tue Nov 18 12:46:41 CET 2003
Thanks, it is very nice to get some real questions :)
I'm now running in my bed, so I may be confused but I think that
the spec tells 180s to extend life of transaction context (i.e.,
extend C-timer). I don't necessarily like it, and I think it was
just a too quick result of a discussion which the sip mailing list
wanted to complete (roughly during bis-07 time).
I need to review what SER actually does. Not extending the transaction
lifetime through 18x should be at least a config option.
-jiri
At 12:00 PM 11/18/2003, Klaus Darilion wrote:
>Hi!
>
>I tried voicemail with redirect to the vm-proxy if the user doesn't pick up
>the phone after 10 seconds. It works fine if I call a kphone user, but not
>with SIPPS users. SIPPS sends a 180 Ringing every five seconds which
>probably resets the timer - if I choose timer intervalls shorter than 5
>seconds it also works with SIPPS.
>
>Is this a bug?
>
>tried with ser:
>0.8.12dev-t14
>0.8.11rc1
>0.8.11-r1
>
>regards,
>Klaus
>
>
>----------
>#
># $Id: ser.cfg,v 1.21 2003/06/04 13:47:36 jiri Exp $
>#
># simple quick-start config script
>#
>
># ----------- 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"
>alias=obelix.ict.tuwien.ac.at
># ------------------ module loading ----------------------------------
>
># Uncomment this if you want to use SQL database
>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"
>
># Uncomment this if you want digest authentication
># mysql.so must be loaded !
>loadmodule "/usr/local/lib/ser/modules/auth.so"
>loadmodule "/usr/local/lib/ser/modules/auth_db.so"
>
># load the voicemail module
>#loadmodule "/usr/local/lib/ser/modules/vm.so"
>
># load the enum module
>loadmodule "/usr/local/lib/ser/modules/enum.so"
>
># load the group module, to verify if a user forwards to voicemail
>loadmodule "/usr/local/lib/ser/modules/group.so"
>
># load the nathelper module
>#loadmodule "/usr/local/lib/ser/modules/nathelper.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", 2)
>modparam("usrloc", "db_url", "sql://ser:ser2000@localhost/ser")
>
># -- auth params --
># 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")
>modparam("auth_db", "db_url", "sql://ser:ser2000@localhost/ser")
>
># -- rr params --
># add value to ;lr param to make some broken UAs happy
>modparam("rr", "enable_full_lr", 1)
>
># -- voicemail params --
>#modparam("voicemail", "db_url","sql://ser:ser2000@localhost/ser")
>
># -- voicemail params --
>modparam("group", "db_url","sql://serro:serro2000@localhost/ser")
>
># -- nathelper params --
>#modparam("nathelper", "natping_interval", 10)
>
>modparam("tm", "fr_inv_timer", 8 )
>modparam("tm", "fr_inv_timer", 8 )
>
># ------------------------- request routing logic -------------------
>
># main routing logic
>
>route{
>
> lookup("aliases");
> # 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) {
> if (len_gt( 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
>
>#remove record route for dissipate
>#if (!(method=="REGISTER")) 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("obelix.ict.tuwien.ac.at",
>"subscriber")) {
># www_challenge("obelix.ict.tuwien.ac.at",
>"0");
># break;
># };
>
> if (!save("location")) {
> sl_reply_error();
> };
> break;
> };
>
> # check if number beginns with 00, then convert it into a +
> if (uri=~"^sip:00[0-9]*@") {
> # strip booth leading "0"
> strip(2);
> prefix("+");
> };
> # check if request uri begins with an internation phone
>number, if yes, try enum to resolve
> if (uri=~"sip:\+?[0-9]+ at .*") {
> enum_query("voice");
> };
>
> #mark transaction for voicemail
> if (is_user_in("Request-URI", "voicemail")) {
> setflag(4);
> };
>
> # native SIP destinations are handled using our USRLOC DB
> if (!lookup("location")) {
> # handle user which was not found
> route(4);
> break;
> };
> };
>
> #add failure route which should be performed if response code >=300
> if (method=="INVITE" && isflagset(4)) {
> t_on_failure("1");
> };
>
> # 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();
> };
>
>}
>
>route[4]{
>
> # non-Voip -- just send "off-line"
> if (!(method == "INVITE" || method == "ACK" || method == "CANCEL" ||
>method == "REFER" || method == "BYE")) {
> sl_send_reply("404", "Not Found");
> break;
> };
>
> # not voicemail subscriber
> if (!isflagset(4)) {
> sl_send_reply("404", "Not Found and no voicemail turned
>on");
> break;
> };
>
> # forward to voicemail now
> #rewritehostport("machtnix.ict.tuwien.ac.at:5060");
> t_relay_to_udp("machtnix.ict.tuwien.ac.at", "5060");
>
> #klaus
> #forward(machtnix.ict.tuwien.ac.at, 5060)
>}
>
>
>
>failure_route[1] {
> /* XX: note: unsafe if preloaded routes without username used */
> revert_uri();
> revert_uri();
> #rewritehostport("machtnix.ict.tuwien.ac.at:5060");
> append_branch();
> t_relay_to_udp("machtnix.ict.tuwien.ac.at", "5060");
>}
>
>
>_______________________________________________
>Serusers mailing list
>serusers at lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
--
Jiri Kuthan http://iptel.org/~jiri/
More information about the sr-users
mailing list