7. 설치

이 장에서 우리는 VoIP 시스템을 설치할 것이다. 처음에는 간단하게 시작하고 점점 더 복잡한 과정으로 진행해보자.

7.1. 간단한 연결 : IP 에서 IP 로


A (Win9x+Sound card)   -  -  -    B (Win9x+Sound card)

     192.168.1.1       -  -  -         192.168.1.2

        
           192.168.1.1 가 192.168.1.2 를 호출

A 와 B 는 아래와 같아야 한다 :

  1. MS Netmeeting (또는 유사 소프트웨어) 이 설치되어 있고 제대로 설정되어 있을 것

  2. 네트웍 카드를 가지고 있거나 다른 종류의 TCP/IP 인터페이스로 상호간 연결되어 있을 것

이런 상황에서는 A 는 H323 호출을 B 의 IP 주소를 이용해서 B 에게 시도할 수 있다 (물론 B 가 Netmeeting 을 동작시키고 있는 상황에서). 그때 B 측에서 응답할 생각이 있다면 호출에 응하게 되고, 이후에는 VoIP 데이터 패킷이 전송되기 시작한다.

7.2. 이름을 사용하기

MS 윈도우 시스템을 사용한다면 랜상의 다른 사용자에게 NetBIOS 이름을 사용하여 호출할 수 있다. NetBIOS 는 저수준 프로토콜 NetBEUI 와 함께 작동할 수 있으며 또한 TCP/IP 와도 연동하 수 있다. 상대방으로의 연결을 이루기 위해 필요한 것은 오직 "컴퓨터 이름" 뿐이다.

          A            -  -  -             B 
 
     192.168.1.1       -  -  -        192.168.1.2
   
        John           -  -  -           Alice

             
                 John 이 Alice 를 호출

이것은 John 이 Alice 에게 보낸 호출 요청은 NetBIOS 프로토콜에 의해 IP 주소로 바뀌기 때문이다.

위에서 설명한 두 가지 예제는 구현하기에 매우 쉽지만 확장성이 없다.

인터넷과 같이 매우 큰 규모에서는 상대방의 IP 주소를 모르는 경우가 일반적이기 때문에 직접적인 호출을 사용하는 것은 불가능하다. 게다가 NetBIOS 는 메세지를 브로드캐스팅하는 것으로 동작하는데, 이것은 통상 ISP 의 라우터를 통과하지 못하므로 NetBIOS 를 이용해 컴퓨터 이름을 호출하는 것도 불가능하다.

7.3. WINS 서버를 이용한 인터넷 호출

NetBIOS 이름을 호출하는 아이디어는 WINS 서버를 사용하여 인터넷 환경에서 구현될 수 있다 : NetBIOS 클라이언트는 컴퓨터 이름을 해독하기 위해 WINS 서버에 질의하도록 구성될 수 있다.

같은 WINS 서버를 사용하는 PC 들 간에는 상호간 이름을 통한 직접 호출이 가능하다.


A (WINS 서버는 S) - - - - - - | - - - - -  B (WINS 서버는 S)
                              |
                              |
                              인  - - - - -   S (WINS 서버)   
C (WINS 서버는 S) - - - - - - 터
                              넷
                              | - - - - -  D (WINS 서버는 S)
                              |

                       인터넷에서의 연결

A, B, C 와 D 는 서로 다른 서브넷에 존재하지만 상호간에 NetBIOS 이름을 호출하는 방법으로 동작할 수 있다. 오직 필요한 조건은 S 가 동일한 WINS 서버인 것이다.

참고 : WINS 서버는 NetBIOS 기능을 사용하며 얼마 안되는 서브넷을 통합하는데만 사용되기 때문에 아주 높은 퍼포먼스를 보이지는 않는다.

7.4. 큰 문제거리인 NAT [1]

IP 가 얼마 없는 문제는 가리기 (masquering, 또는 NAT, 즉 network address translation) 를 통해 해결할 수 있다 : 공인 IP 주소 (즉 인터넷에서 직접적으로 "접근" 할 수 있는 주소) 가 하나만 있는 경우에, 모든 다른 호스트들은 이 IP 를 사용하여 "가려질 (masqueraded)" 수 있다.

        
           A  - - -

           B  - - -   NAT 기능이 있는 라우터  - - -  인터넷

           C  - - -
     
                     
                     이런 방법으로는 곤란해요

