[Serusers] Turn 3xx into new Invite

Martin Koenig martin.koenig at toplink-plannet.de
Fri Feb 25 12:58:18 CET 2005


Hi everyone,

lets discuss: What would be the best way to handle 3xx / REFER in 
combination with PSTN gateways and Accounting?

I think there is no other way than a proxy interception of these 
methods, creating a new call-leg with new RURI.

What do you think?

Regards,
Martin

Daniel-Constantin Mierla schrieb:

> in the onreply_route is processed only the reply, you can't send from
> there any request.
>
> Daniel
>
>
> On 02/22/05 19:56, 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 lists.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