CentOS에서 소스 코드에서 Asterisk 실전 설치

9780 단어 사례 문서
[b][size=x-large]0, 인용문[/size][/b]
WebRTC 서버의 SIP 명령을 연구하려면 SIP 서버가 있어야 한다. 인터넷에서 참고할 만한 항목을 많이 찾았는데 Asterisk 프로젝트가 그 중 하나이다. 공식 사이트의 Wiki의 지도에 따라 원본에서 Asterisk를 설치한다(https://wiki.asterisk.org/wiki/display/AST/Installing+Asterisk+From+Source), 본고는 설치 과정과 관련 문제의 처리를 기록합니다.
[b][size=x-large]1, 준비[/size][/b]
(1)VMware;
(2) CentOS 64비트 버전(본인은 CentOS 6.4의 64비트 버전을 사용함).
(3) 설치된 가상 기기는 인터넷에 접속할 수 있고 네트워크는 NAT를 사용하도록 권장하며 관련 방법은 인터넷에서 찾을 수 있다.
[b][size=x-large]2, 컴파일 설치 과정 [/size][/b]
[b][size=large] 2.1 CentOS 시스템 소프트웨어를 최신 버전으로 업데이트 [/size][/b]

sudo yum update

[b][size=large] 2.2 관련 원본 패키지 다운로드 [/size][/b]
[table]
| 이름 | 주소 |
|Asterisk|http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz|
|dahdi-complete|http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz|
|libpri|http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz|
|pjproject|http://www.pjsip.org/release/2.5/pjproject-2.5.tar.bz2|
[/table]
주: 본문을 작성할 때 다운로드한 버전
Asterisk 13.9.0
dahdi-complete 2.11.1
libpri 1.5.0
pjproject 2.5
[b][size=large] 2.3 DAHDI-linux-complete[/size][/b] 설치
전화 장치를 통합하지 않거나 MeetMe 다이얼 앱을 사용하지 않으려면 DAHDI를 설치하지 않고 다음 명령을 설치할 수 있습니다.

tar -xvzf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-2.11.1+2.11.1
make && make install
make config

[b][size=large] 2.4 LibPRI[/size][/b] 설치
전화 장치를 통합하지 않거나 MeetMe 다이얼 앱을 사용하지 않으려면 LibPRI를 설치하지 않고 설치할 수 있습니다.
설치 관련 명령은 다음과 같습니다.

tar -xvzf libpri-current.tar.gz
cd libpri-1.5.0
make && make install

참고: LibPRI는 DAHDI에 의존하므로 설치하기 전에 DAHDI가 설치되어 있는지 확인하십시오.
[b][size=large]2.5 pjproject[/size][/b] 설치
1. 컴파일 및 설치, 관련 명령은 다음과 같습니다.

tar -xvjf pjproject-2.5.tar.bz2
cd pjproject-2.5
./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
make dep && make && make install

주의:make 시 "make[2]: g++:Command not found"오류가 발생하면 시스템에 g++의 컴파일 명령이 부족하다는 것을 설명합니다. 아래yum 명령을 사용하여 먼저 설치합니다

yum install -y gcc-c++

2. 공유 연결 업데이트 명령은 다음과 같습니다.

ldconfig

3. pjproject가 올바르게 설치되어 있는지 확인하는 명령은 다음과 같습니다.

ldconfig -p | grep pj

결과는 다음과 같습니다.
[code="java"]
# ldconfig -p | grep pj
libpjsua2.so.2 (libc6,x86-64) =>/usr/lib/libpjsua2.so.이
libpjsua2.so (libc6,x86-64) =>/usr/lib/libpjsua2.so
libpjsua.so.2 (libc6,x86-64) =>/usr/lib/libpjsua.so.이
libpjsua.so (libc6,x86-64) =>/usr/lib/libpjsua.so
libpjsip.so.2 (libc6,x86-64) =>/usr/lib/libpjsip.so.이
libpjsip.so (libc6,x86-64) =>/usr/lib/libpjsip.so
libpjsip-ua.so.2 (libc6,x86-64) =>/usr/lib/libpjsip-ua.so.이
libpjsip-ua.so (libc6,x86-64) =>/usr/lib/libpjsip-ua.so
libpjsip-simple.so.2 (libc6,x86-64) =>/usr/lib/libpjsip-simple.so.이
libpjsip-simple.so (libc6,x86-64) =>/usr/lib/libpjsip-simple.so
libpjnath.so.2 (libc6,x86-64) =>/usr/lib/libpjnath.so.이
libpjnath.so (libc6,x86-64) =>/usr/lib/libpjnath.so
libpjmedia.so.2 (libc6,x86-64) =>/usr/lib/libpjmedia.so.이
libpjmedia.so (libc6,x86-64) =>/usr/lib/libpjmedia.so
libpjmedia-videodev.so.2 (libc6,x86-64) =>/usr/lib/libpjmedia-videodev.so.이
libpjmedia-videodev.so (libc6,x86-64) =>/usr/lib/libpjmedia-videodev.so
libpjmedia-codec.so.2 (libc6,x86-64) =>/usr/lib/libpjmedia-codec.so.이
libpjmedia-codec.so (libc6,x86-64) =>/usr/lib/libpjmedia-codec.so
libpjmedia-audiodev.so.2 (libc6,x86-64) =>/usr/lib/libpjmedia-audiodev.so.이
libpjmedia-audiodev.so (libc6,x86-64) =>/usr/lib/libpjmedia-audiodev.so
libpjlib-util.so.2 (libc6,x86-64) =>/usr/lib/libpjlib-util.so.이
libpjlib-util.so (libc6,x86-64) =>/usr/lib/libpjlib-util.so
libpj.so.2 (libc6,x86-64) =>/usr/lib/libpj.so.이
libpj.so (libc6,x86-64) =>/usr/lib/libpj.so
[/code]
[b][size=large] 2.6 Asterisk[/size][/b] 설치
1. 스트레스 해소

tar -zxvf asterisk-13-current.tar.gz

2. 설치 종속성 확인

cd asterisk-13.9.0
cd contrib/scripts
./install_prereq install
./install_prereq install-unpackaged

3, 구성

./configure

성공하면 다음과 같은 유사한 정보를 볼 수 있다

.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.

configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : unknown : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : unknown : linux-gnu :

제가 설정하는 과정에서 힌트가 부족하고 jansson이 부족한 것을 발견했습니다. 나중에 jansson을 다시 설치하면 됩니다. 관련 명령은 다음과 같습니다.

wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
tar -zxvf jansson-2.7.tar.gz
./configure
make && make install

4. Asterisk 옵션을 설정합니다. 명령은 다음과 같습니다.

make menuselect

인터페이스는 다음과 같습니다.
[img]http://dl2.iteye.com/upload/attachment/0117/5687/b9c0cc35-270b-3210-8e70-43971605d8fe.png[/img]
공식wiki, 주소 보기
https://wiki.asterisk.org/wiki/display/AST/Using+Menuselect+to+Select+Asterisk+Options
또한 pjproject가 제대로 설치되어 있으면 Resource Modules 분류에서res_pjsip 옵션이 활성화되었습니다. 아래 그림과 같습니다.
[img]http://dl2.iteye.com/upload/attachment/0117/5689/921b0066-89eb-3372-9362-4979bfa9715e.png[/img]
5. 컴파일, 관련 명령은 다음과 같다.

make

컴파일이 성공하면 다음과 같은 정보를 볼 수 있습니다

+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
+--------- Asterisk Build Complete ---------+

6. 설치 관련 명령은 다음과 같습니다.

make install

설치에 성공하면 다음과 같은 정보를 볼 수 있습니다.

+---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ make samples +
+ +
+-------------------------------------------+
+---- Asterisk Installation Complete -------+

7, 설치 구성 예제 파일, 관련 명령은 다음과 같습니다.

make samples

8. 초기화 스크립트를 설치합니다. 관련 명령은 다음과 같습니다.

make config
make install-logrotate

[b][size=large]2.7 검증 [/size][/b]
1. 다음과 같이 DAHDI 설치 상태를 확인합니다.

lsmod | grep dahdi

아무런 정보가 없으면 DAHDI가 시작되지 않았을 수도 있습니다. 아래 명령을 사용하여 시작할 수 있습니다

service dahdi start
//
/etc/init.d/dadhi start

DAHDI가 시작되면 다음과 같은 메시지가 표시됩니다.
[code="java"]
# lsmod | grep dahdi
dahdi_transcode 7928 1 wctc4xxp
dahdi_voicebus 40464 2 wctdm24xxp,wcte12xp
dahdi 196544 12 wctdm24xxp,wcte11xp,wct1xxp,wcte12xp,wct4xxp
crc_ccitt 2096 1 dahdi
[/code]
2. Asterisk 설치 상태를 확인하고 Asterisk 상태 명령을 보려면 다음과 같이 하십시오.

service asterisk status
//
/etc/init.d/asterisk status

(1) Asterisk가 시작되지 않으면 다음과 같은 메시지가 표시됩니다.
[code="java"]
# service asterisk status
asterisk is stopped
[/code]
다음 명령을 사용하여 Asterisk를 시작할 수 있습니다.

service asterisk start
//
/etc/init.d/asterisk start

다음 정보가 표시됩니다.
[code="java"]
# service asterisk start
Starting asterisk:
[/code]
(2) Asterisk가 시작되면 다음과 같은 메시지가 표시됩니다.
[code="java"]
# service asterisk status
asterisk (pid 32117) is running...
[/code]
(3) Asterisk가 잠겨 있으면 다음과 같은 메시지가 표시됩니다.
[code="java"]
# service asterisk status
asterisk dead but subsys locked
[/code]
해결 방법은/var/run/asterisk의 내용을 삭제하는 것입니다. 관련 명령은 다음과 같습니다.

rm -rf /var/run/asterisk

[b][size=x-large] 3, 소결 [/size][/b]
이로써 Asterisk는 이미 컴파일하고 설치에 성공했으며, 후속적으로 실전 설정 및 관련 사용 방법을 내놓을 것이다.

좋은 웹페이지 즐겨찾기