9. 우분투 Asterisk + FreePBX 서버 구축[수정]

category 서버/리눅스 서버 2014.07.11 23:21

안녕하세요 도정진입니다. (이 글은 근 6일간 삽질을 통해 작성되었습니다. ㅠㅠ)

     

삼성 인터넷 전화나 LG 070 에 쓰이는 방식과 거의 비슷한 Asterisk 가 있습니다.

     

Astersik 서버는 일종의 팩스나 전화 등등을 처리하는 서버로써 많은 기능을 가지고 있지만

     

저는 여기서 SIP 기능만 설정해 보도록 하겠습니다.

     

SIP 기능이란 인터넷 전화를 이야기 합니다.! (영상통화 기능도 포함되어 있습니다.)

     

이 서버의 도입 목적은 요즘에 카카오톡 보이스톡이나 행아웃, 스카이프를 통해 영상통화를 하게 되는데 품질이 떨어져서 직접 서버를 구축하고 싶어져 통화 품질을 높이는 데 있고 지인들과 무료로 통화하기 위한 서버를 구축하는 것입니다.

     

말로써 설명하는 것은 느낌이 잘 오지 않기 때문에 먼저 설치를 해 보도록 하겠습니다.!

     

     

     

1. 사전에 필요한 패키지 설치하기

     

'apt-get -y install make gcc g++ libxml2 libxml2-dev ssh libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev linux-libc-dev sqlite libnewt-dev libusb-dev zlib1g-dev libmysqlclient15-dev libsqlite0 libsqlite0-dev bison openssl libssl-dev libeditline0 libeditline-dev libedit-dev mc sox libedit2 libedit-dev curl libcurl4-gnutls-dev apache2 libapache2-mod-php5 php-pear openssh-server build-essential openssh-client zlib1g zlib1g-dev libtiff4 libtiff4-dev libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl mpg123 libiksemel-dev php5 php5-cli mysql-server php5-mysql php-db libapache2-mod-php5 php5-gd php5-curl mysql-client'

     

     

설치도중에 에러가나는 패키지가 있을 수 있습니다. 이떄 터미널 창에 대신 이걸 설치해 보라고 영어로 뜰껍니다. 그것으로 수정하셔서 설치를 진행해 주세요!

     

Asterisk 는 MySQL 을 사용하기 때문에 중간에 계정 정보를 물어보게 됩니다. 설치를 간편화 하기 위해서 비밀번호는 입력하지 마세요.

     

     

     

     

     

     

     

2. Asterisk 소스 받기 및 컴파일 후 설치하기

     

소스를 받기 위해서 소스를 받을 위치를 정해줍니다! 저는 /usr/src 에 받기로 했어요!

     

'cd /usr/src'

     

그 다음 Asterisk 소스를 받습니다!

     

'wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8-current.tar.gz'

     

     

소스를 받으셨으면 압축을 풀어야 겠죠? (시간이 조금 걸립니다!)

     

'tar xvfz asterisk-1.8-current.tar.gz'

     

     

마지막으로 압축이 풀린 폴더로 이동합니다. (혹시나 상위버전이 다운될 수 있음으로 폴더 맞춰 주세요!)

     

'cd asterisk-1.8.27.0'

     

이동하시고 나서 먼저 빌드 상황에 대해서 컨피그를 해야 합니다. 그 후 빌드를 하고 설치합니다.

     

'./configure'

     

     

'make' (시간이 꾀 걸립니다.)

     

     

'make install'

     

     

'make samples'

     

     

'make config' (이 작업은 서비스로 자동실행되게 해 줍니다.)

     

     

설치가 끝났습니다.! 그럼 정상적으로 구동되고 있는지 알아 볼까요?

     

일단 'reboot' 을 통해 한번 재부팅 해 주시고

     

다음 터미널에 'asterisk -r' 을 입력하여 아래의 화면이 보이면 정상적으로 구동되고 있는 것입니다.!

     

     

     

     

     

     

     

3. FreePBX 설치하기

     

다시 소스를 받을 위치로 이동해 줍니다.

     

'cd /usr/src/'

     

이제 asterisk 가 사용할 유저를 만들어 주고 소유자를 변경해 주어야 합니다. 따라서 아래의 명령을 실행합니다.

     

asterisk 의 계정을 만들고 비밀번호가 없는 계정임을 명시합니다.

     

그리고 특정 폴더에 대해서 asterisk 가 소유권을 가지게끔 설정합니다.

     

'useradd -c "Asterisk PBX" -d /var/lib/asterisk asterisk'

'chown -R asterisk:asterisk /var/run/asterisk'

'chown -R asterisk:asterisk /var/log/asterisk'

     

php-pear 을 설치합니다.

     

'apt-get install php-pear'

'pear install db'

'reboot'

     

그리고 웹서버 설정을 바꾸셔야 됩니다.

웹서버 구동 계정을 asterisk 로 바꾸는 작업인데 지금 운영중인 서버가 있다면 좀 고민을 해 봐야 하는 부분이네요.

     

WinSCP 를 통해 /etc/apache2/apache2.conf 파일을 엽니다.

     

그리고 아래에 구문을 추가합니다.

     

     

그 다음 sites-enabled 에 가셔서 000-default 파일을 수정합니다.

     

     

AllowOverride 부분을 All 로 바꿉니다.

     

     

