[Serusers] Turn 3xx into new Invite
Daniel-Constantin Mierla
Daniel-Constantin.Mierla at fokus.fraunhofer.de
Tue Feb 22 23:55:25 CET 2005
you must move the processing to a failure_route if you want to be able
to send an INVITE request downstream. Unfortunately you don't have
access to the reply message in a failure_route in order to extract the
redirect addresses and create new branches. You will need to do some
development for that.
Daniel
On 02/22/05 20:02, Evan Borgstrom wrote:
>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
>>
>>
>
>_______________________________________________
>Serusers mailing list
>serusers at lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>
>
>
More information about the sr-users
mailing list