[asterisk-users] 99 bottles of beer
Hans Feringa
linux at shelob.nl
Fri Aug 17 08:10:16 CDT 2007
I dialed it, but I am still thirsty. ;-)
> On Thu, 2007-08-16 at 19:38 -0600, Steve Murphy wrote:
>> On Thu, 2007-08-16 at 07:56 -0400, Russell Bryant wrote:
>> > Gordon Henderson wrote:
>> > > ; *99:
>> > > ; 99 bottles of beer on the wall.
>> > >
>> > > exten => *99,1,Noop(99 Bottles of beer on the wall)
>> > > exten => *99,n,Answer()
>> > > exten => *99,n,Set(bottles=99)
>> > > exten => *99,n(loop),Noop(There are ${bottles} bottles of beer on
>> the wall)
>> > > exten => *99,n,SayNumber(${bottles})
>> > > exten => *99,n,Noop(Take one done and pass it round and there's)
>> > > exten => *99,n,Set(bottles=$[${bottles}-1])
>> > > exten => *99,n,Noop(${bottles} bottles of beer on the wall)
>> > > exten => *99,n,SayNumber(${bottles})
>> > > exten => *99,n,GotoIf($["${bottles}" > "0"]?loop)
>> > > exten => *99,n,Noop(We're out of beer!)
>> > > exten => *99,n,Hangup()
>> > >
>> > > Too much dial plan mashing this morning and I rememberd this site:
>> > >
>> > > http://99-bottles-of-beer.net/
>> >
>> > And now, in AEL! (This is untested, I just wanted to see how it would
>> look.)
>> >
>> > context silly {
>> > *99 => {
>> > NoOp(99 Bottles of beer on the wall);
>> > Answer();
>> > bottles=99;
>> > while (${bottles} > 0) {
>> > NoOp(${bottles} bottles of beer on the wall, ${bottles} bottles
>> of beer);
>> > SayNumber(${bottles});
>> > NoOp(Take one down, pass it around);
>> > bottles=${bottles} - 1;
>> > NoOp(${bottles} bottles of beer on the wall);
>> > }
>> > NoOp(We're out of beer!);
>> > Hangup();
>> > }
>> > }
>>
>> Lol, Well done, Russell!
>>
>> How about this one: from an extensions.conf that someone posted on the
>> internet, I think, and I converted to AEL; I'm sorry, but I can't find
>> the original author.
>> (If anybody can find his post, I'd love to give him credit.) I did test
>> this out,
>> and it works; just put a call to the macro ( &guessgame(); ) in an
>> extension in your dialplan....
>>
>>
>> macro guessgame()
>> {
>> startpoint:
>> while (1)
>> {
>> Playback(guessit/intro);
>> set(GUESS="");
>> GUESS=${EPOCH}%9;
>> Set(TIMEOUT(digit)=3);
>> Set(TIMEOUT(response)=5);
>> while (1)
>> {
>> Read(NUMBER,guessit/input_number,1);
>> Verbose(Got ${NUMBER} from Read);
>> if( "${NUMBER}" = "*" || "${NUMBER}" = "#" || "${NUMBER}" = "")
>> {
>> Playback(guessit/thatsnotanumber);
>> }
>> else if ("${NUMBER}" = "${GUESS}")
>> {
>> Playback(guessit/win);
>> break; // the only way out of this loop!
>> }
>> else if ("${NUMBER}" > "${GUESS}")
>> {
>> Playback(guessit/less);
>> }
>> else if ("${NUMBER}" < "${GUESS}")
>> {
>> Playback(guessit/more);
>> }
>> else /* what other stuff can the user enter than a number, #,
>> nothing, or * ? */
>> {
>> Playback(guessit/thatsnotanumber);
>> }
>> }
>> /* You get here after a successful guess */
>> Wait(.5);
>> Read(AGAIN,guessit/playagain,1);
>> if ("${AGAIN}" != "1")
>> break;
>> }
>> Playback(guessit/goodbye);
>> return;
>>
>> catch t
>> {
>> playback(guessit/goodbye);
>> return;
>> }
>> catch i
>> {
>> playblack(invalid);
>> }
>> }
>>
>> murf
>>
>> _______________________________________________
>> --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
>
>
>
> Hey murf,
>
>
> here is the link for the credit,
> http://www.voipphreak.ca/archives/358-Asterisk-Howto-Numbers-Guessing-Game.html
>
>
> its also in the wiki examples.
>
> http://www.voip-info.org/wiki/view/AEL+Example+Snippets
>
>
>
> db
>
>
> _______________________________________________
> --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
>
More information about the asterisk-users
mailing list