Un-top-posting... >> On Sat, 21 Nov 2009, Thomas Perron wrote: >> >>> I want to distribute a random number to each of the first 100 callers >>> to my IVR. This random number will be matched to their telephone >>> number. Where in Asterisk can I do this? And, how? >>> >>> Logic. >>> >>> Call arrives. Context for announcement begins. You will receive a >>> authentication code at the end of the message. Then, if they press a >>> certain digit to confirm then I simply pass a code to them. These >>> codes are distributed to the first 100. The 101st call does not get a >>> code.
> On Sat, Nov 21, 2009 at 7:20 PM, Steve Edwards > <[email protected]>wrote: > >> I'm guessing you really don't want a random number since a random >> number generator can generate duplicates. >> >> "Matching" the number to their ANI also has issues. What if my ANI is >> blocked? What if I spoof my ANI? What if I call from a SIP phone? >> >> I would "pre-compute" the random numbers and store them in a database. >> >> When a call arrives, I would invoke an AGI that would lock the table, >> read the first value with a null ANI, update the row with the caller's >> ANI, and unlock the table. >> >> You could do it in dialplan, but I find database access in dialplan >> ugly. >> >> Alternatively, you could mung UNIQUEID (<number of seconds since >> Epoch>.<number of channels created by this instance of Asterisk>) to >> appear to the caller as random and then store that and their ANI in a >> database. >> >> What happens if Asterisk is restarted in the middle of your campaign? On Sat, 21 Nov 2009, Thomas Perron wrote: > that is a bit heavy for me. how about some simple way to announce a > random number. using RAND. and saydigit > > exten => s,1,Set(junky=${RAND(1,8)}) Um. OK. Use RAND and saydigit. And use some sort of counter to know when you've issued 100 numbers. But... ) You may have duplicate random numbers. ) You may have issues counting the callers if you have more than 1 call arrive at close to the same time. ) If Asterisk restarts, how will you know how many numbers have been issued? ) You still have to handle the "matching" requirement. I still think a "databased*" approach is the best approach. I'm sorry it's not within your current skill-set. Maybe this means you should invest some time learning the skills or hire someone who has them. If this is a toy ("Guess a number..."), use RAND and saydigit. If this is a contest with some sort of prize or involves anything of value, use a database. *) MySQL has a really neat generic lock facility that will come in handy. See get_lock(lock-name, timeout). -- 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
