Notes on Asterisk
With autoload=yes, modules are loaded in scandir order, which means symbols aren't always available. Asterisk will re-attempt the loading of the failed modules once, but I've encountered a case where this failed too. So I ended up with no Gosub app... because app_stack.so failed to load.
Fixed it by adding these lines to modules.conf:
preload => res_speech.so preload => res_agi.so
res_agi.so needs a symbol from res_speech.so, that's why they're both in there.
Asterisk could really do a better job here, because the results are voodoo.
You don't need to open a gaping hole in your firewall for RTP. You can let iptables do the translation and tracking, like it's supposed to:
modprobe nf_conntrack_sip sip_direct_signalling=0 sip_direct_media=0 modprobe nf_nat_sip
sccp-chan-b can do [nasty things] to your computer. It froze mine twice in two days once I got it working. Meanwhile, I updated it to V4.0.0 STABLE, and now the result seems to be just crashing my Asterisk. Better than a frozen machine, right? :)
Soon after writing this page, I upgraded to the latest trunk (V4.1, revision 3787), and the crash doesn't happen anymore. Good enough case to use it.
Dianemo's dialplans, coming from the old days, rely on autofallthrough=no.
The easiest way to set this is to create a file called /etc/asterisk/extensions.d/fallthrough.conf with the following content:
Files to keep when blasting /etc/asterisk to get a clean new one
Everything else can be obliterated safely :)