(이미 가상호스트 운영중이신 분들은 파일을 백업하시고 진행하세요. 나중에 가상호스트를 마음에 드는 포트로 바꾸고 원래 80번 호스트파일로 바꾸시고 FreePBX 용 호스트 파일은 000-default-….. 파일이름을 변경해 주시면 됩니다. 그리고 FreePBX 용 가상호스트를 설정하실 때 apache2.conf 에 Listen (포트번호) 설정이 되어 있으셔야 됩니다.

     

이런 식으로 말이죠!!

     

     

FreePBX 의 웹파일이 놓일 위치를 만들고 소유자를 변경합니다.

     

'mkdir /var/www/html'

'chown -R asterisk. /var/www/'

     

     

그리고 웹서버를 재시작 합니다.

     

     

'service apache2 restart'

     

     

다음 FreePBX 설치를 위해 소스를 받고 압축을 풉니다.!

     

'wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz'

     

     

'tar zxvf freepbx-2.9.0.tar.gz'

     

그 다음 freepbx 가 압축이 풀린 곳으로 이동합니다.

     

'cd freepbx-2.9.0'

     

그리고 MySQL 데이터 베이스를 설정해야합니다.

     

초기에 데이터 베이스 2가지가 필요하고 미리 필드가 입력되어 있어야 되기 때문에 DB 2개를 만들고 그 DB에 미리 들어가 있어야하는 데이터베이스 파일을 import 하는 과정입니다. 진행하실 때 MySQL 비밀번호를 물어보게 되는데 이는 위에 설치 당시에 설정한 비밀 번호를 입력하시면 됩니다.

     

'mysqladmin create asterisk'

'mysqladmin create asteriskcdrdb'

'mysql asterisk < SQL/newinstall.sql'

'mysql asteriskcdrdb < SQL/cdr_mysql_table.sql'

     

위의 방식은 mysql 에서 비밀번호가 설정이 되지 않은 상태에서 진행하는 방식입니다.

     

     

아래의 방법은 mysql 에 root 계정 비밀번호가 설정되어 있을 때 진행하시면 됩니다.

     

'mysqladmin -u root create asterisk -p'

'mysqladmin -u root create asteriskcdrdb -p'

'mysql -u root asterisk -p < SQL/newinstall.sql'

'mysql -u root asteriskcdrdb -p < SQL/cdr_mysql_table.sql'

     

     

그리고 로컬 계정 asterisk 에 대해서 DB 엑세스 권한을 주기 위해서 아래의 명령어를 입력합니다.

     

' mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';" '

     

' mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';" '

     

' mysql -u root -p -e "flush privileges;" '

     

     

     

mysql 비밀번호가 설정되어 있지 않으신 분들은 아래의 명령어로 진행합니다.

     

'mysql'

'GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '******';'

'GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '******';'

'flush privileges;'

'exit'

     

저기 ****** 된 곳에는 원하는 비밀번호를 입력하시면 됩니다. mysql 비밀번호가 아니라 로컬 계정에서 접속하는 비밀번호 입니다. 참고하세요~

     

     

     

이제 FreePBX 를 설치할 타임입니다.!

     

asterisk 를 재시작하고 amp 를 설치하는 과정입니다.

     

     

'service asterisk stop'

     

'./start_asterisk start'

     

'./install_amp --username=asteriskuser --password=******'

     

패스워드는 위의 ****** 부분에 설정한 비밀번호를 입력하시면 됩니다.

     

설치를 진행하면서 많은 것을 물어보는데 그냥 엔터 치시고 넘어가면 됩니다.

     

그리고 아래의 부분에서는 꼭 입력해 주세요!

     

Enter the path to use for your AMP web root:

[/var/www/html] /var/www/html

     

     

     

'amportal a ma installall'

     

설치를 하고 모듈을 연결해 준 다음 시작합니다.

     

'ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3'

     

'amportal reload'

     

그리고 권한 설정을 asterisk:asterisk 로 설정해 주시고 WinSCP 에서는 그룹설정시, 소유자 및 권한 변경에 체크하세요.

     

권한은 777로 수정합니다.

     

     

     

     

     

     

이에 따라 설치가 끝났고 마지막으로 데몬들을 재시작 해 줍니다.

     

'amportal stop'

'service apache2 stop'

'service mysql stop'

     

'service apache2 start'

'service mysql start'

'amportal start'

     

     

FreePBX 의 절대적인 위치는 위 설치 과정에 따르면 /var/www/html 입니다.

     

웹서버 설정이 기본 그대로라면

     

http://자신의아이피/html 로 들어가보시면 됩니다.

     

기본 로그인 계정과 암호는 admin:admin 입니다.

     

들어가시면 로그인 페이지가 보일 껍니다. 그런데 심링크 설정이 잘못되었다고 나옵니다.

     

따라서 이 문제를 해결하기 위해!

     

     

터미널에서 아래의 명령을 입력합니다.

     

'cd /etc/asterisk'

'rm ccss.conf confbridge.conf features.conf sip.conf iax.conf logger.conf extensions.conf sip_notify.conf'

     

그리고 FreePBX 에서 모듈로 이동하시어 Camp On 모듈을 삭제하시고 재설치 해 주시면 해결됩니다.

     

모듈을 선택해 주시고 언인스톨에 체크하신 다음, 오른쪽 상단에 Proceed 를 누르시면 삭제가 되고 다시 Install 에 체크하시고 프로씨드 하면 설치가 됩니다.

     

     

     

설치가 완료 되었습니다. 감사합니다.

     

이 글이 MK802IV 에서 진행된것이 맞냐 여쭤보시는 분들이 계신데 MK802IV 에서 모두 작업한 것입니다.

     

     

     

     

     

     

   


댓글을 달아 주세요

  1. 2014.12.08 09:54

    비밀댓글입니다

  2. 2015.01.12 00:47

    비밀댓글입니다

  3. 2015.11.30 14:45

    비밀댓글입니다

  4. 2019.05.31 15:19

    비밀댓글입니다