آموزش نصب Asterisk بر روی CentOS 7.1

asterisk

 

Asterisk  یک سیستم تلفنی آزاد,Open source و رایگان می باشد و دارای محبوبیت زیادی می باشد که در این مطلب قصد دارم تا نحوه ی نصب آن را بر روی CentOS 7.1 آموزش دهم.این نصب بر روی CentOS 7.1 نسخه ۶۴ بیتی و یا همان x86-64 انجام خواهد شد.

ابتدا سرویس NetworkManager را stop و غیر فعال کنید :

 

#systemctl stop NetworkManager

#systemctl disable NetworkManager

 

سپس سرویس network را start و فعال کنید :

 

#systemctl start network

#systemctl enable network

 

اکنون تنظیمات مربوط به کارت شبکه ی خود را انجام دهید.برای به دست آوردن نام کارت های شبکه ی خود می توانید از دستورهای پایین استفاده کنید :

 

#ip addr sh

#ifconfig -a

به عنوان نمونه برای کارت شبکه ی ens32 فایل مربوط تنظیمات آن را باز کنید :

 

#vi  /etc/sysconfig/network-scripts/ifcfg-ens32
یک نمونه تنظیمات را در پایین مشاهده می کنید :
# Generated by dracut initrd
NAME=”ens32″
DEVICE=”ens32″
ONBOOT=yes
NETBOOT=yes
UUID=”d071151d-d50f-489d-bd62-a815440c4e80″
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.10.180
PREFIX=24
GATEWAY=192.168.10.1
DNS1=4.2.2.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
پس از انجام این تنظیمات باید SELinux را غیر فعال کنید.به همین خاطر فایل تنظیمات آن را باز کنید :
#vi  /etc/selinux/config
سپس دقت نمایید که همچین تنظیماتی را درون فایل اعمال کنید :
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted – Targeted processes are protected,
# minimum – Modification of targeted policy. Only selected processes are protected.
# mls – Multi Level Security protection.
SELINUXTYPE=targeted
اکنون سیستم را reboot کنید.
پس از راه اندازی مجدد سیستم اکنون مخازن EPEL را نصب کنید :
#rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
سپس بسته های مورد نیاز را نصب کنید :
#yum install -y newt-devel gcc gcc-c++ make wget subversion libxml2-devel ncurses-devel openssl-devel sqlite-devel libuuid-devel vim-enhanced patch libtool* perl bison flex-devel flex libtermcap-devel autoconf* automake* autoconf libxml2-devel cmake kernel-devel-$(uname -r)
اکنون وارد مسیر زیر شوید :
#cd /usr/src
سپس سورس کدهای dahdi,libpri و استریسک را دانلود نمایید :
# wget -c http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.10.2+2.10.2.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.15.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-13.4.0.tar.gz
گفتنی است شما بر اساس نیاز خود می توانید نسخه ی مورد نظر از هر کدام از بسته های گفته شده را دانلود کنید.
اکنون بسته ها را از حالت فشرده خارج کنید :
#tar -xzvf  dahdi-linux-complete-2.10.2+2.10.2.tar.gz
#tar -xzvf  libpri-1.4.15.tar.gz
#tar -xzvf  asterisk-13.4.0.tar.gz
اکنون به ترتیب ابتدا Dahdi را نصب کنید :
#cd  dahdi-linux-complete-2.10.2+2.10.2
#make all
#make install
#make config
سپس Libpri را نصب کنید :
#cd  libpri-1.4.15
#make
#make install
و در پایان Astersik را نصب کنید :
#cd asterisk-13.4.0
اکنون این دستور را اجرا کنید :
# ./contrib/scripts/install_prereq test
دستور بالا در واقع اسکریپتی می باشد که پیش نیازهای استریسک را تشخیص می دهد و در صورت وجود بسته های پیش نیاز به شما اطلاع می دهد که با استفاده از خروجی که به شما می دهد،می توانید بسته های گفته شده را نصب کنید.
از آنجایی که نصب را بر روی یک سیستم ۶۴ بیتی انجام می دهیم،این دستور را اجرا کنید :
#./configure --libdir=/usr/lib64

