[asterisk-users] Help getting info from caller

Steve Edwards asterisk.org at sedwards.com
Sat Jan 2 13:30:47 CST 2010


On Sat, 2 Jan 2010, Landy Landy wrote:

> I have a small WISP and would like to have customers to call our number 
> to check their balance. I am planning on writing an AGI with php so it 
> can get the customer info from the customer database. I don't know how 
> to interact with the caller while in the agi script so this is what I 
> have in mind.

There are 3 approaches you could take for this:

1) You could do the entire task in dialplan. Personally, I find database 
access in dialplan unwieldy and ugly.

2) You could do the user interaction in dialplan and the database access 
in an AGI.

3) You could do the entire task in an AGI. This would be my choice because 
it wraps everything up into a nice little black box with a seasonal bow on 
top. Your dialplan then just looks like:

 	exten = 33,n,agi(say-balance)

I have nightmares about "fat-fingering" an impossible to find syntactical 
error into a previously working ream of dialplan with my boss watching 
impatiently over my shoulder, constantly reminding me how much money he is 
loosing per minute :)

> [test-agi]
> exten => 33,1,Answer()
> exten => 33,n,Wait(0.5)

You could "merge" these as "answer(500)."

> exten => 33,n,BackGround(please-enter)
> exten => 33,n,BackGround(customer-account)
> exten => 33,n, ---- I would like to set a variable here but don't know how -----
> exten => 33,n,BackGround(enter-password)
> exten => 33,n, ---- I would like to set a variable here but don't know how -----

You could use read() or authenticate() here.

> exten => 33,n,AGI(testphp.agi,${ACCOUNT},${PASSWORD})
> ---- receive the balance here from agi ----

The AGI would use "set variable" to create and set the channel variable.

> I've never worked with agi but, I'm reading some documents I found 
> online but, need more help trying to get this working.

Use somebody's established and debugged library. Nobody gets it right the 
first time.

-- 
Thanks in advance,
-------------------------------------------------------------------------
Steve Edwards       sedwards at sedwards.com      Voice: +1-760-468-3867 PST
Newline                                              Fax: +1-760-731-3000



More information about the asterisk-users mailing list