RasPBX 기반의 IP-PBX 시스템

IP-PBX System of RasPBX-Based

  • cc icon
  • ABSTRACT

    VoIP(Voice over Internet Protocol)와 IP Telephony 기술이 발전함에 따라 기존 회선이 아닌 인터넷 망을 사용하여 전화를 사용하는 IP-PBX(Internet Protocol Private Branch Exchange)의 사용이 증가하고 있다. IP-PBX는 전화회선을 사용하지 않아 전화 업무가 많은 기업들과 기관들의 경영비용을 절감할 수 있으며 일반전화 회선과 유사한 품질을 제공한다. 하지만 IP-PBX를 도입하기 위해선 고가의 하드웨어 장비나 상용 소프트웨어를 구매해야 하는 초기 비용이 필요하다.

    본 논문에서는 고가의 하드웨어 장비나 상용 소프트웨어를 구매하지 않고 IP-PBX를 도입할 수 있는 방안을 제안한다. 제안하는 IP-PBX는 Raspberry Pi와 Asterisk를 사용하여 IP-PBX 서버를 설계하고 구현한다. 그리고 구현된 IP-PBX 기반으로 PC와 스마트 폰 간의 음성 통화를 실시하여 논문의 적합성을 검증한다.


    VoIP and IP Telephony telephony technology development is a growing by easy to using IP-PBX by using phone from using existing lines rather than the internet. IP-PBX do not use the phone line from phone work for many companies and institutions of management costs reduce as provides similar to regular phone line quality. But IP-PBX to introduce for need to be the initial cost on is should buy for expensive hardware equipment or commercial software.

    In this paper, suggest way to introduce IP-PBX do not buy expensive hardware equipment or commercial software. Suggest IP-PBX on designed and implement for IP-PBX server using Raspberry Pi and Asterisk. And verification treatise on the suitability of conducted by voice calls based on IP-PBX between PC and a Smartphone.

  • KEYWORD

    Asterisk , Embedded Linux , IP-PBX , Raspberry Pi , VoIP

  • Ⅰ. 서 론

    초기의 인류 통신은 직접 마주보면서 대화를 하거나 편지, 봉화 등을 사용하였다. 하지만 이러한 방법은 많은 제약과 비효율적으로 사용할 수밖에 없는 문제점을 가지고 있다. 전화는 기존의 통신이 가지고 있던 문제점을 해결해주었지만 통신자의 거리나 통화 시간이 증가할수록 요금의 부담이 커지는 문제점을 갖고 있다[1]. 이러한 문제점을 해결하기 위해 기존 전화회선 대신 네트워크 망을 사용하여 음성 통화를 할 수 있는 IP-PBX(Internet Protocol Private Branch Exchange)기술이 주목 받기 시작하였다.

    초기의 IP-PBX 기존 회선통화에 비해 품질이 열악하여 사용자에게 외면 받았다. 하지만 VoIP(Voice over Internet Protocol)와 IP Telephony 기술이 발전함에 따라 IP-PBX는 다시 주목 받기 시작하였다[2,3]. 그러나 IP-PBX를 도입하기 위해선 고가의 하드웨어 장비나 상용 소프트웨어를 구매해야하는 초기 비용을 요구하는 문제점이 있다.

    본 논문에서는 저가의 Raspberry Pi와 오픈 소스인 Asterisk를 사용하여 IP-PBX를 구현하는 방안을 제안한다. 제안하는 IP-PBX를 검증하기 위해 PC와 스마트 폰 간의 음성 통화를 실시하여 논문의 적합성을 검증한다.

    Ⅱ. 관련연구

    본 장에서는 IP-PBX 구현에 사용되는 Raspberry Pi와 Asterisk, IP-PBX 시스템에 대해 기술한다.

       2.1. Raspberry Pi

    Raspberry Pi는 영국의 Raspberry 재단이 교육용 프로젝트 일환으로 개발한 ARM 기반의 초소형 컴퓨터이며 기초 과학 교육과 취미로 사용할 수 있다[4]. Raspberry Pi는 브로드컴의 BCM 2835 시스템 온칩(SoC) 멀티미디어 프로세서를 탑재하고 있으며 그래픽 프로세싱, 오디오, 통신 유닛 등이 포함되어 있다[5]. 하지만 하드 디스크 드라이브나 SSD 드라이브를 내장하고 있지 않아 SD 카드를 따로 구매해야 하는 불편함을 가지고 있다. Raspberry Pi의 하드웨어 사양은 표 1과 같다.

    Raspberry Pi는 리눅스 커널 기반의 운영체제를 사용하며 개발할 때 권장하는 프로그래밍 언어로는 파이썬 이지만 다양한 언어를 사용하여 구현할 수 있다.

       2.2. Asterisk

    Asterisk는 Mark Spencer가 설립한 Digium에서 개발한 GPL 라이센스를 가진 오픈 소스 PBX이다[6,7]. Asterisk는 리눅스와 MacOSX 환경에서 IP-PBX 기능과 Voice Mail이나 IVR, Fax 등의 기능을 제공한다[8]. 그리고 외부 프로그램과 연계하여 사용할 수 있어 확장 성능이 좋다. 그러나 Asterisk는 소규모의 데이터를 제한적으로 제공하며 소규모로 구성되어 있는 장소에서만 사용할 수 있도록 개발되었다. Asterisk의 구조는 그림 1과 같다.

    Asterisk를 사용하면 PBX 내부 개념이 필요 없으며 외부 호출과 스테이션 포트를 연결하여 사용할 수 있어 기존 PBX에 비해 설치와 관리하기에는 편리하다.

       2.3. IP-PBX

    IP-PBX는 전화 회선 대신 네트워크 망을 사용하여 음성 또는 영상을 제공하는 사설 교환기이다[9]. IPPBX는 PSTN(Public Switched Telephone Network)과 연동하며 RJ-45 커넥터를 통해 스위치에 연결된다. 그리고 호처리와 가입자 수용, 부가 서비스 등의 PBX 기능을 수행한다. IP-PBX의 주요한 기능은 호처리이며 전화를 걸고 받는 데에 사용되는 것은 시그널과 미디어 두 가지 형태의 패킷이다[10]. 시그널은 발신자 전화번호와 수신자 전화번호, 코덱, IP 주소 등의 모든 전화를 위한 정보를 담고 있으며 SIP(Session Initiation Protocol), H323, MGCP(Media Gateway Control Protocol), SCCP (Signalling Connection Control Part) 등 다양한 종류가 존재하고 각각의 용도와 환경에 맞게 사용된다[11]. 그리고 미디어는 정해진 코텍으로 인코딩된 음성을 RTP(Real Time Protocol)로 전송하게 된다. IP-PBX를 사용하여 통신하는 과정은 그림 2와 같다.

    Ⅲ. IP-PBX 설계와 구현

    본 장에서는 Raspberry Pi와 Asterisk를 사용하여 IP-PBX 시스템 설계와 구현 방법에 대해 기술한다.

       3.1. IP-PBX 시스템 설계

    제안하는 IP-PBX는 Raspberry Pi와 Asterisk, Linphone, Linphone Video를 사용하여 구현한다. PC 환경에는 Linphone를 설치하고 스마트 폰에서는 Linphone Video를 설치하여 클라이언트로 사용하고 제안하는 IP-PBX 기반으로 음성 통화를 할 수 있다. 그리고 IP-PBX에 070 번호를 등록하면 외부 통화도 사용할 수 있다. 제안하는 IP-PBX의 전체 구조는 그림 3과 같다.

       3.2. IP-PBX 시스템 구현

    Raspberry Pi와 Asterisk, Linphone, Linphone Video를 사용하여 IP-PBX를 구현 방법의 순서는 다음과 같다.

    클라이언트 구현에 사용된 PC는 HP ProBook 5330m과 윈도우 8를 사용하였으며 스마트 폰 클라이언트는 LG 옵티머스 뷰 2를 사용하였다. 그리고 IP-PBX에 사용된 운영체제는 RasPBX-31-07-2014를 사용하였다. RasPBX는 Raspberry Pi 기반으로 사용되는 Asterisk를 최적화한 운영체제이다. Raspberry Pi에 RasPBX 이미지를 업로드하고 부팅하는 화면은 그림 4와 같다.

    Raspberry Pi에서 로그인이 정상적으로 실행되는 것을 확인한 뒤 편한 작업을 위해 putty를 사용하여 원격으로 접속하고 구현을 진행한다.

    Raspberry Pi는 기본적으로 시간을 동기화되어 있지않아 예기치 못한 문제가 발생할 수 있음으로 정상적인 작동을 위해 시간을 설정해야 한다. 시간을 설정하는 명령은 timezone이며 명령이 실행된 화면은 그림 5와 같다.

    인코딩 설정을 위해 dpkg-reconfigure locales 명령을 실행하고 ko_KR.UTF-8을 선택하고 저장한다. IP-PBX 환경 설정은 웹 브라우저를 통해 접근할 수 있으며 SIP의 허용 범위와 보안 설정, 영상 설정 등 설정 한 뒤 저장한다. 그리고 PC 클라이언트에 사용되는 Linphone을 다운로드 하고 설치한다. 윈도우 8에서 Linphone에 내선번호가 성공적으로 등록된 화면은 그림 6과 같다.

    스마트 폰에서는 Linphone Video를 다운로드 하고 설치한다. 그리고 IP-PBX 기반으로 음성 통화를 할 수 있게 내선 번호를 등록한다. 그리고 외부 통화를 가능하게 하기 위해 IP-PBX에 SIP 기반으로 Trunk를 등록한다. IP-PBX 시스템 구현이 완료된 화면은 그림 7과 같다.

    Ⅳ. 실 험

    본 장에서는 구현한 IP-PBX 기반으로 PC 클라이언트와 스마트 폰에서 음성 통화를 하는 방법에 대해 기술한다.

       4.1. PC에서 스마트 폰으로 통신

    윈도우 8에서는 Linphone 다이얼 패드를 사용하여 음성 통화를 사용할 수 있다.

    그림 8은 Linphone를 사용하여 스마트 폰에 설치되어 있는 Linphone Video과 음성 통화를 하고 있는 화면이다. 구현한 IP-PBX를 사용하여 외부 통화도 할 수 있다. 그림 9는 Linphone를 사용하여 Linphone Vedio가 설치되어 있지 않은 외부 스마트 폰으로 음성 통화를 하고 있는 화면이다.

       4.2. 스마트 폰에서 PC로 통신

    스마트 폰에서는 Linphone Video를 사용하여 음성통화를 사용할 수 있다. Linphone Video에서 PC로 음성통화를 하는 화면은 그림 10과 같다.

    Linphone Video에서 PC와 음성 통화가 연결되는 화면은 그림 11과 같다. Linphone과 Linphone Video간은 통화에서는 무료로 사용할 수 있다.

    Ⅴ. 결 론

    회선 기반의 음성통화보다 품질이 열악했던 IP 기반의 PBX는 IT 기술이 발전하고 네트워크가 개선되어 다시 사용자에게 주목 받기 시작했다. IP-PBX는 기존의 회선 망과 네트워크 망을 혼합하여 사용할 수 있어 사용 제한을 받지 않는다. 또한, 통화 대상이 먼 거리에 있거나 장시간으로 통화를 하여도 기존의 회선 기반의 음성 통화 요금에 비해 저렴하거나 무료로 사용할 수 있다. 하지만 IP-PBX를 도입하기 위해선 고가의 하드웨어 장비나 상용 소프트웨어를 구매해야하는 문제점이 있었다.

    본 논문에서는 고가의 하드웨어 장비나 상용 소프트웨어를 구매하지 않고 저가의 Raspberry Pi와 오픈 소스인 Asterisk를 사용하여 IP-PBX를 구현하는 방안에 대해 제안했다. 그리고 클라이언트도 오픈 소스인 Linphone과 Linphone Video를 사용하여 추가 개발 없이 음성 통화를 사용할 수 있는 방안에 대해서도 제안했다. 또한, 논문의 적합성을 검증하기 위해 PC와 스마트 폰에서 구현한 IP-PBX 기반으로 음성 통화를 실시하였으며 IP-PBX 기반으로 외부 음성 통화도 실시하여 논문의 적합성을 검증하였다.

    향후 연구로는 구현한 IP-PBX의 문제점인 제한된 소규모에서만 기능이 지원되는 문제점을 보완하는 연구를 진행할 계획이다.

  • 1. Kim Do-Hoon 2007 "Voice over IP, Its Visions and Market Analysis." [The Korean Journal of the Information Society] Vol.12 P.63-84 google
  • 2. Guha Saikat, Daswani Neil 2005 “ An experimental study of the skype peer-to-peer voip system.” google
  • 3. Olivier Hersent 2011 “IP telephony: deploying VoIP protocols and IMS infrastructure.” google
  • 4. Upton Eben, Halfacree Gareth 2013 “Raspberry Pi user guide.” google
  • 5. Upton Eben, Halfacree Gareth 2012 “Meet the Raspberry Pi.” google
  • 6. Van Meggelen Jim, Madsen Leif, Smith Jared 2007 “Asterisk: the future of telephony.” google
  • 7. Qadeer Mohammed A., Imran Ale 2008 “Asterisk voice exchange: An alternative to conventional EPBX.” [IEEE Computer and Electrical Engineering] google
  • 8. Penton J., Terzoli A. 2003 “Asterisk: A converged tdm and packet-based communications system.” [Proceedings of SATNAC 2003-Next Generation Networks] google
  • 9. Allan Sulkin 2001 “PBX Systems for IP Telephony: Migrating Enterprise Communications." google
  • 10. Jeong Yoon-Su, Kim Yong-Tae, Park Gil-Cheol 2011 "Design of IP-PBX Media Service Platfrom with Low Cost." [JKIIT] Vol.9 google
  • 11. Zhu Jianfeng 2010 “Realization of Extended Functions of SIP-Based IP-PBX.” [IEEE Education Technology and Computer Science (ETCS)] Vol.3 google
  • [표 1.] Raspberry Pi 하드웨어 사양
    Raspberry Pi 하드웨어 사양
  • [그림 1.] Asterisk 구조
    Asterisk 구조
  • [그림 2.] IP-PBX 기반의 통신 구조
    IP-PBX 기반의 통신 구조
  • [그림 3.] 제안하는 IP-PBX 구조
    제안하는 IP-PBX 구조
  • [그림 4.] Raspberry Pi 부팅화면
    Raspberry Pi 부팅화면
  • [그림 5.] Time Zone 실행 화면
    Time Zone 실행 화면
  • [그림 6.] Linphone 내선번호 등록 완료
    Linphone 내선번호 등록 완료
  • [그림 7.] IP-PBX 시스템 화면
    IP-PBX 시스템 화면
  • [그림 8.] Linphone에서 음성 통화중인 화면
    Linphone에서 음성 통화중인 화면
  • [그림 9.] Linphone에서 외부로 음성 통화중인 화면
    Linphone에서 외부로 음성 통화중인 화면
  • [그림 10.] Linphone Video에서 PC로 음성 통화를 시도하는 화면
    Linphone Video에서 PC로 음성 통화를 시도하는 화면
  • [그림 11.] Linphone Video에서 음성 통화중인 화면
    Linphone Video에서 음성 통화중인 화면