On Fri, 5 Jun 2009, Philipp Kempgen wrote:

> Steve Edwards schrieb:
>>
>> One of my AGIs sets almost 600 channel variables.
>
> Wow that's a lot. Why would you do that?

Why? That's always a tough question :)

It's a "survey" system. Ask a question, record (voice or DTMF) a response, 
maybe branch based on a single DTMF.

All the "steps" are stored in the database.

When a call comes in, an AGI looks up the steps for the DNIS and loads all 
the variables of the form:

        STEP-01-DATA -- name of variable, branch targets, etc
        STEP-01-MAX-LENGTH
        STEP-01-MIN-LENGTH
        STEP-01-PROMPT -- path to a wav file
        STEP-01-TYPE -- types are BRANCH, DTMF, END, PROMPT, VOICE, etc.
                .
                .
                .
        STEP-xx-DATA
        STEP-xx-PROMPT
        STEP-xx-MAX-LENGTH
        STEP-xx-MIN-LENGTH
        STEP-xx-TYPE

(There's actually 8 variables per step. One customer has 75 steps. Thus, 
600 channel variables.)

Each type is handled by a separate AGI.

The dialplan (in AEL) just loops through the indexes. A switch statement 
determines which AGI is invoked. A branch just changes the index. I never 
touch the database again until call completion.

All the control "logic" is in the database.

If a customer wants to add or delete a step, it's just a simple update to 
the database. If a customer wants to add a new type (SSN?), it's just a 
new AGI.

It seems to be very flexible, easy to maintain and extend -- so far :)

The system was just put into production on Monday.

If I can talk the client into it, I want to add a LABEL type so I can 
branch to a label instead of a step number -- shades of BASIC :)

Thanks in advance,
------------------------------------------------------------------------
Steve Edwards      [email protected]      Voice: +1-760-468-3867 PST
Newline                                             Fax: +1-760-731-3000

_______________________________________________
-- 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

Reply via email to