[Users] The usrloc table, Oracle, and Asterisk
Juan Carlos Castro y Castro
jcastro at instant.com.br
Fri Dec 15 13:56:14 CET 2006
Argh. I can't use avp_db_query from inside an on_reply_route. What do I do?
Dec 15 10:55:32 vntst2 openser: parse error (109,18-19): Command cannot
be used in the block
Juan Carlos Castro y Castro escreveu:
> Any way I could catch the final OK message instead of the REGISTER
> message? Right now, I'm using the code below. Now I see that's not
> good because I get the Expires from the client which may be higher
> than the real Expires.
>
> if( method=="REGISTER" ) {
> if (!www_authorize("myrealm", "sip_conf")) {
> www_challenge("myrealm", "0");
> exit;
> };
>
> save("location");
> avp_db_query("UPDATE sipfriends SET ipaddr='$si',
> port='$sp', regseconds=$Ts+$hdr(expires), useragent='$ua' WHERE
> name='$au'");
> exit;
> };
>
>
> Bogdan-Andrei Iancu escreveu:
>> Hi Jerome,
>>
>> you are right - a server may change the expire advertised by the
>> client. If it is the case or not, it's a matter of configuration in
>> OpenSER - see the min_expires and max_expires in the registrar module.
>> http://www.openser.org/docs/modules/1.2.x/registrar.html
>>
>> if this params are not set, there is no risk of using the value
>> advertised by the client.
>>
>> regards,
>> bogdan
>>
>> Jerome Martin wrote:
>>
>>> On Thu, 2006-12-14 at 17:32 -0200, Juan Carlos Castro y Castro wrote:
>>>
>>>
>>>> Forget I said that! There's $Ts + $hdr("Expires")! That'll teach me
>>>> to always RTFA before answering!
>>>>
>>>
>>> Well, you need to be carefull about $hdr("Expires"). This is NOT the
>>> only way a UA can specify an expiration delay for a REGISTER request.
>>>
>>> If you take a look at the relevant parts of rfc3261
>>> ( http://www.ietf.org/rfc/rfc3261.txt ), you'll see that using an
>>> Expires header is only one way of specifying a desired expired duration
>>> for the REGISTER. The other way is by using a Contact header parameter
>>> (page 60 of the rfc) :
>>>
>>>
>>>
>>>> 10.2.1.1 Setting the Expiration Interval of Contact Addresses
>>>>
>>>> When a client sends a REGISTER request, it MAY suggest an expiration
>>>> interval that indicates how long the client would like the
>>>> registration to be valid. (As described in Section 10.3, the
>>>> registrar selects the actual time interval based on its local
>>>> policy.)
>>>>
>>>> There are two ways in which a client can suggest an expiration
>>>> interval for a binding: through an Expires header field or an
>>>> "expires" Contact header parameter. The latter allows expiration
>>>> intervals to be suggested on a per-binding basis when more than one
>>>> binding is given in a single REGISTER request, whereas the former
>>>> suggests an expiration interval for all Contact header field values
>>>> that do not contain the "expires" parameter.
>>>>
>>>
>>> Also note that the expire parameter to a Contact header is totally
>>> case-unsensitive ( page 32 of the RFC) :
>>>
>>>
>>>
>>>
>>>> When comparing header fields, field names are always case-
>>>> insensitive. Unless otherwise stated in the definition of a
>>>> particular header field, field values, parameter names, and
>>>> parameter
>>>> values are case-insensitive. Tokens are always case-insensitive.
>>>> Unless specified otherwise, values expressed as quoted strings are
>>>> case-sensitive. For example,
>>>>
>>>> Contact: <sip:alice at atlanta.com>;expires=3600
>>>>
>>>> is equivalent to
>>>>
>>>> CONTACT: <sip:alice at atlanta.com>;ExPiReS=3600
>>>>
>>>
>>> A good example of a very popular SIP UA always using the Contact
>>> header parameter method is the Linksys PAP2 ATA. On the other hand,
>>> there are also
>>> many popular ATAs that use the Expires header method, i.e.
>>> Audiocodes MP1XX ATAs. So unless you're in a very controlled
>>> environment and you don't
>>> care at all to be generic and RFC3261-compliant, you must support
>>> both. But
>>> be carefull, in my experience this almost always bites you back one
>>> day or the other.
>>>
>>> Hope this helps,
>>> Best Regards,
>>>
>>> Jérôme Martin
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>
More information about the sr-users
mailing list