[Serusers] Turn 3xx into new Invite

Evan Borgstrom evan.borgstrom at ca.mci.com
Tue Feb 22 20:02:21 CET 2005


You are missing the t_relay() statement. It should be something like:

if (t_check_status("30[12]")) {
	xlog("L_NOTICE", "Got a 301 or 302 redirect");
	append_branch();
	t_relay();
}

I haven't tested this so I don't know if the append branch will put the
RURI from the 301/302 message in there. It might be required to use an
exec_dset in there to rewrite the recipient before you append_branch and
t_relay.

-Evan

On Tue, 2005-02-22 at 13:56 -0500, Paul Belanger wrote:
> Just got a reply from a fellow SER user to add append_branch() fuction, but I still cannot see the INVITE from my SER.
> 
> onreply_route[1] {
>        xlog("L_NOTICE", "Reply status %rs: Reason %rr\n");
>        if (t_check_status("302")) {
>                xlog("L_NOTICE", "We got a 302!!!!!\n");
> 		   ## Used to send INVITE message? ##
> 	 	   append_branch();
>        };
> }
> -----Original Message-----
> From: Martin Koenig [mailto:martin.koenig at toplink-plannet.de] 
> Sent: Tuesday, February 22, 2005 11:33 AM
> To: Paul Belanger
> Cc: serusers at lists.iptel.org
> Subject: Re: [Serusers] Turn 3xx into new Invite
> 
> 
> Hello,
> 
> see: http://lists.iptel.org/pipermail/serusers/2004-December/014107.html
> 
> looks like Juha Heinänen has a patch for this available somewhere, maybe 
> he would like to share this?
> 
> Regards,
> Martin
> 
> Paul Belanger schrieb:
> 
> >Ya, I have looked at that one, but I can see how it sends out the 
> >INVITE.
> >
> >-----Original Message-----
> >From: Martin Koenig [mailto:martin.koenig at toplink-plannet.de]
> >Sent: Tuesday, February 22, 2005 11:09 AM
> >To: Paul Belanger
> >Cc: serusers at lists.iptel.org
> >Subject: Re: [Serusers] Turn 3xx into new Invite
> >
> >
> >Hello,
> >
> >there is this one so far:
> >
> >http://lists.iptel.org/pipermail/serusers/2004-August/010977.html
> >
> >Didn't really help...
> >
> >Regards,
> >Martin
> >
> >Paul Belanger schrieb:
> >
> >  
> >
> >>Rumor has it yes, but I have not been successful.  I posted a question
> >>last week, and was told to search the archives.  I did, but not much 
> >>came up!
> >>
> >>http://www.google.ca/search?hl=en&q=302+site%3Amail.iptel.org&btnG=Goo
> >>g
> >>le+Search&meta=
> >>
> >>I think I'm on the right track, but don't have time today to play with
> >>it.  Here is what I got so far:
> >>
> >>#
> >># $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
> >>#
> >># simple quick-start config script
> >>#
> >>
> >># ----------- global configuration parameters ------------------------
> >>
> >>#debug=3         # debug level (cmd line: -dddddddddd)
> >>#fork=yes
> >>#log_stderror=no        # (cmd line: -E)
> >>
> >>debug=3
> >>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 ----------------------------------
> >>
> >># 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"
> >>loadmodule "/usr/local/lib/ser/modules/xlog.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"
> >>
> >># ----------------- 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)
> >>
> >># -- 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")
> >>
> >># -- rr params --
> >># add value to ;lr param to make some broken UAs happy modparam("rr",
> >>"enable_full_lr", 1)
> >>
> >>modparam("tm", "fr_inv_timer", 15 )
> >>modparam("tm", "fr_timer", 10 )
> >>
> >># -------------------------  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==myself) {
> >>
> >>               if (method=="REGISTER") {
> >>                       save("location");
> >>                       break;
> >>               };
> >>       };
> >>
> >>
> >>       if (method=="INVITE") {
> >>               rewritehostport("216.143.130.70:5060");
> >>               t_on_reply("1");
> >>               t_on_failure("1");
> >>               t_relay();
> >>               break;
> >>       }
> >>
> >>}
> >>
> >>onreply_route[1] {
> >>       xlog("L_NOTICE", "Reply status %rs: Reason %rr\n");
> >>       if (t_check_status("302")) {
> >>               xlog("L_NOTICE", "We got a 302!!!!!\n");
> >>	 	    ## ADD CODE TO SEND OUT INVITE!! ###
> >>       };
> >>}
> >>
> >>failure_route[1] {
> >>       xlog("L_NOTICE", "Failure status %rs: Reason %rr\n"); }
> >>
> >>Let me know if you find any information.
> >>
> >>Paul
> >>
> >>-----Original Message-----
> >>From: serusers-bounces at iptel.org [mailto:serusers-bounces at lists.iptel.org] 
> >>On
> >>Behalf Of Martin Koenig
> >>Sent: Tuesday, February 22, 2005 11:00 AM
> >>To: serusers at lists.iptel.org
> >>Subject: [Serusers] Turn 3xx into new Invite
> >>
> >>
> >>Hello,
> >>
> >>is it possible to take 3xx-responses in a reply_route and turn them
> >>into
> >>a new INVITE on Ser using append_branch or simliar?
> >>
> >>Regards,
> >>Martin
> >>
> >>_______________________________________________
> >>Serusers mailing list
> >>serusers at lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
> >>
> >> 
> >>
> >>    
> >>
> >
> >  
> >
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers




More information about the sr-users mailing list