[asterisk-users] 99 bottles of beer

Russell Bryant russell at digium.com
Thu Aug 16 06:56:35 CDT 2007


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();
  }
}

-- 
Russell Bryant
Software Engineer
Digium, Inc.



More information about the asterisk-users mailing list