Here it is, a ready to rock AsteriskNow VM for XenServer, ready to download as a .xva file. It includes:
- CentOS 5.9 (because only 5 is offically supported yet)
- Asterisk 10 (v10.12.2)
- FreePBX 2.10 (v2.10.1.9)
- ARI (Call Recording)
- Xe-tools (optimized for Xenserver 6.1)
Get a cheap or free SIP Trunk Provider, some Cisco IP Phones or a Siemens Gigaset IP DECT from EBay and you’re done!
I tried a lot of options to build this Appliance like: Installing the AsteriskNow ISO file, isntalling using a install script and even converting VMWare and VirtualBox appliances. All were having problems with the Kernel, booting, Paravirtualization,..etc.
Here are the 10 (+1) steps to build it yourself:
- Install the base CentOS 5.9 using the CentOS 5 x64 Template in Xenserver. I did a NetInstall.
- Install the Xen PV Tools; Mount the xe-tools ISO, then type:
mkdir /mnt/cdrom
mount /dev/xvdd /mnt/cdrom
/mnt/cdrom/Linux/install.sh
- Do all the updates:
yum update
- Install the Asterisk Repository
rpm -Uvh http://packages.asterisk.org/centos/5/current/x86_64/RPMS/asterisknow-version-2.0.0-4_centos5.noarch.rpm
- Install Asterisk
yum install asterisk asterisk-configs --enablerepo=asterisk-10
- Install FreePBX
yum install freepbx
- Install Asterisk Addons (MySQL for CDR, otherwise CDR/recordings doesn’t work)
yum install asterisk-addons
- Rename some files (otherwise we get some FreepBX notices)
cd /etc/asterisk
mv features.conf features.conf.old
mv iax.conf iax.conf.old
mv sip_notify.conf sip_notify.conf.old
mv logger.conf logger.conf.old - Set the file permissions correctly:
chown -R asterisk.asterisk /var/lib/asterisk/agi-bin/
chown -R asterisk.asterisk /etc/asterisk - Apply all settings
/var/lib/asterisk/bin/retrieve_conf
- Load the SIP module (in my case it wasn’t loaded which gave some problems, if it’s already loaded you’ll get an error, which is OK)
rasterisk
module load chan_sip.so
exit
Handy commands to see if everything is running fine
Enter Asterisk Command Line
rasterisk
Display all SIP connections (Trunks + connected Phones)
sip show peers
See if the SIP Trunk is registered
sip show registry
See if CDR is running
cdr show status
Check if the (CDR) MySQL module is loaded
module show like mysql
VM Information and passwords
IP Address: Automatically from DHCP or type ‘setup’ to set a static IP.
Linux root account: root
Password: myphonesvr
FreePBX URL: http://
Username: admin
Password: admin
ARI URL: http://
Username: admin
Password: myaripass
MySQL password (used for CDR/recordings)
username: freepbx
password: fpbx
MySQL root password: None, just login from the Linux command line using: ‘mysql -u root’.
Handy FreePBX Modules (install from the FreePBX Webinterface):
- Ring Groups
- Follow Me
- Asterisk Info
- Asterisk Logfiles
- Asterisk SIP Settings
In my setup (even after a doing YUM UPDATE yesterday, which installs ‘ asterisk now 3.0.1) the system hangs after some time..
After some time it refuses to accept SIP connections and a reload of asterisk/freepbx fails.
The problem was the pthread driver/module.
To see if it is in use/loaded, type “rasterisk” and then:
module show like timing
It probably shows the DAHDI and the PTHREAD drivers and probably the PTHREAD driver has a use count of 1 or 2.
To unload the driver: “vi /etc/asterisk/modules.conf” and add the following line to the end of the file:
noload => res_timing_pthread.so
Reboot the system and it shouldn’t hang anymore..
This worked for me on older versions of Xen, but I found the netinstall.iso will not boot for some reason, but CentOS-5.9-i386-bin-1of8.iso will boot and then you can select HTTP and put in the name of a server to install off.
When you install asterisk, it drags in dahdi stuff (useless in Xen) and then drags in a non-Xen kernel just to be annoying. Make sure you check your grub and see that it is still booting the correct kernel.