آموزش نصب Asterisk روی CentOS 7
جمعه, ۴ اسفند ۱۳۹۶، ۱۰:۱۶ ب.ظ
با سلام
برای مشاهده آموزش نصب و راه اندازی سرویس Asterisk روی لینوکس CentOS 7 به ادامه مطلب مراجعه فرمایید...
این آموزش تست شده میباشد و بدون هیچ مشکلی میتوانید نرم افزار استریسک را روی لینوکس نصب کنید
مراحل نصب:
1.ابتدا اطمینان خاطر کسب کنید که سرویس SELinux شما غیر فعال باشد ، برای بررسی این مورد با یکی از ویرایشگر های متن معروف (ترجیها Vim)
آدرس زیر را باز کنید و سپس بررسی کنید SELINUX=disabled باشد :
/etc/selinux/config
2.پکیج های سیستم را آپدیت کنید:
sudo yum update
3.یک بار ریبوت دهید :
reboot
4.نوبت به انجام تنظیمات فایروال IPTables میرسد ، ابتدا دستور زیر را اجرا کنید:
sudo iptables -L
خروجی باید شبیه زیر باشد:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
حالا با استفاده از ویرایشگر متن مورد علاقتون فایل زیر را بسازید :
/etc/iptables.firewall.rules
و در فایل ساخته شده متن زیر را Copy و Paste کنید و سپس فایل را ذخیره کنید:
*filter
# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT
# Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allow SSH connections
#
# The -dport number should be the same port number you set in sshd_config, ie 8050
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# SIP on UDP port 5060, 5061 for secure signaling. Used for signals such as "hang up"
-A INPUT -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -p udp -m udp --dport 5061 -j ACCEPT
# IAX2- the IAX protocol - comment out if you don't plan to use IAX
# -A INPUT -p udp -m udp --dport 4569 -j ACCEPT
# IAX - old IAX protocol, uncomment if needed for legacy systems.
# -A INPUT -p udp -m udp --dport 5036 -j ACCEPT
# RTP - the media stream - you can change this in /etc/asterisk/rtp.conf
-A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
# MGCP - if you use media gateway control protocol in your configuration
-A INPUT -p udp -m udp --dport 2727 -j ACCEPT
# Uncomment these lines if you plan to use FreePBX to manage Asterisk
# -A INPUT -p tcp --dport 80 -j ACCEPT
# -A INPUT -p tcp --dport 443 -j ACCEPT
# Allow ping
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP
COMMIT
5.حال باید iptables-services را نصب ، فعال و اجرا کنید:
sudo yum install -y iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables
حال باید فایلی که ساختید را فراخوانی کنید:
sudo iptables-restore < /etc/iptables.firewall.rules
حال اگر دستور iptables -L را اجرا کنید خروجی باید شبیه زیر باشد:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8050
ACCEPT udp -- anywhere anywhere udp dpt:sip
ACCEPT udp -- anywhere anywhere udp dpt:iax
ACCEPT udp -- anywhere anywhere udp dpts:ndmp:dnp
ACCEPT udp -- anywhere anywhere udp dpt:mgcp-callagent
ACCEPT icmp -- anywhere anywhere icmp echo-request
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
نتیجه را ذخیره کنید:
/usr/libexec/iptables/iptables.init save
6.در این مرحله باید Dependency های مورد نیاز قبل از نصب استریسک را نصب کنید:
sudo yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel
7.حال باید PRPROJECT که در واقع Channel Driver سرویس SIP میباشد را نصب کنید ، برای این کار دستورات زیر را به ترتیب اجرا کنید:
mkdir ~/build
cd ~/build
wget http://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2
tar -jxvf pjproject-2.3.tar.bz2
cd pjproject-2.3
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
اگر تا اینجا دستورات صحیح وارد شده باشد نباید خطایی مشاهده گردد ، در صورت عدم مشاهده خطا ، ادامه دهید و دستورات زیر را وارد کنید
make dep
make
sudo make install
sudo ldconfig
sudo ldconfig -p | grep pj
زمانی که دستور آخر را وارد کردید ، اگر مراحل صحیح باشد باید خروجی مانند خروجی زیر را مشاهده کنید:
libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
libpj.so (libc6,x86-64) => /lib64/libpj.so
8.نصب DAHDI (دلخواه میباشد)
*نصب این نرم افزار در صورتی که از کارت های تلفنی استریسک میخواهید استفاده کنید ضروری میباشد ، در غیر این صورت از این مرحله گذشته و به مرحله 9 مراجعه کنید و ادامه دهید
cd ~/build
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar -zxvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-2.10.2+2.10.2/
*لازم به ذکر است در این مرحله ممکن است ورژن dahdi که نصب کردید با فایل نام برده شده متفاوت باشد ، در این صورت باید بعد از دستور cd فایل خودتان که شبیه همین فایل نام برده شده میباشد و فقط شاید مقداری ورژن آن تغییر کرده باشد را بنویسید و enter کنید ، سپس ادامه دهید:
make
sudo make install
sudo make config
9.نصب استریسک (Asterisk) :
cd ~/build
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar -zxvf asterisk-13-current.tar.gz
cd asterisk-13.5.0
*باز هم به جای "asterisk-13.5.0 ورژن خودتان را بزنید.
10.فعالسازی MP3 Support :
sudo yum install svn
contrib/scripts/get_mp3_source.sh
11.کانفیگ و ساخت استریسک:
./configure --libdir=/usr/lib64
make
sudo make install
sudo make samples
sudo make config
تبریک ، در حال حاضر سرویس استریسک روی سیستم عامل لینوکس نصب گردید.
حال برای اجرای استریسک دستورات زیر را وارد کنید:
sudo service asterisk start
asterisk -rvv
در حال حاضر شما در محیط CLI استریسک هستید.
با سپاس که با ما همراه بودید.
لطفا در صورت هرگونه سوال درباره این آموزش در بخش نظرات سوال خود را مطرح فرمایید.
*به زودی کتاب آموزش استریسک داخل سایت گذاشته خواهد شد.