[SR-Users] Fwd: INVITE Retransmission Causes Limiting Simultaneus Calls for Subscribers

Daniel-Constantin Mierla miconda at gmail.com
Tue Feb 12 11:02:58 CET 2013


It is recommended to use dlg_manage() just before relaying the INVITE or 
the other requests within dialog (e.g., before t_relay()).

Makes no sense to create the dialog structure in the shared memory and 
then reject the INVITE from config with a negative reply. Checking QUOTA 
or adding to a profile are not affected by using the dlg_manage() after.

I assume the dialog will be removed after a while, but it affects the 
limits in short term.

Cheers,
Daniel

On 2/12/13 10:30 AM, Bayram Karagoz wrote:
>
>
> ---------- Forwarded message ----------
> From: *Bayram Karagoz* <karagoz.bayram at gmail.com 
> <mailto:karagoz.bayram at gmail.com>>
> Date: 2013/2/12
> Subject: Re: [SR-Users] INVITE Retransmission Causes Limiting 
> Simultaneus Calls for Subscribers
> To: miconda at gmail.com <mailto:miconda at gmail.com>
> Cc: "SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) - 
> Users Mailing List" <sr-users at lists.sip-router.org 
> <mailto:sr-users at lists.sip-router.org>>
>
>
> recheck config and saw that I used dlg_manage() most before 
> route(QUOTA) block. does it sits in the wrong place?
> you can find my kamailio.cfg file in attachment also.
>
>         # account only INVITEs
> *        dlg_manage();*
>         if (is_method("INVITE"))
>         {
>                 setflag(FLT_ACC); # do accounting
>         }
>
>         ###Display Name manipulation###
>         if (is_method("INVITE") && ($fn != $fU)) {
>                 uac_replace_from("$fU","");
>         }
>
>         ### incoming call from SBC###
>         route(INCOMINGSBC);
>
>         ###Suspend User###
>         route(SUSPEND);
>
>         ### Concurrent Call Limitation Routing Block ###
> *      route(QUOTA);*
>
>
>
> 2013/2/12 Daniel-Constantin Mierla <miconda at gmail.com 
> <mailto:miconda at gmail.com>>
>
>     Where do you use dlg_manage()? It is not in the route you pasted
>     below.
>
>     Cheers,
>     Daniel
>
>
>     On 2/12/13 10:12 AM, Bayram Karagoz wrote:
>>     Thanks for quick response Daniel,
>>
>>     My kamailio version is 3.2.3 (x86_64/linux) .
>>     I want to use dlg_manage() before but not sure which side of my
>>     call limitation route code block.
>>     can you advise me where to use dlg_manage() in my routing?
>>     here is my route block defined below;
>>
>>
>>     route[QUOTA] {
>>
>>             if (is_method("INVITE") && $fU == $avp(s:username)) {
>>
>>             avp_db_query("select quota from subscriber where
>>     username='$avp(s:username)'", "$avp(s:quota)");
>>
>>             $var(SIZE) = 0;
>>     get_profile_size("callquota", "$avp(s:username)", "$var(SIZE)");
>>                     xlog("L_INFO", "CALL_KAMAILIO:Call originated
>>     from = $fd\n");
>>                     xlog("L_INFO", "Active call amount for $fU is
>>     $var(SIZE) , call-id=$ci, quota=$avp(s:quota)\n");
>>             if( $var(SIZE) >= $avp(s:quota) ){
>>                    sl_send_reply("403", "Simultaneous calls limit
>>     reached");
>>                    xlog("L_INFO", "QUOTA:Limit of $var(SIZE) active
>>     calls has been reached for user=$avp(s:username), call-id=$ci,
>>     quota=$avp(s:quota)\n");
>>                    exit;
>>             }
>>     set_dlg_profile("callquota","$avp(s:username)");
>>             }
>>     }
>>
>>
>>     2013/2/12 Daniel-Constantin Mierla <miconda at gmail.com
>>     <mailto:miconda at gmail.com>>
>>
>>         Hello,
>>
>>         what version of kamailio are you using?
>>
>>         State 1 is for dialogs that were not relayed (or they haven't
>>         received any reply yet). That means you create the dialog and
>>         don't relay the INVITE. Try to us dlg_manage() just before
>>         relaying the INVITE.
>>
>>         Cheers,
>>         Daniel
>>
>>
>>         On 2/12/13 9:37 AM, Bayram Karagoz wrote:
>>>         Hi,
>>>
>>>         is there any advise about my problem?
>>>         I'm using kamailio in my production environment and this
>>>         issue started to reproduce a lot.
>>>         is there any way to discard retransmitted INVITE messages
>>>         from counting dialog?
>>>
>>>
>>>         2013/2/9 Bayram Karagoz <karagoz.bayram at gmail.com
>>>         <mailto:karagoz.bayram at gmail.com>>
>>>
>>>             thanks for the response Daniel,
>>>
>>>             has_totag not solved my problem.
>>>
>>>             in a deep search I realized that these retransmission
>>>             INVITE dialogs are waiting in dialog list as state = 1.
>>>             one example is below;
>>>             is there any way to clear these dialog which state is
>>>             waiting for state = 1 or any other solution is welcome
>>>             for me?
>>>
>>>             dialog::  hash=246:499719317
>>>                     state:: 1
>>>             ref_count:: 1
>>>             timestart:: 0
>>>             timeout:: 0
>>>             callid:: 1356619-3569384775-474862 at GBSBC-1.mydomain.com
>>>             <mailto:1356619-3569384775-474862 at GBSBC-1.mydomain.com>
>>>             from_uri:: sip:02165151057 <tel:02165151057>@xxx.xxx.xxx.xxx
>>>             from_tag:: 3569384775-474868
>>>             caller_contact:: sip:02165151057
>>>             <tel:02165151057>@xxx.xxx.xxx.xxx:5060
>>>             caller_cseq:: 2
>>>             caller_route_set::
>>>             caller_bind_addr:: udp:xxx.xxx.xxx.xxx:5060
>>>             callee_bind_addr::
>>>             to_uri:: sip:4115667 at xxx.xxx.xxx.xxx
>>>             to_tag::
>>>             callee_contact::
>>>             callee_cseq::
>>>             callee_route_set::
>>>
>>>
>>>
>>>
>>>             2013/2/4 Daniel Tryba <daniel at pocos.nl
>>>             <mailto:daniel at pocos.nl>>
>>>
>>>                 On Sunday 03 February 2013 12:58:02 Bayram Karagoz
>>>                 wrote:
>>>                 > I'm trying to limit all subscriber's active call
>>>                 according to setting their
>>>                 > simultaneous use setting defined in database.
>>>                 > But having problem when one subscriber's INVITE
>>>                 message goes to
>>>                 > retransmission. When retranmission occures INVITE
>>>                 messages don't complete
>>>                 > with BYE and subscriber simultaneus use amount
>>>                 will hung.
>>>                 > My example code block is below.
>>>                 > Does anyone advice me for overcome INVITE
>>>                 retransmissions?
>>>
>>>                 I haven't implemented it myself yet, but all
>>>                 examples I've seen check for
>>>                 !has_totag() in the INVITE when doing call limit
>>>                 accounting. So
>>>                 if (is_method("INVITE") && $fU == $avp(s:username)
>>>                 && !has_totag())
>>>                 in your case. But that only works if the device
>>>                 received the initial 100
>>>                 Trying with a tag from Kamailio.
>>>
>>>                 But might it not be better to just do the count in
>>>                 the INVITE and
>>>                 adding/deleting of dialogs in the dialog event routes?
>>>                 http://kamailio.org/docs/modules/stable/modules_k/dialog.html#id2556156
>>>                 Problem here is that if the limit is 5 and and there
>>>                 are more than 5
>>>                 concurrent INVITES you'd have to drop calls with a
>>>                 200 OK response.
>>>
>>>                 --
>>>
>>>                 POCOS B.V. - Croy 9c - 5653 LC Eindhoven
>>>                 Telefoon: 040 293 8661 - Fax: 040 293 8658
>>>                 http://www.pocos.nl/   - http://www.sipo.nl/
>>>                 K.v.K. Eindhoven 17097024
>>>
>>>
>>>
>>>
>>>             -- 
>>>             *Bayram KARAGÖZ*
>>>
>>>             *NGN Engineer*
>>>
>>>             *-----------------------------------------*
>>>
>>>             *@*bayram at bayramkaragoz.org
>>>             <mailto:bayram at bayramkaragoz.org>
>>>
>>>             *:***www.bayramkaragoz.org <http://www.bayramkaragoz.org/>
>>>
>>>             *-----------------------------------------*
>>>
>>>
>>>
>>>
>>>         -- 
>>>         *Bayram KARAGÖZ*
>>>
>>>         *NGN Engineer*
>>>
>>>         *-----------------------------------------*
>>>
>>>         *@*bayram at bayramkaragoz.org <mailto:bayram at bayramkaragoz.org>
>>>
>>>         *:***www.bayramkaragoz.org <http://www.bayramkaragoz.org/>
>>>
>>>         *-----------------------------------------*
>>>
>>>
>>>
>>>         _______________________________________________
>>>         SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>         sr-users at lists.sip-router.org  <mailto:sr-users at lists.sip-router.org>
>>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>         -- 
>>         Daniel-Constantin Mierla -http://www.asipto.com
>>         http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  -http://www.linkedin.com/in/miconda
>>         Kamailio World Conference, April 16-17, 2013, Berlin
>>           -http://conference.kamailio.com  -
>>
>>
>>         _______________________________________________
>>         SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
>>         mailing list
>>         sr-users at lists.sip-router.org
>>         <mailto:sr-users at lists.sip-router.org>
>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>>
>>
>>     -- 
>>     *Bayram KARAGÖZ*
>>
>>     *NGN Engineer*
>>
>>     *-----------------------------------------*
>>
>>     *@*bayram at bayramkaragoz.org <mailto:bayram at bayramkaragoz.org>
>>
>>     *:***www.bayramkaragoz.org <http://www.bayramkaragoz.org/>
>>
>>     *-----------------------------------------*
>>
>
>     -- 
>     Daniel-Constantin Mierla -http://www.asipto.com
>     http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  -http://www.linkedin.com/in/miconda
>     Kamailio World Conference, April 16-17, 2013, Berlin
>       -http://conference.kamailio.com  -
>
>
>
>
> -- 
> *Bayram KARAGÖZ*
>
> *NGN Engineer*
>
> *-----------------------------------------*
>
> *@*bayram at bayramkaragoz.org <mailto:bayram at bayramkaragoz.org>
>
> *:***www.bayramkaragoz.org <http://www.bayramkaragoz.org/>
>
> *-----------------------------------------*
>
>
>
>
> -- 
> *Bayram KARAGÖZ*
>
> *NGN Engineer*
>
> *-----------------------------------------*
>
> *@*bayram at bayramkaragoz.org <mailto:bayram at bayramkaragoz.org>
>
> *:***www.bayramkaragoz.org <http://www.bayramkaragoz.org/>
>
> *-----------------------------------------*
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, April 16-17, 2013, Berlin
  - http://conference.kamailio.com -

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20130212/a79b5c54/attachment-0001.htm>


More information about the sr-users mailing list