jmillican at sentinelc... Guest
|
Posted: Sat Jul 05, 2008 10:48 am Post subject: [asterisk-users] Read & Background |
|
|
Hello All,
Asterisk 1.4.20.1
SuSE 10.3
I have been building a dial plan and have run into some questions that I
have not been able to answer on Voip-info or google. I am trying to use
either Read or Background to gather user input to an IVR in a Macro. I
need to be able to branch based on the user entering the # key or up to
3 digits. When I use Background I get the # key but am only able to
collect one digit. If I use Read I can the three digits but the # key
is not recognized. The system knows that a key was pressed as it exits
the prompt immediately but it then spits out to the CLI that the "user
entered nothing" and the variable uchoice is in fact empty.
What I have had to do is use a combination of both Read and Background,
rather ugly in my opinion.
Macro snipit:
exten => s,n,Read(uchoice|outmessg/greeting|3||1|3);
exten => s,n,GoToIf($[${LEN(${uchoice})}>0]?${uchoice},1);
exten => s,n,Background(outmessg/directory_rotary|m||macro-jm-in);
;have tried the above with and without the m option
exten => s,n,WaitExten(3);
This works but puts an unfortunate pause between the two prompts in
order to give the caller time to decide what they want to do. I can't
just test for empty/NULL to see if the user hit the # key as I need to
go to operator if the user does nothing which also leaves uchoice set to
nothing. I have set uchoice to 0 previously in the dialplan but when it
goes through read it gets reset to either the user entry of nothing if
the user does not press a key or presses #.
I would just not use the # key but the prompts were previously recorded
and I need to match prior functionality.
If I could get Read to recognize the # key or Background to accept more
than one digit I would be a much happier camper. Am I missing something?
Am in process of upgrading a test box to 1.4.21.1 to see if there is any
change, but hopes are not high.
Any help is much appreciated.
Thanks,
JohnM |
|