[Asterisk-Dev] [BUG?] chan_sip,
RFC 3261 and multiple UACs registering for one account
Hartwig Deneke
hdeneke at web.de
Mon Aug 29 00:34:40 MST 2005
Alex at pilosoft.com wrote:
>That's correct behavior. Plus, this is not subject for -dev.
> -dev is not 'court of appeals' from -users list.
Just to clarify the intent for my message. This was not meant as a
feature request, but a bug report. I do think -dev is appropriate for
bug reports, or not? Yes, I might be wrong, but you have not convinced
me yet.
I respect the decision of Asterisk developers to support only one
device per channel. However, from a usability perspective, it seems
terrible to let the REGISTER requests of two devices succeed
successfully, making both devices think they are in REGISTERed state,
while this is actually not the case. It would be far better to fail the
second registration then.
>> -----Original Message-----
>> From: asterisk-dev-bounces at lists.digium.com
>> [mailto:asterisk-dev-bounces at lists.digium.com] On Behalf Of
>> alex at pilosoft.com
>> Sent: Sunday, 28 August 2005 3:35 AM
>> To: Asterisk Developers Mailing List
>> Subject: Re: [Asterisk-Dev] [BUG?] chan_sip, RFC 3261 and
>> multiple UACsregistering for one account
>>
>> Because REGISTER overrides current registration. You need to
>> submit REGISTER with multiple contact addresses to get what you want.
Tim Robbins wrote:
>This is incorrect. Adding a new binding does not implicitly remove
>unrelated bindings. Please read section 10 of RFC 3261.
I also do not see anything which would imply that modifying an unrelated
binding is allowed. Also, submitting a REGISTER with multiple contact
addresses does not work.
Command to test:
sipsak -vvv -x 3600 -U -C
'<sip:phone1$(MYDOMAIN)>,<sip:phone2$(MYDOMAIN)>' -a $(PWD) -s sip:$(AOR)
Response by Asterisk for both scenarios
Asterisk Response:
>SIP/2.0 200 OK
>Contact: <sip:phone1@$(MYDOMAIN)>;q=0.00;expires=3600
>Server: Asterisk(AOR)
Also here, there is only one contact.
While testing this, I discovered another behavior which I consider a
violation of RFC 3261, see Section 10.2.3 Fetching Bindings
>A success response to any REGISTER request contains the complete list
>of existing bindings, regardless of whether the request contained a
>Contact header field. If no Contact header field is present in a
>REGISTER request, the list of bindings is left unchanged.
Command to test:
sipsak -vvv -x 0 -U -C empty -a $(PWD) -s sip:$(AOR)
Reply by Asterisk:
>Contact: <>;expires=120
sipsak indeed sends no Contact header, if empty is specified as
command-line parameter. Asterisk does not find the Contact field, and
assumes an empty contact, which is used to overwrite the previous
contact. So anyone wanting to query for currently registered contacts,
e.g. to verify a successful registration will kick out just this
registration.
So should I open bug reports for these two items, or do Asterisk
developers still find these behaviors acceptable?
Thanks,
Hartwig
More information about the asterisk-dev
mailing list