[asterisk-dev] SLA

Russell Bryant russell at digium.com
Thu May 26 10:17:55 CDT 2011


On 05/26/2011 09:41 AM, Kevin P. Fleming wrote:
> On 05/25/2011 05:46 PM, Damien Wedhorn wrote:
>> I'm trying to get my head around some issues I'm having with
>> implementing SLA into a channel.
>>
>> Basically, my understanding is that when a call is made into an
>> SLATrunk, a call and a hint is sent to each station. For the life of me
>> I can't see haw to actually identify that the hint is related to the
>> call.
>>
>> The issue is that if two calls come in at the same time, the station
>> will receive two hints and two calls, but how can it marry them up? The
>> hint.exten will indicate the specific trunk but the call doesn't seem to.
> 
> No, this is not quite true.
> 
> When a call is sent into an SLATrunk, all SLA stations that are watching
> that trunk will receiving a state update indicating that the trunk is in
> 'ringing' state; no calls will be sent to the stations.
> 
> The station needs to provide visible and audible indication to the user
> that the trunk is ringing; this same indication would be presented to
> the user even if more than one trunk was ringing.
> 
> When a user wants to answer the ringing call on the trunk, they'll press
> a line key (or go off-hook, with a phone that will send an appropriate
> call request automatically when doing so), which generates a call to the
> SLAStation application with the appropriate arguments to 'seize' that
> trunk; that endpoint is then placed into a bridge with the incoming
> channel, and the state of the trunk is changed to 'active'.. so all the
> stations will stop generate 'ringing' indications for that trunk.
> 

It does generate a call to the station, but only a single call.  If
calls come in to 2 different trunks, a single call will be sent to a
station and two hints will be updated.  From there there are a few
things that can happen.

1) Handset gets picked up

The phone will answer the call just like any other normal call.
Asterisk will decide which trunk the station gets connected to and the
hints will be updated accordingly.

2) The user presses one of the line keys

The idea here is that instead of answering the incoming call, the phone
makes its own call back to Asterisk to an extension that is specific to
that line key.  It will execute SLAStation() passing arguments that
specify which station and which trunk are being invoked.  The station
will be connected to the trunk that was chosen and Asterisk will update
the hints as appropriate.

-- 
Russell Bryant
Digium, Inc.   |   Engineering Manager, Open Source Software
445 Jan Davis Drive NW    -     Huntsville, AL 35806  -  USA
www.digium.com  -=-  www.asterisk.org -=- blogs.asterisk.org



More information about the asterisk-dev mailing list