install-asterisk
سپس این دستور را اجرا کنید و بر اساس نیاز خود موارد مورد نیاز را انتخاب و ذخیره نمایید :
#make menuselect
install-asterisk
اکنون این دستور را اجرا کنید :
#make
install-asterisk
سپس این دستور را اجرا کنید :
#make install
install-asterisk
اگر برای اولین بار است که استریسک را روی  سیستم نصب می کنید می توانید این دستور را اجرا کنید تا فایل های تنظیمات sample برای شما ایجاد شود :
#make samples
توجه داشته باشید اگر روی سیستمی که قبلا استریسک وجود دارد و تنها می خواهید آن را بروزرسانی کنید،دستور بالا را اجرا نکنید زیرا فایل های تنظیمات شما از بین خواهد رفت و فایل های نمونه جایگزین آنها خواهند شد.
اکنون این دستور ها را اجرا کنید :
#make config
# make install-logrotate
نصب استریسک به پایان رسید.
اکنون برای کنترل سرویس dahdi می توانید از این دستورها استفاده کنید :
# systemctl status dahdi
# systemctl start dahdi
# systemctl restart dahdi
# systemctl stop dahdi
برای کنترل سرویس Asterisk می توانید از این دستورها استفاده کنید :
#systemctl status asterisk
#systemctl start asterisk
#systemctl restart asterisk
#systemctl stop asterisk
پیکربندی دیوار آتش :
سری هفت توزیع CentOS از Firewalld به عنوان دیوار آتش استفاده می کند که به صورت پیش فرض فعال می باشد.اکنون نیاز است تا برای استفاده از استریسک پورت های مورد نیاز را روی دیوار آتش باز کرد.
جهت بررسی وضعیت دیوار آتش کافیست از یکی از دستورات پایین استفاده کنید :
# systemctl status firewalld
# firewall-cmd --state
جهت نمایش Zone پیش فرض و نام رابط های شبکه ی آن Zone از این دستور می توانید استفاده کنید :
# firewall-cmd --get-active-zones
یک نمونه از خروجی دستور را مشاهده می کنید :
# firewall-cmd --get-active-zones

public
interfaces: ens32

همانطور که در خروجی دستور بالا مشاهده می کنید Zone پیش فرض public و نام رابط شبکه ens32 می باشد.
اکنون برای باز کردن پورت های مورد نیاز برای پروتکل SIP این دستورها را اجرا کنید :
# firewall-cmd --permanent  --zone=public --add-port=5060/tcp
# firewall-cmd --permanent  --zone=public --add-port=5060/udp
# firewall-cmd --reload
برای باز کردن پورت های مربوط به RTP این دستورها را اجرا کنید :
#firewall-cmd  --permanent  --zone=public --add-port=10000-20000/udp
# firewall-cmd --reload
جهت باز نمودن پورت های مربوط به پروتکل IAX این دستورها را اجرا کنید :
# firewall-cmd --permanent --zone=public --add-port=4569/tcp
# firewall-cmd --permanent --zone=public --add-port=4569/udp
# firewall-cmd --reload

برای مشاهده تغییرات انجام شده بر روی دیوار آتش Firewalld می توانید از این دستور استفاده کنید :

 # firewall-cmd --zone=public --list-all
در پایین یک نمونه از خروجی دستور گفته شده را مشاهده می کنید :
# firewall-cmd –zone=public –list-all
public (default, active)
interfaces: ens32
sources:
services: dhcpv6-client ssh
ports: 5060/tcp 10000-20000/udp 4569/tcp 5060/udp 4569/udp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
اکنون پس از پیکربندی استریسک و ساختن داخلی (Extension) ، کلاینت های شما به راحتی می توانند با IP Phone و یا Soft Phone به سیستم وصل شوند و از سیستم تلفنی استریسک استفاده کنند.

دیدگاه شما چیست؟