Asterisk
Overview
Asterisk 는 오픈 소스 PBX 이다.
Installation
이곳(http://www.asterisk.org/downloads)에서 최신의 Asterisk 를 다운받아서 설치를 진행해보자. 이 글을 작성하는 시점에서 최신의 버전은 asterisk-13.2.0 버전이다.
pjproject
Asterisk 버전 12 이후부터는 2가지 sip 모듈을 지원하는데, 하나는 기존부터 지원했던 chan_sip 모듈이고, 다른 하나는 pjsip 모듈이다. Asterisk 기본 설치시, 두가지 모듈 전부 설치를 하게 되는데, Asterisk 설치 전 pjproject 가 설치되어 있어야 한다.
이곳(http://www.pjsip.org/download.htm)에서 최신의 pjproject 다운로드를 하거나 git(git clone https://github.com/asterisk/pjproject pjproject) 명령어로 다운로드 후, 아래와 같이 설치를 진행하면 된다.<ref>https://wiki.asterisk.org/wiki/display/AST/Building+and+Installing+pjproject</ref> <source lang=bash> $ ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG' $ make dep $ make $ sudo make install </source> pjproject 설치시, configure 옵션을 반드시 위와 같이 설정하여야 한다.
- 오류
Asterisk-13.2.0 버전 소스 설치시 pjsip 관련하여 문제가 있었다. 다음과 같은 문제였다. <source lang=bash>
[CC] pjsip/dialplan_functions.c -> pjsip/dialplan_functions.o [LD] chan_pjsip.o pjsip/dialplan_functions.o -> chan_pjsip.so
/usr/bin/ld: /usr/local/lib/libpjsip-ua-x86_64-unknown-linux-gnu.a(sip_inv.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libpjsip-ua-x86_64-unknown-linux-gnu.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[1]: *** [chan_pjsip.so] Error 1 make: *** [channels] Error 2 </source> 원인인즉, pjproject 설치 시, 위의 옵션을 사용하여 설치하지 않아서였다. pjproject 설치시, 반드시 위의 옵션을 추가하여 설치하여야 한다.
complie
이제 설치를 진행해보자.
<source lang=bash> $ ./configure $ make $ sudo make install </source>
config files
설치 완료 후, 다음의 명령어로 기본 설정 파일들을 세팅할 수 있다. <source lang=bash>
+---- 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 + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+
pchero@mytravel:/usr/local/src/asterisk-13.2.0$ sudo make samples Installing adsi config files... /usr/bin/install -c -d "/etc/asterisk" Installing configs/samples/asterisk.adsi Installing configs/samples/telcordia-1.adsi Installing other config files... Installing file configs/samples/acl.conf.sample Installing file configs/samples/adsi.conf.sample ... </source>
시작/종료 스크립트도 설치해주자. <source lang=bash> $ sudo make config
Adding system startup for /etc/init.d/asterisk ... /etc/rc0.d/K91asterisk -> ../init.d/asterisk /etc/rc1.d/K91asterisk -> ../init.d/asterisk /etc/rc6.d/K91asterisk -> ../init.d/asterisk /etc/rc2.d/S50asterisk -> ../init.d/asterisk /etc/rc3.d/S50asterisk -> ../init.d/asterisk /etc/rc4.d/S50asterisk -> ../init.d/asterisk /etc/rc5.d/S50asterisk -> ../init.d/asterisk
pchero@mytravel:/usr/local/src/asterisk-13.2.0$ sudo /etc/init.d/asterisk start
* Starting Asterisk PBX: asterisk [ OK ]
pchero@mytravel:/usr/local/src/asterisk-13.2.0$ sudo /etc/init.d/asterisk stop
* Stopping Asterisk PBX: asterisk
</source>
로그 로테이트 관련 설정도 함께 해주고 싶다면 다음을 입력하자. <source lang=bash> $ sudo make install-logrotate </source>
start/stop
이제 Asterisk 를 동작/정지/확인 해보자. <source lang=bash> $ sudo /etc/init.d/asterisk start
* Starting Asterisk PBX: asterisk [ OK ]
$ sudo /etc/init.d/asterisk stop
* Stopping Asterisk PBX: asterisk [ OK ]
$ sudo /etc/init.d/asterisk status
* asterisk is not running
</source>
External links
- https://wiki.asterisk.org/wiki/display/AST/Installing+Asterisk+From+Source | Asterisk 소스 설치 가이드
References
<references />