====== Build a PBX with YUM Using CentOS, Asterisk and a GUI ====== * CentOS 5 (x64, latest) * Asterisk 10 * Choice of GUIs * FreePBX 2.10 * Asterisk GUI 2.0 ===== Documentation ===== https://wiki.asterisk.org/wiki/display/AST/Asterisk+10+Documentation https://wiki.asterisk.org/wiki/display/AST/Asterisk+Packages ===== Hosted VPS ===== http://tutorialsbay.com/how-to-isntall-asterisk-freepbx-on-a-vps/ If you are starting from a preinstalled CentOS server: yum groupremove 'DNS Name Server' yum groupremove 'Editors' yum groupremove 'Legacy Network Server' yum groupremove 'Mail Server' yum groupremove 'Network Servers' yum groupremove 'System Tools' yum groupremove 'Text-based Internet' yum groupremove 'Web Server' yum groupremove 'Windows File Server' yum remove yum-updatesd cups cups-lpd redhat-lsb autofs pcsc-lite smartmontools cpuspeed avahi ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime Now skip the next section... ===== Minimal CentOS 5 Install ===== Do a [[computing:linux:minimal_centos_install|Minimal Install]] of Centos 5 x64. I generally disable IPv6 since I've never used it on a PBX. After the reboot: yum update -y then reboot again. ===== Security ===== http://www.freepbx.org/support/documentation/howtos/howto-setup-a-remote-sip-extension Disable selinux: setenforce 0 vim /etc/selinux/config SELINUX=disabled ==== Firewall ==== FIXME vim /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4445 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 5060:5061 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 10000:20000 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4569 -j ACCEPT service iptables reload iptables -nL ===== RepoForge Repository ===== Here we add the RepoForge Repository (x64) needed to install ''mpg123'': wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm rm -f rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm Now e disable the repo so it doesn't pollute anything later: vim /etc/yum.repos.d/rpmforge.repo enabled=0 ===== Install Asterisk ===== :!: Digium now provides separate repositories for different Asterisk versions (1.4, 1.6, 1.8 and 10). :!: Once you install an Asterisk version, its repo will be enabled permanently. Check for updates and additional (64-bit) packages [[http://packages.asterisk.org/centos/5/current/x86_64/RPMS/|here]] and Asterisk 10 packages [[http://packages.asterisk.org/centos/5/asterisk-10/x86_64/RPMS/|here]]. yum install --enablerepo=rpmforge dnsmasq mpg123 rpm -Uvh http://packages.asterisk.org/centos/5/current/x86_64/RPMS/asterisknow-version-2.0.0-4_centos5.noarch.rpm http://www.voip-info.org/wiki/view/Asterisk+addon+asterisk-addons The ''asterisk-addons'' and ''asterisk-sounds-extra'' packages are optional. They include MySQL support for call detail records and MP3 support for Music on Hold (MOH) as well as additional pre-recorded sounds. The following command also installs ''ulaw'' formatted sounds to reduce transcoding and documentation (at the expense of disk space). yum install --enablerepo=asterisk-10 asterisk asterisk-configs asterisk-addons \ asterisk-sounds-core-en-ulaw asterisk-sounds-extra-en-gsm asterisk-sounds-extra-en-ulaw \ dahdi-tools dahdi-tools-doc :!: Once installed, you can search for additional asterisk-related packages using a web browser to the repo URLs or at the command line with YUM: yum search asterisk ===== Upgrading ===== yum update ====== PBX Management ====== :!: If you're 'virtual', take a snapshot or backup now! ===== Asterisk GUI ===== * Asterisk GUI is a lightweight tool appropriate for appliances. * For safety and security, make a backup of the (default) Asterisk configuration * The first time you use the GUI, much of the configuration is modified. * If something goes wrong, just copy the original folder back and re-run the GUI login. ==== Install ==== yum install asterisk-gui reboot ==== Configuration Backup ==== cp -avr /etc/asterisk /etc/asterisk.orig ==== Configure ==== Be sure the firewall is open on port 8088. Replace xxx.xxx.xxx.xxx with the IP of your PBX. http://xxx.xxx.xxx.xxx:8088/static/config/index.html :!: The default username and password are **admin / password**. :!: After logging in and changing the password, reboot. reboot See **[[voice:pbx:asterisk:asterisk-gui|Asterisk-GUI Configuration]]**. ===== FreePBX ===== ==== Install ==== yum install asterisk-addons freepbx* reboot ==== Configure ==== Be sure the firewall is open on ports 80 and 443. Replace xxx.xxx.xxx.xxx with the IP of your PBX. http://xxx.xxx.xxx.xxx :!: The default username and password are **admin / admin**. :!: See **[[voice:pbx:freepbx:freepbx_config|FreePBX Configuration]]**. ===== Timing Sources ===== https://wiki.asterisk.org/wiki/display/AST/Timing+Interfaces List existing modules: ls /usr/lib/asterisk/modules asterisk -vvvvvvvvr *CLI> module show like timing Show current timing source from the Asterisk CLI: asterisk -vvvvvvvvr *CLI> timing test Modify order of timing sources: vim /etc/asterisk/modules.conf [modules] preload => res_timing_timerfd.so preload => res_timing_dahdi.so preload => res_timing_pthread.so