[asterisk-scf-dev] New SIP configuration items
Mark Michelson
mmichelson at digium.com
Mon Dec 19 10:21:45 CST 2011
On 12/15/2011 06:17 PM, Kevin P. Fleming wrote:
> On 12/15/2011 10:38 AM, Mark Michelson wrote:
>> I opened issue ASTSCF-397
>> (https://issues.asterisk.org/jira/browse/ASTSCF-397)based on an audit I
>> did of the existing SIP configuration items. There are several items
>> that are defined in our slice but that are either not read by our Python
>> configurator script or are not actually handled if pushed to the SIP
>> component by the configurator. I plan to alter the configurator and the
>> SIP component so that these items can actually be configured. My problem
>> is that I am unsure of how these items should be grouped.
>>
>> First, let's go over the items that are unused:
>>
>> * SipUserAgentItem - Presumably intended to be used to configure what
>> text appears in the User-Agent header in SIP messages sent by
>> Asterisk SCF.
>> * SipRTPMediaServiceItem - The name of the media service to locate when
>> requesting a proxy to an RTP media service.
>> * SipUDPTLMediaServiceItem - The same as SipRTPMediaServiceItem except
>> used for requesting a proxy to a UDPTL media service.
>> * SipRoutingItem - The name of the routing service to locate when
>> requesting a proxy to a routing service.
>>
>> My problem is that I don't know if these are things that people would
>> want to set in SipEndpointGroups or in the SipGeneralGroup.
>>
>> Here are my initial feelings on the matter:
>>
>> The SipUserAgentItem should go in the SipGeneralGroup since it doesn't
>> really seem like something that would change for individual endpoints.
>>
>> The SipRTPMediaServiceItem and SipUDPTLMediaServiceItem should appear in
>> SipEndpointGroups since these do seem like the type of things that
>> people could want to configure per endpoint.
>>
>> The SipRoutingItem could go either way. I'm leaning towards putting it
>> in the SipGeneralGroup because of potential complications from
>> attempting to configure it per endpoint.
>
> My opinion is that all of them could legitimately have a need to be
> configured on a per-endpoint basis, but providing defaults for them at
> a 'general' level would be beneficial as well (although to be honest I
> haven't even looked to see if we are supporting that sort of
> configuration model right now... deciding when to use or not use the
> default value could be quite tricky).
>
We don't currently have any options that can be applied at multiple
levels like you are suggesting, so this would be the first time we do
it. It shouldn't be too difficult to devise a way of doing this, and I
have no problem with such a model.
To shift the focus a bit, you mentioned that all of these could be
configurable per endpoint. The SipRoutingItem introduces some
complications here.
First, the method by which the routing service is discovered at the
moment is to use a SmartProxy and attempt to find it on startup. There
is a single routing service proxy that gets passed to the
PJSipSessionModule for use later when routing sessions. This would mean
we would need to change location to be done at configuration time and to
use the endpoint's configuration in order to determine the routing
service to use when routing a session.
Second, and more importantly, is how endpoint location will work with
this sort of setup. Let's say that we have endpoints "Alice" and "Bob"
and each wishes to route its sessions through separate routing services.
Should the routing service Alice uses be able to locate Bob's endpoint?
Should the routing service Bob uses be able to locate Alice's endpoint?
Or should routing services only be able to locate endpoints for which
they route sessions? Should the endpoints somehow be made locatable to
routing services no endpoint actually uses?
Based on the points raised above, it seems like there should be two
routing options. First, there should be an option to determine what
service an endpoint uses to route sessions from the endpoint. This
option could be set both in the general section or per endpoint. Second,
there should be an option to specify all routing services that should be
able to locate an endpoint. This, on the other hand, must be configured
per endpoint.
What are your thoughts on this approach?
Mark Michelson
More information about the asterisk-scf-dev
mailing list