Giunsa ang Pag-install sa Asterisk sa CentOS/RHEL 8/7


Ang Asterisk usa ka open-source framework nga gigamit alang sa pagtukod og mga aplikasyon sa komunikasyon. Mahimo nimo kini gamiton aron ibalik ang usa ka lokal nga kompyuter o server sa server sa komunikasyon. Gigamit kini sa pagpaandar sa mga sistema sa IP PBX, mga ganghaan sa VoIP, mga server sa komperensya, ug uban pang mga solusyon. Gigamit kini sa tanang matang sa mga organisasyon sa tibuok kalibotan ug sa kataposan, apan dili sa kataposan kini libre ug bukas nga tinubdan.

Sa kini nga panudlo, ipakita namon kanimo kung giunsa ang pag-install sa Asterisk sa CentOS 8/7 (ang mga panudlo magamit usab sa RHEL 8/7), apan sa wala pa kami magsugod, kinahanglan namon nga maghimo pipila ka mga pagpangandam aron ang Asterisk mahimong modagan nga hapsay pagkahuman sa pag-instalar .

Lakang 1: I-disable ang SELinux sa CentOS

Sa pagbuhat niini, SSH sa imong sistema ug sa paggamit sa imong paborito nga command line text editor, abli /etc/selinux/config ug disable SELINUX.

# vim /etc/selinux/config

Ang linya sa SELinux kinahanglan nga ingon niini:

SELINUX=disabled

Karon i-reboot ang imong sistema. Sa higayon nga kini mobalik pag-usab sa SSH sa maong sistema.

Lakang 2: I-install ang Gikinahanglan nga Mga Pakete

Ang Asterisk adunay pipila ka mga kinahanglanon nga kinahanglan i-install. Mahimo nimong gamiton ang mosunod nga yum command aron i-install ang gikinahanglan nga mga pakete sama sa gipakita.

# 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 libedit libedit-devel

Sa dili pa kami magpadayon, paghimo usa ka bag-ong tiggamit nga adunay mga pribilehiyo sa sudo nga gitawag nga asterisk, gamiton namon kini nga tiggamit sa pag-setup sa asterisk sa sistema.

# adduser asterisk -c "Asterisk User"
# passwd asterisk 
# usermod -aG wheel asterisk
# su asterisk

Sunod, i-install ang PJSIP, usa ka libre nga open source multimedia communication library nga nag-implementar sa standard based protocols sama sa SIP, SDP, RTP, STUN, TURN, ug ICE. Kini ang Asterisk SIP channel driver nga kinahanglan magpauswag sa katin-aw sa mga tawag.

Aron makuha ang pinakabag-o nga bersyon, maghimo una kita og temporaryo nga direktoryo diin atong tukuron ang package gikan sa tinubdan.

$ mkdir ~/build && cd ~/build

Karon adto sa wget command aron i-download ang package direkta sa terminal.

Timan-i nga pinaagi sa pagsulat niini nga artikulo ang pinakabag-o nga bersyon mao ang 2.8, kini mahimong mausab sa umaabot, busa siguroha nga gamiton ang pinakabag-o nga bersyon:

$ wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

Kung kompleto na ang pag-download, kuhaa ang file ug usba kana nga direktoryo.

$ tar xvjf pjproject-2.9.tar.bz2
$ cd pjproject-2.9

Ang sunod nga lakang mao ang pag-andam sa package nga i-compile. Mahimo nimong gamiton ang mosunod nga sugo:

$ ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

Kinahanglang dili ka makakitag bisan unsang mga sayop o mga pasidaan. Siguruha nga ang tanan nga mga dependency nahimamat:

$ make dep

Ug karon makompleto na nato ang pag-instalar ug pag-link sa mga librarya sa:

$ make && sudo make install && sudo ldconfig

Sa katapusan, siguroha nga ang tanan nga mga librarya na-install ug anaa:

$ ldconfig -p | grep pj

Kinahanglan nimo makuha ang mosunod nga output:

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

Lakang 3: I-install ang Asterisk sa CentOS 8/7

Andam na kami karon sa pagsugod sa pag-instalar sa Asterisk. Balik sa among ~/build nga direktoryo:

