[asterisk-dev] Bounty for parking on <slot>@<context>

Alistair Cunningham acunningham at integrics.com
Wed Apr 29 10:39:54 CDT 2009


I'd like to offer a bounty for a feature for Asterisk where an AGI
program can park and retrieve calls on parking slots that are of the
form <slot>@<context>, where <slot> is a number and <context> is an
arbitrary string.

Asterisk will not choose a slot; the AGI program will always specify
which exact slot and context to use. The AGI will keep track of which to
use in its own database. It's acceptable for Asterisk to return an error
if the AGI tries to park on a slot that's already in use. If you want to
implement automatic choosing of slots for the benefit of other Asterisk
users that's fine, but our code will always specify which slot to use
and your code must at least have an option to allow this.

It must not be necessary to pre-define either slots or contexts in
Asterisk configuration files. It must be completely dynamic for the AGI
to choose at run-time.

The call flow should work as follows:

1. A call comes in from an external number.

2. Asterisk passes control to the AGI.

3. The AGI does a Dial() with the "t" option to a SIP phone on a remote
SIP registrar.

4. The destination transfers the call using # or its own transfer
button. The # for the transfer should be the only thing in this call
flow that's set in the Asterisk configuration files.

5. The transfer call comes back to the AGI, which decides that the
transferrer wants to park the call. Each transferring phone may have a
different code to park calls, so this is configured in the AGI's
database rather than Asterisk's features.conf.

6. The AGI instructs Asterisk to park the original inbound call on
<slot>@<context>.

7. Asterisk does this, and reads <slot> to the transferring phone.

8. The transferring phone hangs up.

9. Another telephone calls a number to pick up the parked call that goes
to the AGI. This number may be <slot> or it may not. For example, a user
may have *99<slot> configured in the AGI's database to pick up parked
calls. Only the AGI should care about this.

10. The AGI instructs Asterisk to connect this call with the call parked
on <slot>@<context>.

Steps 1, 2, 3, 4, 5, 8, and 9 already exist. Steps 6, 7, and 10 need
written. I'm also open to other ideas for call flows; please discuss
with me before starting work however.

If anyone would like to write this, and it gets accepted into the
Asterisk subversion repository for a future Asterisk version,
Integrics is willing to pay a bounty of USD 500, payable by PayPal.

-- 
Alistair Cunningham
+1 888 468 3111
+44 20 799 39 799
http://integrics.com/







More information about the asterisk-dev mailing list