안녕하세요 도정진입니다. (이 글은 근 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 에서 모두 작업한 것입니다.
'서버 > 리눅스 서버' 카테고리의 다른 글
10. 우분투/데비안 다운로드 서버 (jDownloader) 구축하기 (0) | 2014.07.11 |
---|---|
9.1 우분투 Asterisk + FreePBX 활용 (458) | 2014.07.11 |
8. 우분투 음악 스트리밍 서버 구축 (mt-daapd) (435) | 2014.07.11 |
7. 우분투 비트 토렌트 싱크 설치하기 (btsync) (405) | 2014.07.11 |
6. 우분투 토렌트 서버 구축하기 (transmission-daemon) (418) | 2014.07.11 |
댓글