[pjsip] Parsing expires from REGISTER reply

Tanguy Floc'h electrocut at gmail.com
Thu May 8 02:59:17 EDT 2008


Thank you for your answer Benny.

That sounds quite good for me !
What about you Alan ?

Best Regards,

Electrocut


Benny Prijono wrote:
> Gents,
>
> sorry for not responding sooner. So bottom line is, if server doesn't
> follow the protocol, then there's no exact way to make registration
> right. I wonder again if it's really hopeless to ask them to fix it (I
> kind of know the answer though :) ).
>
> Alan, as you said your patch looks a bit rough (I tend to see it as
> both funny and desperate at the same time). Can we not do like this,
> which is simpler (this would only happen if the strict checking is
> disabled):
>
>  if we're registering:
>      if the answer is 200/OK:
>          if matched Contact is found:
>              get expiration from Contact
>          else if there is at least one Contact
>              get the lowest expires from all Contacts
>          else if Expires is found:
>              get expiration from Expires header
>          else
>              get expiration from the request
>      else if the answer is 3xx-6xx:
>          the registration has failed
>
>
> if we're unregistering:
>      if the answer is 200/OK:
>          the unregistration has been successful
>      else
>          it doesn't matter, we're unregistering no matter
>
> What do you think?
>
> Cheers
>  Benny
>
>
> On Mon, May 5, 2008 at 9:28 PM, Tanguy Floc'h <electrocut at gmail.com> wrote:
>   
>> You are right Alan, I didn't see the included file (in fact, you last post
>> on the mailing list haven't reached my mailbox, I don't know why).
>>
>> I'll look at your sip_reg.c remplacement more closely.
>>
>> Thanks
>>
>>
>>
>> On Mon, May 5, 2008 at 6:05 PM, Tanguy Floc'h <electrocut at gmail.com> wrote:
>>     
>>> Sorry for the bad ascii table :(
>>>
>>> the same in an image :
>>>       
>> http://www.monsterup.com/image.php?url=upload/1210003361.jpg
>>     
>>>
>>>
>>>
>>> On Mon, May 5, 2008 at 6:00 PM, Tanguy Floc'h <electrocut at gmail.com>
>>>       
>> wrote:
>>     
>>>> I agree with you Alan, I had the same problem a few minutes ago :
>>>> with "pjsip_cfg()->regc.check_contact" disabled, it will fail anyway
>>>>         
>> with a "unregister success", if more than once user have registered to the
>> account. (if we assume 'Contact: header' is missing)
>>     
>>>> Another problem with the fix you proposed :
>>>>
>>>>
>>>> if (expiration == NOEXP)
>>>>   expiration = -1;
>>>> else if (expiration == 0 && contact_cnt > 0 && contact[0]->expires > 0)
>>>>   expiration = contact[0]->expires;
>>>>
>>>>
>>>> is that you don't know if 'contact[0]->expires' is your expire value ...
>>>>         
>> or if it is 'contact[1]->expires'
>>     
>>>> If 'contact[0]->expires' is taken as the "good expire value", only if
>>>>         
>> the "Contact header recognation" (like when "check_contact" is enabled) has
>> failed ... if could solve a part of the problem, but not all.
>>     
>>>> If my assumption is right (I haven't tested it) finally, it should be :
>>>>
>>>>
>>>>         
>> -------------------+-----------------------+-------------------------------------------+
>>     
>>>>                   |       only       |        only           |
>>>>         
>> |
>>     
>>>>                   | No Expire header |   bad Contact Info    |    No
>>>>         
>> Expire header + Wrong Contact Info  |
>>     
>> ------------------|------------------+-----------------------+-------------------------------------------|
>>     
>>>>  1st fix          |                  |                       |
>>>>         
>> |
>>     
>>>> (contact_cnt = 0) | ok if register<2 |         ok            |
>>>>         
>> ok if register<2                |
>>     
>>>>                   |                  |                       |
>>>>         
>> |
>>     
>> ------------------+------------------+-----------------------+-------------------------------------------+
>>     
>>>>  2nd fix          |       ok         |                       |
>>>>         
>> ok                       |
>>     
>>>> (contact_cnt > 0) | but multi-unreg  |         ok            |
>>>>         
>> but multi-unreg problem          |
>>     
>>>>                   |     problem      |                       |
>>>>         
>> |
>>     
>> ------------------+------------------+-----------------------+-------------------------------------------+
>>     
>>>>  2nd fix +        |                  |                       |
>>>>         
>> |
>>     
>>>>  + the idea above |                  |                       |
>>>>         
>> ok                      |
>>     
>>>> (test contact     |        ok        |         ok            |
>>>>         
>> but multi-unreg problem          |                     |
>>     
>>>> header recogn. 1st|                  |                       |
>>>>         
>> |
>>     
>> ------------------+------------------+-----------------------+-------------------------------------------+
>>     
>>>> I hope we will managed to find the best solution for this issue :)
>>>>
>>>> Regards,
>>>>
>>>> Electrocut
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, May 4, 2008 at 2:06 PM, Benny Prijono <bennylp at pjsip.org> wrote:
>>>>
>>>>         
>>>>> Hi Alan,
>>>>>
>>>>> First of all, I think this issue has come up several times on this
>>>>> list, so I've just added this entry in the FAQ to explain the
>>>>> rationale why PJSIP behaves this way, and also few solutions to cope
>>>>> with it: http://trac.pjsip.org/repos/wiki/FAQ#regc
>>>>>
>>>>> I do like your solution. And while this is server problem (regardless
>>>>> of how popular it is; if it's broken, then it needs to be fixed, IMO),
>>>>> in the SVN trunk we already have couple of settings to deal with this,
>>>>> so if we want to handle this, why not go all the way. So I've just
>>>>> added the trick (to get the expiration value from the single Contact,
>>>>> if Expires header is not present) in the latest SVN version. Thanks
>>>>> for the suggestion.
>>>>>
>>>>> Now enjoy the bank holiday. :)
>>>>>
>>>>> Cheers
>>>>>  Benny
>>>>>           
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080508/f1903082/attachment.html>


More information about the pjsip mailing list