[asterisk-users] SIP Context Confusion
Martin
asterisklist at callthem.info
Sat Apr 4 11:53:02 CDT 2009
Yup, one way to guarantee the code in the Asterisk base is to spend a
few months chasing the bug tracker.
I think this feature was simply implemented without taking the users
contexts in mind.
That's my judgment though but I agree with you it's wrong.
Martin
On Sat, Apr 4, 2009 at 11:26 AM, Anthony Plack <tony at plack.net> wrote:
>> It took me a while to understand what you were saying ... more clarity
>> to your emails!
>>
>
> I was trying to be clear and complete. So many times if you forget to mention 1 thing or another, or are too long, you get non-helpful comments back. But I will try harder. Right now Asterisk is as clear as mud with regards to this issue, so I am trying to insert some clarity into the process. Your comments do help with my objective, thank you.
>
>> I see where the code says " If we have a context defined, overwrite
>> the original context" and after consideration
>> I agree with you ... the only problem is that even if you don't define
>> the "context=blah" for the user... that user
>> inherits the "default" context
>>
>
> No, the default is only used if a peer context is not defined. If a peer is defined, it will use the peer context (if set). Otherwise if the domain context is used, it overrides everything.
>
>> However since you did find it in the source code I'm sure you can fix
>> it for yourself. Just check against the "default_context"
>> and do not overwrite the user's context if it's default.
>>
>
> Done for my code, but I was not sure if me maintaining a separate version of Asterisk was correct for the community. I would rather see clarity from the source, but I wished to discuss it on the user channel first to make sure I was not missing something in everyone's configuration.
>
>> Or add another flag to the user's definition for example
>> is_context_set that would be NULL if no context keyword is processed
>> from the sip.conf etc.
>> That is easier to check instead of comparing against default_context
>>
>
> Easier would be to say (pseudo code):
>
> if (sip_pvt->context == null) {
> if (sip_pvt->domain->context == null) {
> if (default_context == null) {
> /* Set the context to whatever is specified in sip.conf */
> sip_pvt->context == default_context;
> } else {
> /* If all else has failed */
> sip_pvt->context = 'default';
> }
> } else {
> /* use the domain */
> sip_pvt->context = sip_pvt->domain->context;
> }
> } /* assume that the context in the peer definition is correct. */
>
> Hopefully that helps clarify. I am thinking I should just open a bug issue and post the code, but I didn't want to do that if there was some reason to have this rather odd sequence of default, peer, domain.
>
>
> _______________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
More information about the asterisk-users
mailing list