Asterisk User Configuration
Upon initial boot up there is a generic, fully functional Asterisk configuration loaded. This is sufficient for simple testing of Asterisk, but you will very quickly feel the need to amend the configuration to suit your own purposes. This is accomplished through loading your own Asterisk configs, which are not part of the CF boot image. Since the Soekris board provides a USB port, the easiest approach is to use a small USB key drive to hold the user-defined config files. Astlinux provides a simple command line utility for setting this up.
genkd at the console invokes a shell script that formats the USB key and places default config files in the correct locations on it. After a quick reboot, the system uses symbolic links to read the Asterisk config files from the USB key instead of the CF card. The USB key also becomes the storage location for any incoming voicemail messages.
Since the USB key is easily swapped, this approach lends itself especially well to experimenting with various Asterisk configurations - moving between them is as simple as changing keys and rebooting. It's easy to see how this could be valuable to a telecom consultant for example, who could program complex dial plan logic or interactive voice response systems, then simply move the USB key to a production server to deliver the working system.
In reality, the choice of a USB key is a matter of convenience; you could elect to use an internal or external hard drive or even an NFS share. If you are using the generic 586 boot image of Astlinux on CD you could have the server boot to CD and store configs and voice mail on essentially any form of local media.
Figure 4: SSH client logged into the Astlinux server
Once the basic system was up and running with a USB key as local config storage, my next task was to get my existing configs moved from the old server to the Soekris system. As is my habit, I used an SSH client to log into the old system from my Windows desktop. My SSH program of choice (www.privateshell.com) includes SFTP capability, which I used to copy the contents of /etc/asterisk/ to a folder on my PC desktop. I then logged off the old system and logged into the new one, put all the configs into /etc/asterisk/, and rebooted the Soekris system from the command line.
While I use Private Shell, the freeware PUTTY suite of programs provides both SSH and SFTP clients that could also be used in this manner.
Figure 5: SFTP client logged into Astlinux, viewing a file list of /etc/asterisk/
Many IP phones rely upon some form of central provisioning scheme. The Polycom & Aastra phones that I presently use can be configured to load their firmware and configuration from a local FTP or TFTP server. Happily, Astlinux provided both of these by default, so all I had to do was set the phones to use FTP and give them suitable login credentials. The root directories for these services are also symbolic links to a folder on the USB key drive.
Astlinux also provides an NTP client and server pair. Upon booting, it seeks an Internet NTP server from pool.ntp.org, then provides an NTP service to devices on the local LAN. This is a very convenient way to ensure that all of your phones and call records have matching time and date settings.