Brian Capouch did demos of Asterisk running on a Linksys WRT54G at the Spring 2005 VON in San Jose. He teaches a course on VOIP and has each student use Asterisk on a WRT54G. Brian has created a wireless VOIP network by having farmers mount wireless access points on the tops of their grain silos. This lets them talk with each other, and gateway out of an central Asterisk box to reach the PSTN.
Packages are available for the OpenWRT embedded Linux distribution running on Linksys WRT54G and compatible routers such as the Asus WL-500g series. A slightly outdated description of the installation can be found here asterisk on openwrt with an updated more in-depth howto from the same site at asterisk on openwrt part 2.
Although Asterisk 1.0.x releases are available from the standard OpenWRT repositories now, more recent, stable Asterisk 1.2.x versions can be obtained through links in the posts on Asterisk in the OpenWRT forum such as this one and sites such as this. This also includes support for a dummy Zaptel Asterisk timer device on USB-UHCI enabled devices as described here, thereby enabling Asterisk cmd MeetMe conferencing support and IAX trunking.
Asterisk 1.4.x is also available from the OpenWRT forums and the link above. This includes app_meetme for conferencing, chan_cellphone for using your cellphone as an Asterisk extension (replacement for chan_bluetooth), and chan_gtalk for Gtalk interoperability.
Also please note you have to be *very* careful about codecs with these little boxes. Some transcodings cannot be done, and if one by chance causes such"bad" transcoding to happen, very, very ugly things ensue. In particular, you can't transcode iLBC -->for sure<--, so start by adding "noload " entries on modules.conf for the modules (there are two) that use that codec.