[OpenSIPS-Users] sst causes unnecessary 422s

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Apr 28 18:29:15 CEST 2009


Hi Jeff,

I reviewed the code, and it looks like if no SE hdr exists, the module 
does add the SE hdr, but no MINSE....strange....I  made a fix (see the 
attached patch) -> apply it on P1

Regards,
Bogdan

Jeff Pyle wrote:
> Hi Bogdan,
>
> Here's the call flow:
>
>   Adtran CPE gateway (no timer support)
>                  |
>                  V
>      Opensips 1.4.4 with SST (P1)
>                  |
>                  V
>      Opensips 1.5.x with SST (P2)
>                  |
>                  V
>             PSTN carrier
>
>
> The INVITE arrives at P1 from the CPE gateway.  The CPE has no timer
> support, so no SE or Min-SE.  P1's SST is configured like this:
>
> loadmodule "sst.so"
> modparam("sst", "timeout_avp", "$avp(s:sst_timeout)")
> modparam("sst", "sst_flag", 5)
> modparam("sst", "enable_stats", 1)
> modparam("sst", "min_se", 2400)
>
> Because of this, P1 appends an SE of 2400 to the INVITE before forwarding to
> P2.  P2's SST is configured like this:
>
> loadmodule "sst.so"
> modparam("sst|dialog", "timeout_avp", "$avp(s:sst_timeout)")
> modparam("sst", "sst_flag", 6)
> modparam("sst", "enable_stats", 1)
> modparam("sst", "min_se", 1800)
> modparam("sst", "reject_to_small", 1)
>
> The INVITE that arrives at P2 does not have a Min-SE header.  The original
> CPE doesn't support the timer at all, and P1 did not append one.
>
> This confuses me some.  Given the behavior of Opensips, it seems impossible
> to configure two SST-enabled proxies one behind the other, unless the second
> proxy runs a Min-SE of 90.  I'm sure I've missed something.  Or, should
> Opensips (P1 in this case) append a Min-SE header as well?
>
> Changing subjects slightly, is it possible to modify Opensips' SE value in a
> failure route processing a 422 failure?  If Opensips receives a 422, I'd
> like to be able to re-send the INVITE after adjusting the SE/Min-SE per the
> Min-SE in the 422.  If this is possible, perhaps it is also possible to
> select the SE/Min-SE in the request route?  I'd like to run a SE of 240, but
> one of my carriers requires no smaller than 1800.  I'd love to be able to
> set the SE to 1800 only when serial forking is about to send a request to
> that carrier.
>
>
> Thanks,
> Jeff
>
>
>
> On 4/28/09 8:13 AM, "Bogdan-Andrei Iancu" <bogdan at voice-system.ro> wrote:
>
>   
>> Hi Jeff,
>>
>> Could you post the INVITE that gets the 422 ? Does it contain  a min-se
>> header? If not, according to the RFC, the default min-se is 90 (from the
>> request) and the server has min-se 1800 -> this is why you get the 422.
>>
>> Regards,
>> Bogdan
>>
>>
>>
>> Jeff Pyle wrote:
>>     
>>> Hello,
>>>
>>> I noticed today that if a packet comes into the proxy with a Session-Expires
>>> header, it get's 422'ed.  Period.  Unfortunately the proxy that is doing
>>> this has real users on it I cannot take down at the moment, so debugging is
>>> limited during the day.  It is Opensips 1.5 build revision 5641.
>>>
>>> Here's what I can tell you:
>>>
>>>     loadmodule "sst.so"
>>>     modparam("sst|dialog", "timeout_avp", "$avp(s:sst_timeout)")
>>>     modparam("sst", "sst_flag", 6)
>>>     modparam("sst", "enable_stats", 1)
>>>     modparam("sst", "min_se", 1800)
>>>     modparam("sst", "reject_to_small", 1)
>>>
>>> and...
>>>
>>>     if (is_method("INVITE")) {
>>>         if (sstCheckMin("1")) {
>>>                 xlog("L_INFO", "SST too short - M=$rm RURI=$ru F=$fu T=$tu
>>> IP=$si ID=$ci\n");
>>>                 exit;
>>>         }
>>>
>>>         // continue call processing...
>>>     }
>>>
>>> ... in route[0].
>>>
>>> This xlog trips on an invite that has:
>>>     Session-Expires: 2400
>>>
>>> and then sends back a 422 that has:
>>>     MIN-SE: 1800
>>>
>>> I looked at sst_handlers.c, and it seems to make sense to me, but
>>> unfortunately my C skills aren't even a B.
>>>
>>> Any assistance would be most appreciated.
>>>
>>>
>>> Thanks,
>>> Jeff
>>>
>>>       
>
>
>   
h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sst.patch
Type: text/x-diff
Size: 592 bytes
Desc: not available
Url : http://lists.opensips.org/pipermail/users/attachments/20090428/7da97062/attachment-0001.patch 


More information about the Users mailing list