예제에서 A, B 와 C 는 인터넷으로 웹 브라우징을 하거나, ping 을 보내거나, 메일이나 뉴스 서비스를 받을 수는 있지만 VoIP 호출을 할 수는 없다. 이것은 H323 프로토콜이 어플리케이션 레벨에서 IP 주소를 보내므로 그에 대한 응답이 사설 IP 주소를 사용하고 있는 송신자에게 도착하지 않기 때문이다.

해결책은 :

 
           A  - - -   NAT 기능의 라우터
 
           B  - - -         +           - - -  인터넷

           C  - - -   ip_masq_h323 모듈
 
 

		     이렇게 하면 동작한다

           
           A  - - -   
 
           B  - - -    PhonePatch   - - -  인터넷

           C  - - -  
 
 
		     이렇게 해도 동작한다

7.5. 리눅스 환경에서는

리눅스 시스템에서의 H323 터미널은 위에서 설명한 모든 기능을 사용할 수 있다.

7.5.1. Ohphone 프로그램의 문법

문법은 아래와 같다 :

"ohphone -l|--listen [options]"
"ohphone [options]... address"

  • "-l", 표준 포트 (1720) 로 접속을 기다린다. (listening)

  • "address", 호출을 기다리는 주소가 아니라 연결하고 싶은 상대 호스트의 "주소" 를 의미한다.

  • "-n", "--no-gatekeeper", gatekeeper 가 없다면 이 옵션을 사용한다.

  • "-q num", "--quicknet num", Quicknet card 를 /dev/phone(num) 장치로 작동한다.

  • "-s device", "--sound device", /dev/device 사운드 장치를 사용한다.

  • "-j delay", "--jitter delay", 지연 버퍼를 "delay" 만큼 세트한다.

또한 ohphone 을 실행했을 때 명령어 해석기에 직접 커맨드를 입력할 수도 있다. (decrease AEC 로써 에코 소거수준을 내릴 수 있다.)

7.6. gatekeeper 를 설치하기

당신은 gatekeeper 기능도 사용할 수 있다.

예제
  
          (H323 터미널) A  - - -    
                                 \
          (H323 터미널) B  - -  - D (Gatekeeper)
                                 /
          (H323 터미널) C  - - -  
               
                    Gatekeeper 설정

  1. 호스트 A, B 와 C 는 D 에 gatekeeper 가 설치된 것으로 설정한다.

  2. 각각의 호스트는 처음에 D 에게 자신의 주소와 이름 (그리고 별명도) 을 알려주어 D 에 도착하는 호출자가 그 정보를 이용할 수 있도록 한다.

  3. 어떤 터미널이 호스트를 찾기 위해 D 에 요청하게되면, D 는 올바른 IP 주소를 알려줌으로써 연결을 성사시킨다.

여기서 gatekeeper 는 이름을 IP 주소로 해석하는 능력만을 가지고 있으며, 상호간 (IP 레벨에서) 접근할 수 없는 호스트들을 접속해주는 기능은 하지 않음을 유의해야한다. 다시 말하자면 gatekeeper 는 NAT 라우터처럼 기능하는 것이 아니다.

gatekeeper 코드는 이쪽에서 얻을 수 있으며 : 또한 openh323 library 가 필요하다.

프로그램은 -d (데몬으로 동작) 옵션이나 -x (실행모드로 동작) 옵션으로만 시동하면 된다.

추가적으로 설정파일 (.ini) 을 찾을 수 있는 곳은 이쪽이다.

7.7. 게이트웨이를 설치하기

앞에서 설명한 바와 같이 게이트웨이는 VoIP 를 PSTN 회선에 접속하여 인터넷을 통해 기존 방식의 전화가입자에게 전화를 할 수 있도록 기능한다. 따라서 추가적으로 PSTN 회선을 관리할 수 있는 카드가 필요하게 되는데 : Quicknet LineJack 이 있다.

OpenH323 web site 에서 다음을 다운로드 받으면 된다 :

  1. Linejack 용 드라이버

  2. 게이트웨이 구축을 위한 PSTNGw 어플리케이션.

만약 실행파일이 동작하지 않는다면 소스코드와 openh323 library 를 다운로드 받은 다음, 이들을 사용자 홈 디렉터리에 설치하면 된다.

이제 H323 게이트웨이를 작동하기 위해 할 일은 PSTNGw 를 실행하는 일 뿐이다.

주석

[1]

역주 : 원문은 masquering 으로 되어 있으나 의미 전달상 NAT 라고 했습니다.