After many past failed attempts, I've finally got a good working asterisk + google voice setup on my router, and I thought I'd share it with you guys. This is using the latest version of asterisk, as of writing. Currently the latest tomatoware sports Asterisk 11.7.0 1. Go to lancethepants.com/files , navigate to the Tomatoware section, and download the latest version. I've also uploaded releases on github. They should be much faster. https://github.com/lancethepants/tomatoware/releases 2. Place the compressed file in a clean /opt directory, which should be a USB key setup as if to install optware or entware. Extract the file in /opt. We then need to update the configs with your google login information 3. Edit xmpp.conf with your google username and secret (password). Code: location: /opt/etc/asterisk/xmpp.conf 4. Run 'asterisk' in the cli to start the asterisk. Code: asterisk Once you've started asterisk, you can monitor it running using the following code. The 'v's are for more verbosity. Code: asterisk -rvvv 5. Connect with your choice of sip client or device on your local network. Code: username: 200 password: password Hopefully at this point, you will be able to make and receive calls using your google voice phone numbers. I'm running asterisk on my RT-N16, and it uses 20% cpu when in a call. If you want to access your sip server from over the internet. Use the following iptables rules. Code: Administration -> Scripts -> Firewall iptables -A INPUT -p udp --dport 5060 -j ACCEPT iptables -A INPUT -p udp --dport 10000:12000 -j ACCEPT I've also created the following file. Code: /opt/etc/config/asterisk.wanup This SHOULD automatically start asterisk when you start or reboot your router. If not, you can place the previous code in Code: Administration -> Scripts -> Wan Up You can edit the sip client password in sip.conf. sip.conf has many options, you may want to adjust nat if your client is behind nat and not on the same network as your router. Code: location: /opt/etc/asterisk/sip.conf Take care if you want to change the username. Changing the username will require you to make several changes in the following locations. Code: /opt/etc/asterisk/extensions.conf /opt/etc/asterisk/sip.conf My base for getting this going was using "Tomatoware". https://github.com/lancethepants/tomatoware Tomatoware is a little project of mine based on the entware toolchain. Tomatoware provides a minimal native compiling environment for tomato firmware supported routers. Using Tomatoware, I compiled directly on the router all the necessary asterisk dependencies, and then asterisk itself. Sometimes the ability to compile directly on the router is much more simpler that setting up a cross-compile environment. Plus, many packages need patches to be cross-compiled, and it can be a pain in general. Compiling natively on the router will take a great deal longer to achieve. The router's cpu is nowhere close to an x86/x64 computer. Asterisk and its dependencies probably took 8+ hours to compile, but was worth it in the end. Tomatoware is a good alternative if you want to compile something not currently available through optware/entware, or to compile the latest version of something, or compile your own code to run on your router.