NỘI DUNG
Đã bao giờ bạn nghĩ bạn sẽ xây dựng một máy chủ VOIP để liên lạc với nhau mà không mất 1 khoản tiền nào không ? . Tất nhiên bạn có thể làm được điều đó qua bài hướng dẩn này.
Yêu cầu: Một máy chủ VPS và IP Public, cầu hình càng mạnh càng tốt.
Chức năng: Thực hiện hiện các cuộc gọi với nhau qua Line đã được tạo trên hệ thống.
1. Chuẩn bị cài đặt
Một máy chủ VPS với IP Public
2. Các bước tiến hành
2.1 Thiết lập hệ thống
Chú ý: Các câu lệnh phải chạy với quyền cao nhất là root
.
- Bước 1: Tắt SELinux (Không tắt khi cài xong sẽ không hoạt động)
- Hoặc chỉnh sửa trực tiếp trong file cấu hình SELINUX tại: /etc/sysconfig/selinux
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
- Hoặc tắt tức thời bằng lệnh:
setenforce 0
- Tắt xong kiểm tra lại bằng lệnh
sestatus
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: disable Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
- Bước 2: Cập nhật hệ thống
yum -y update yum -y groupinstall core base "Development Tools"
- Bước 3: Cài đặt một số gói đi kèm
yum -y install lynx mariadb-server mariadb php php-mysql php-mbstring tftp-server \ httpd ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel \ audiofile-devel gtk2-devel subversion kernel-devel git php-process crontabs cronie \ cronie-anacron wget vim php-xml uuid-devel sqlite-devel net-tools gnutls-devel php-pear unixODBC \ mysql-connector-odbc texinfo gstreamer-python-devel.x86_64
- Bước 4: Cài đặt Lagacy Pear (PHP)
pear install Console_Getopt
- Bước 5: Cấu hình firewalld cơ bảnNếu sử dụng firewalld, bạn phải mở port 80 để có thể truy cập vào trang quản trị FreePBX.
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
- Bước 6: Khởi động MariaDB
systemctl enable mariadb.service systemctl start mariadb
- Cài đặt MariaDB cơ bản bằng lệnh:
mysql_secure_installation
Vui lòng không đặt password cho user
root
của MariaDB. - Bước 7: Khởi động HTTPD – APACHE
systemctl enable httpd.service systemctl start httpd.service
2.2 Cài đặt các gói hỗ trợ và FreePBX
- Bước 1: Cài đặt gói bộ trợ cho Google Voice (Tùy chọn)
- Cài đặt iksemel
cd /usr/src wget https://src.fedoraproject.org/lookaside/pkgs/iksemel/iksemel-1.4.tar.gz/532e77181694f87ad5eb59435d11c1ca/iksemel-1.4.tar.gz tar xf iksemel-*.tar.gz rm -f iksemel-1.4.tar.gz cd iksemel ./autogen.sh ./configure make make install
- Bước 2: Thêm user cho Asterisk
adduser asterisk -m -c "Asterisk User"
- Bước 3: Cài đặt và cấu hình Asterisk
- Tải mã nguồn của Asterisk
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2
- Biên dịch và cài đặt DAHDI
Chú ý: Nếu bạn không có phần cứng PSTN (T1; E1 card) đang gắn vào máy thì không cần thực hiện bước này.
cd /usr/src tar xvfz dahdi-linux-complete-current.tar.gz tar xvfz libpri-current.tar.gz rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz cd dahdi-linux-complete-* make all make install make config cd /usr/src/libpri-* make make install
- Bước 4: Biên dịch và cấu hình pjproject
cd /usr/src tar -xjvf pjproject-2.4.tar.bz2 rm -f pjproject-2.4.tar.bz2 cd pjproject-2.4 CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\ --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64 make dep make make install
- Bước 5: Biên dịch và cấu hình jansson
cd /usr/src tar vxfz jansson.tar.gz rm -f jansson.tar.gz cd jansson-* autoreconf -i ./configure --libdir=/usr/lib64 make make install
- Trong một số trường hợp, bạn muốn sử dụng file MP3 làm nhạc chờ hoặc trong khi Hold cuộc gọi. Hãy chọn
format_mp3
và lưu lại: - Bước 6: Biên dịch và cấu hình Asterisk
mkdir -p /etc/asterisk && touch /etc/asterisk/ari.conf
-
cd /usr/src tar xvfz asterisk-13-current.tar.gz rm -f asterisk-13-current.tar.gz cd asterisk-* contrib/scripts/install_prereq install ./configure --libdir=/usr/lib64 contrib/scripts/get_mp3_source.sh make menuselect
- Trong một số trường hợp, bạn muốn sử dụng file MP3 làm nhạc chờ hoặc trong khi Hold cuộc gọi. Hãy chọn
-
- Tiếp tục biên dịch:
./configure --with-pjproject-bundled make
make install make config ldconfig chkconfig asterisk off
- Bước 7: Cài đặt các file âm thanh của Asterisk
- Sở dĩ, trong bước biên dịch bên trên; các file âm thanh đã được bung ra sẵn nhưng ở chất lượng thấp. Chúng ta tải thêm file chất lượng cao và giải nén chúng vào thư viện của Asterisk.
cd /var/lib/asterisk/sounds wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz tar xvf asterisk-core-sounds-en-wav-current.tar.gz rm -f asterisk-core-sounds-en-wav-current.tar.gz tar xfz asterisk-extra-sounds-en-wav-current.tar.gz rm -f asterisk-extra-sounds-en-wav-current.tar.gz # Wideband Audio download wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-extra-sounds-en-g722-current.tar.gz rm -f asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-core-sounds-en-g722-current.tar.gz rm -f asterisk-core-sounds-en-g722-current.tar.gz
- Phân quyền cho Asterisk
chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib64/asterisk chown -R asterisk. /var/www/
- Bước 8: Cài đặt và cấu hình FreePBX
- Một vài chỉnh sửa nhỏ với APACHE:
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf systemctl restart httpd.service
- Tải và cài đặt FreePBX
cd /usr/src wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz tar xfz freepbx-13.0-latest.tgz rm -f freepbx-13.0-latest.tgz cd freepbx ./start_asterisk start ./install -n
- Tạo file systemd cho FreePBX
vi /etc/systemd/system/freepbx.service
[Unit] Description=FreePBX VoIP Server After=mariadb.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/fwconsole start -q ExecStop=/usr/sbin/fwconsole stop -q [Install] WantedBy=multi-user.target
- Bước 9: Khởi động và Cấu hình FreePBX
systemctl restart freepbx systemctl enable freepbx
- Truy cập vào Website quản trị
http://ip/
3. Hướng dẫn đổi Port của SIP trong FreePBX
Mặc định, FreePBX sử dụng SIP (5160/UDP) và PJSIP (5060/UDP). Để thay đổi lại, chúng ta làm theo các bước sau:
- Bước 1: Đăng nhập vào Dashboard quản trị
- Bước 2: Trên Menu, chọn Settings > Asterisk SIP Settings
- Bước 3: Chọn tab Chan SIP Settings
1
Không sử dụng NAT2
Chọn Public IP3
Đổi Port mặc định thành5060
- Bước 4: Chọn tab Chan PJSIP Settings
1
Đổi port mặc định của PJSIP2
Lưu lại thông tin- Bước 5: Lưu lại cấu hình
- Bước 6: Khởi động lại FreePBX
systemctl restart freepbx
- Bước 7: Cấu hình firewalld cơ bảnNếu sử dụng firewalld, bạn phải mở port cho SIP và PJSIP
firewall-cmd --zone=public --add-port=5060/udp --permanent firewall-cmd --zone=public --add-port=5160/udp --permanent firewall-cmd --reload
Phần 2: Hướng dẫn cấu hình để thưc hiện cuộc gọi.
Nguồn tham khảo: https://wiki.freepbx.org