$ cd ~/build

Adto sa wget command aron i-download ang file sa terminal.

$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Pinaagi sa pagsulat niini nga panudlo, ang pinakabag-o nga bersyon sa Asterisk kay 16. Siguroha nga imong gi-download ang pinakabag-o nga bersyon sa Asterisk, kung imong gisunod ang mga lakang.

Karon kuhaa ang archive ug pag-navigate sa bag-ong nahimo nga direktoryo:

$ tar -zxvf asterisk-16-current.tar.gz
$ cd asterisk-16.5.1

Kini ang panahon sa paghisgot, nga kung gusto nimo nga hatagan ang suporta sa mp3 sa pagpatugtog sa musika samtang ang kliyente gipugngan, kinahanglan nimo nga mag-install og pipila pa nga mga dependency. Kini nga mga lakang kay opsyonal:

$ sudo yum install svn
$ sudo ./contrib/scripts/get_mp3_source.sh

Pagkahuman sa ikaduhang lakang, kinahanglan nimo nga makuha ang output nga susama niini:

A    addons/mp3
A    addons/mp3/Makefile
A    addons/mp3/README
A    addons/mp3/decode_i386.c
A    addons/mp3/dct64_i386.c
A    addons/mp3/MPGLIB_TODO
A    addons/mp3/mpg123.h
A    addons/mp3/layer3.c
A    addons/mp3/mpglib.h
A    addons/mp3/decode_ntom.c
A    addons/mp3/interface.c
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
Exported revision 202.

Pagsugod pinaagi sa pagpadagan sa script sa pag-configure aron maandam ang package alang sa pag-compile:

$ sudo contrib/scripts/install_prereq install
$ ./configure --libdir=/usr/lib64 --with-jansson-bundled

Kung makakuha ka bisan unsang nawala nga mga dependency aron i-install kini. Sa akong kaso, nakuha nako ang mosunod nga sayup:

configure: error: patch is required to configure bundled pjproject

Aron makalibot niini, pagdagan lang:

# yum install patch 

Ug ipadagan pag-usab ang script sa pag-configure. Kung ang tanan nahimo nga hingpit nga wala’y mga sayup, imong makita ang mosunud nga screenshot.

Karon, atong sugdan ang proseso sa pagtukod:

$ make menuselect

Pagkahuman sa pila ka segundo, kinahanglan ka makakuha usa ka lista sa mga bahin aron mahimo:

Kung mosulay ka sa paggamit sa music on hold nga feature, kinahanglan nimo nga i-enable ang \format_mp3 nga feature gikan sa \Add-ons nga seksyon. I-save ang imong listahan ug padagana ang mosunod nga sugo:

$ make && sudo make install

Aron ma-install ang sample nga mga file sa pag-configure, gamita ang mando sa ubos:

$ sudo make samples

Aron masugdan ang Asterisk sa boot, gamita ang:

$ sudo make config

I-update ang pagpanag-iya sa mosunod nga mga direktoryo ug mga file:

$ sudo chown asterisk. /var/run/asterisk
$ sudo chown asterisk. -R /etc/asterisk
$ sudo chown asterisk. -R /var/{lib,log,spool}/asterisk

Sa katapusan, atong sulayan ang atong pag-instalar sa:

$ sudo service asterisk start
$ sudo asterisk -rvv

Kinahanglan nimong makita ang output nga susama niini:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email >
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 16.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>

Kung gusto nimo makita ang usa ka lista sa magamit nga mga command type:

asterisk*CLI> core show help

Aron makagawas sa Asterisk prompt, i-type lang:

asterisk*CLI> exit

Ang asterisk magdagan gihapon sa background.

Karon ikaw adunay usa ka nagdagan nga Asterisk server ug mahimo ka magsugod sa pagkonektar sa mga telepono ug mga extension ug i-adjust ang imong configuration sumala sa imong mga panginahanglan. Alang sa dugang nga mga detalye kung giunsa kini makab-ot, girekomenda nga gamiton ang panid sa Asterisk Wiki. Kung adunay ka mga pangutana o komento, palihug ipahibalo kanamo sa seksyon sa komento sa ubos.