· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Net Meeting-HOWTO

Linux NETMEETING HOWTO

Linux NETMEETING HOWTO

Brent Baccala

        
      

SchiffersMartin

        
      

KomarinskiMark F.

Conversion from HTML to DocBook 3.1

고지훈

        
      

이 문서는 마이크로 소프트 넷미팅을 Linux에서 어떻게 사용하는가에 대한 것입니다.

고친 과정
고침 번역 v1.12001년 4월 14일고친이 가자곰
한국어 번역판
고침 v1.013 January 2001고친이 bwb
Initial public release
고침 v0.1125 October 2000고친이 mfk
Conversion to DocBook

1. 소개

이 문서는 Linux NETMEETING HOWTO 이며 마이크로 소프트 넷미팅을 Linux에서 이용할 수 있는 방법에 대하여 서술하고 있습니다. 가장 최근 버전은 다음의 URL에서 찾을 수 있습니다. http://www.freesoft.org/software/NetMeeting 또는 Linux Documentation Project

넷미팅은 네트워크에서 음성과 영상을 지원하는 국제적인 표준 컨퍼런스 프로토콜인 H.323을 실행하는 프로그램입니다. 넷미팅은 또한 어플리케이션 공유와 파일 전송 그리고 화이트보드라는 칠판성격의 프로그램도 지원하는 T.120 프로토콜도 지원하고 있습니다. 실행할 때는 디렉터리 서비스로 LDAP를 이용합니다. 넷미팅은 윈도우 2000에는 기본적으로 포함되어 있고, 다음의 URL에서 윈도우 95, 98 그리고 NT 용을 자유롭게 다운 받을 수 있습니다. http://www.microsoft.com/windows/netmeeting

리눅스는 현재(2000년 10월) H.323(음성 영상 모두) 프로토콜을 지원하며 LDAP 디렉터리 서비스도 또한 지원하고 있습니다. 하지만 어플리케이션 공유와 파일 전송 그리고 화이트보드가 가능한 T.120 프로토콜은 아직 지원하지 않고 있습니다.

H.323 대해서 모른신다면, 다음의 사이트를 방문하는 것을 추천합니다:

LDAP에 대해서 모르신다면, 다음의 사이트를 방문해 보시는 것을 추천합니다:

당신이 추천하거나 혹은 본 문서에 제안할 사항이 있으시다면 다음의 이메일 주소로 연락 주시기 바랍니다.

본 번역에 대해서 틀린 점이나 지적해 주실 사항이 있으시면 다음의 이메일 주소로 연락 주시기 바랍니다.


2. OpenH323

2.1. OpenH323 란?

OpenH323이란 H.323 프로토콜을 지원하는 오픈 소스 프로그램입니다. 이것은 마이크로소프트 넷미팅과 함께 바로 사용할 수 있습니다. 현재 (2000년 10월) 계속 개발 중이며, 버그를 수정하고 있습니다만 유용합니다.

OpenH323은 여러 개의 C++라이브러리와 몇몇의 C++클라이언트 프로그램으로 구성되어 있습니다.

가장 유용한 프로그램들 :

표 1. List of client applications

ohphone 리눅스에서 H.323을 지원하는 넷미팅과 같은 역할을 하는 프로그램. 그러나 어플리케이션 공유 및 파일 전송 화이트보드는 지원하지 않는다.
openam H.323 자동 응답 프로그램. 호출하는 메시지를 녹음하고 녹음된 메시지를 재생할 수 있다. 비디오는 지원하지 않는다.
forwarder 하나의 IP 주소나 포트에서 다른 목적지로 H.323 sessions을 보내는 프로그램. 하나의 IP 주소에서 다수의 H.323 목적지들을 이용할 때 사용된다.
openmcu 다중 세션 제어 장치. 컨퍼런스콜로 여러 개의 세션을 연결한다.
PSTN Gateway 일반전화시스템(PSTN : the Public Switched Telephone Network)에서 넷미팅 프로그램이 전화를 걸 수 있도록 한 것. 특별한 하드웨어가 필요합니다.

OpenH323은 현재 (2000년 10월) 음성 codecs G.711, G.723.1, LPC-10, and GSM 06.10, 과 영상 codec H.261 코덱을 지원하고 있습니다.


2.2. 무엇이 필요한가?

OpenH323은 당신이 당신의 리눅스 시스템에서 직접 넷미팅 클라이언트로 음성과 영상 연결을 만들고자 할 때 씁니다. OpenH323은 넷미팅 프로그램에 LDAP 디렉터리 서비스를 제공하는데는 필요하지 않습니다.


2.3. 어디서 OpenH323을 얻을 수 있나?

메인 사이트는 http://www.openh323.org/ 입니다. 그리고 이 사이트에는 다운로드 페이지, 미러 사이트, 메일링 리스트와 다른 정보를 제공합니다.

OhPhone, OpenAM, PSTNgw 는 표준 분배 방식으로 이용할 수 있습니다. 이 들은 소스와 실행 파일 모두를 얻을 수 있습니다만, forwarder 와 openmcu 는 2000년 12월 현재 "forwarder" and "openmcu" 라는 모듈이름으로 CVS 압축으로만 얻을 수 있습니다.


2.4. 설치

OhPhone, OpenAM, PSTNgw 는 다운로드해서 실행하면 됩니다. forwarder와 openmcu가 필요하다면 소스를 컴파일해서 실행파일을 만들어야 합니다. 물론 pwlib 와 openh323 라이브러리가 필요합니다. 편집된 매뉴얼은 OpenH323 사이트에서 얻으실 수 있습니다.


2.5. Gatekeepers

OpenH323은 gatekeeper를 지원하지 않습니다. 하지만 몇몇은 현재 해당 라이브러리를 기초로 만들어지고 있습니다. 2000년 말 현재 대부분이 활발하게 개발되거나 거의 완성단계에 이르고 있습니다. 아직까지 사용해 보지는 못했으나, 원하신다면 다음의 링크에서 얻으실 수 있습니다. :

(번역자 주)gatekeeper를 따로 번역하지 않았습니다. 간단하게 정의 하자면 H.323의 가장 중요한 부분 중의 하나이며, 주고 받는 신호를 콘트롤해 주는 일을 합니다.


3. NetMeeting directory kit

3.1. NetMeeting directory kit 이란?

각 넷미팅 클라이언트들은 LDAP서버에 등록될 수 있어야 합니다.

그리고, 하나의 윈도우에서 같은 서버에 등록된 넷미팅 클라이언트들의 목록을 볼 수 있어야 합니다. NetMeeting directory kit 는 넷미팅 클라이언트에게 디렉터리 서비스를 제공하는 OpenLDAP 서버의 확장팩입니다.


3.2. 왜 NetMeeting directory kit 가 필요한가?

넷미팅은 특정한 IP주소나 DNS네임을 지정하는 것으로 다른 H.323장치에 접속할 수 있습니다.? 하지만, 일반적으로는 LDAP 디렉터리 서버를 주로 이용합니다. LDAP를 이용한다는 것은 사용자가 사용 가능한 목적 주소들의 디렉터리 목록을 볼 수 있다는 것을 의미합니다.

예를 들어서 하나의 IP 주소로부터 H.323을 이용하는 다른 컴퓨터로? 연결되는 것을 원할 때, 다른 컴퓨터가 사용하는 별명을 해독하는 것이 필요합니다. 이 때, NetMeeting directory kit 가 사용됩니다.

넷미팅 클라이언트는 여러 방법으로 LDAP프로토콜을 위반할 수 있습니다. 그래서 당신이 표준 LDAP서버를 사용하려고 시도한다면 문제가 생길 수도 있습니다. NetMeeting directory kit 는 발생할 지도 모르는 문제들을 해결해 주고, OpenLDAP 서버가 넷미팅 디렉터리 서버로 이용될 수 있게 해줍니다.


3.3. 어떻게 작동하나

                 Block diagram of NetMeeting directory kit

___________________         _______    __________________        ______________
|    LDAP server  | request |      |   |   LDAP server  | request|            |
|                 | <-------| Perl |<--|                | <------| NetMeeting |
| on private port |         |script|   | on public port |        |  client    |
|  (i.e, 2345)    |-------> |      |-->|     389        |------->|            |
|                 | reply   --------   |                |  reply --------------
|                 |                    |                |      
-------------------                    ------------------

디렉터리 서버는 Request를 받는 'master' LDAP 서버와 마이크로 소프트 넷미팅의 request를 바르게 번역할 수 있는 Perl script, 그리고 감춰진 LDAP 서버의 질의를 이해할 수 있는 넷미팅 클라이언트 작동 포맷들로 구성됩니다. OpenLDAP의 'shell backend'는 Perl script를 호출하는데 사용됩니다. 커스텀 스키마도 요구됩니다. 스크립트는 타임아웃 에러와 작동하지 않는 모든 에러를 포함한 모든 문제를 관리할 수 있어야 합니다.


3.4. 어디서 소프트웨어를 얻나?

우선 OpenLDAP 소프트웨어가 필요합니다.

참고: 미리 만들어진 OpenLDAP 소프트웨어는(예: RPM) shell backend 지원하게 구성되지 않는다면 작동하지 않을 수 있습니다.

다음의 사이트에서 OpenLDAP를 다운 받을 수 있습니다.. ftp://ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/ or any mirror.

NetMeeting directory kit는 다음의 사이트에서 다운 받을 수 있습니다. http://www.freesoft.org/software/NetMeeting/download.

다음의 사이트에서 http://www.perl.org, 받을 수 있는 Perl 5가 필요하지만, 대부분 리눅스 배포판에는 Peal이 이미 포함되어 있습니다. 또한 Perl에 인스톨되고 다운 할 수 있는 Perl CPAN archive로부터 얻을 수 있는 Net::LDAP 모듈이 필요합니다.

[root@y2k baccala]# perl -MCPAN -e shell

cpan shell -- CPAN exploration and modules installation (v1.58)
ReadLine support enabled

cpan> install Net::LDAP

... much output omitted ...

  /usr/bin/make install -- OK

cpan>

전에 CPAN을 사용하지 않았다면, 먼저 구성질문에 답해야 할 것입니다. 한번 이라도 CPAN을 구성했다면, Net::LDAP 모듈은 자동으로 다운, 컴파일, 인스톨 될 것입니다.


3.5. 설치

OpenLDAP를 설치하기 위해서는 약 60MB의 디스크 용량이 필요합니다. open-ldap-2.0.x.tgz를 풀고 구성합니다.

참고: Backend function으로 "-enable-shell"을 반드시 주어야 합니다.

bash$ ./configure --enable-shell
      

Now build and install it with:

bash$ make

... much output omitted ...

bash# make install
      

프로그램은 일반적으로 다음의 디렉터리 밑에 설치 될 것 입니다./usr/local:

표 2. OpenLDAP 가 사용하는 디렉터리

/usr/local/lib 공유라이브러리
/usr/local/bin 추가, 삭제, LDAP Searching 클라이언트 이진파일
/usr/local/sbin raw 데이타베이스를 다루는 유티릴티 프로그램. 평상시 작업에는 사용하지 않음
/usr/local/libexec slapd이진파일을 포함하는 다양한 서버 프로그램
/usr/local/etc/openldap 기본 설정 파일이 있는 곳
/usr/local/etc/openldap/schema LDAP 서버에 의해서 사용되는 다른 스키마
/usr/local/var/... LDAP 서버의 데이타 베이스가 위치하는 곳 (서브 디렉터리에 생김)
/usr/local/man/... 관계되는 문서가 있는 곳

OpenLDAP를 인스톨한 후 하는 다음 작업은 넷미팅 디렉터리 키트를 설치하는 것입니다. 다음 명령어로 ndk.tgz를 압축해제합니다 Untar ndk.tgz. 앞의 파일은 다음의 파일들을 가지고 있습니다.

표 3. NetMeeting directory kit 파일들

netmeeting.perl 넷미팅 프로토콜의 에러를 고치는 펄 스크립트
netmeeting.schema LDAP 서버가 이용하는 일반적인 넷미팅 스키마
slapd.conf 마스터 LDAP서버의 예제 설정 파일
slapd2.conf 슬레이브 LDAP 서버의 예제 설정 파일
initialize 슬레이브 LDAP 데이타베이스를 초기화 하기 위해서 한번 사용되는 스크립트
slapd.rc /etc/rc.d/ script
nmaddentry 넷미팅 디렉터리에 entry를 추가하는 펄 스크립트
nmdirectory 넷미팅 디렉터리리를 질의하는 Perl/Tk 스크립트

netmeeting.perl 파일을 /usr/local/libexec 디렉터리에 netmeeting.schema 파일은 /usr/local/etc/openldap/schema 디렉터리에 복사합니다. 그리고 slapd.confslapd2.conf/usr/local/etc/openldap 디렉터리에 카피합니다. LDAP 데이타베이스를 저장하기 위해서 다음의 디렉터리를 만들고 모든 사람이 사용할 수 있도록 퍼미션을 열어줍니다. /usr/local/var/openldap-netmeeting

특히 디렉터리를 변경하기를 원하신다면 slapd.conf and slapd2.conf 두개의 파일을 수정하고 설정을 변경하시기 바랍니다.

두개의 slapd를 실행할 필요가 있을 것입니다. 하나는 포트 389가 바인딩 된 이후로 root에 의해서 반드시 시작되어야 합니다. 예방 조치를 위해서 -u 옵션으로 포트가 바인딩 된 이후로 권한이 없는 사용자가 chown명령어로 slapd를 변경하는 것을 막을 수 있습니다. 또 다른 slapdslapd2.conf를 사용하는데, 권한이 없는 사용자가 포트를 사용하는 것을 막고, 허용된 포트만이 database 디렉터리를 쓸 수 있게 합니다.

bash# /usr/local/libexec/slapd -f /usr/local/etc/openldap/slapd.conf -u nobody
bash$ /usr/local/libexec/slapd -h ldap://localhost:2345/ -f /usr/local/etc/openldap/slapd2.conf
      

하나의 구성요소를 slave database에 초기화해야 합니다. 이것은 키트 안에 포함된 initialize스크립트를 실행하는 것으로 한번 수행됩니다. "rootdn"과 "rootpw" 엔트리는 slave config 파일에서 초기화 스크립트를 엑세스 하도록 허용해 줍니다. 또한 -D-w옵션도 스크립트 내에서는 반드시 같아야 합니다. 한번 single parent entry로 데이터 베이스를 초기화 했다면 그것이 중요하지 않더라도 "rootdn"과 "rootpw"를 slapd2.conf 에서 확인할 수 있습니다.

서버는 현재 실행되어야 합니다. /etc/rc.d/에 있는 스타일 초기화 스크립트인(레드햇과 같은) slapd.rcslapd가 자동적으로 시작 혹은 중지 할 수 있도록 도와 줍니다.


3.6. Server Security

위와 같이, 서버 소프트웨어나 펄 스크립트에서 버그를 잡기 위해서 보안이 파괴 될 가능성을 줄이면서 권한 없는 사용자의 slapd를 실행합니다. 물론 이 작업은 누구에게나 읽고 쓸 수 있는 권한을 주어서 모든 사용자가 database directory의 slave server를 업데이트 할 수 있도록 해야 합니다. 이것은 넷미팅 클라이언트가 스스로 인증을 할 수 없기 때문에 나타난 보안 문제와는 다른 것입니다. 이와 같이 데이터베이스 디렉터리가 좀더 보호되어 있다고 해도, 로컬 혹은 리모트 호스트의 누구라도 데이터베이스의 entry들을 지우거나 혹은 수정할 수 있게 LDAP 클라이언트 프로그램을 사용할 수 있는 것입니다.


3.7. 윈도우즈 2000의 DNS 문제

윈도우 2000은 LDAP를 포함하는 로컬 네트워크의 발전된 의미의 DNS SRV (RFC 2782)를 수정할 수 있는 기능을 가집니다. 윈도우 2000컴퓨터로부터 LDAP서버로의 연결이 지연되는 것을 피하기 위해서는 SRV records가 DNS로부터 보호되어야 합니다. ISC Bind는 버전 8.2.2 이후로 SRV레코드를 지원합니다. Bind FAQ에서 기술되어 있는 것과 같이, "check-names ignore" 옵션에 DNS name으로 _(밑줄)을 쓸수 있도록 허용되어야 합니다. 마이크로 소프트에서 기술한 것에 의하면 기본적으로 당신의 넷미팅 서버이름이 "ils.freesoft.org"이라고 한다면, Microsoft Active Directory는 "_msdcs.ils.freesoft.org"이라는 서브 도메인 사용을 원합니다. 이 서브 도메인 안에서 "gloabal catalog"는 "gc._msdcs.ils.freesoft.org" 로 호출되어 지고, 이 "gloabal catalog"의 LDAP SRV record도 "_ldap._tcp.gc._msdcs.ils.freesoft.org"이름으로 호출됩니다. 당신의 DNS database entry는 다음과 같이 보일 것입니다.

$ORIGIN _msdcs.ils.freesoft.org.

_ldap._tcp.gc     IN     SRV     1 1 389 ils.freesoft.org.
      

아직 윈도우 2000 시스템을 가지고 있지 못하기 때문에 위의 사항을 테스트 해보지 못했습니다. 이에 대한 의견을 준다면 좋겠습니다.


3.8. 다른 LDAP service와 같이 사용하기

위의 인스트럭션은 LDAP서버가 오직 넷미팅 디렉터리 서비스로만 사용되고 있다는 것을 가정합니다. 하나의 서버로 넷미팅 디렉터리 서비스 뿐만 아니라 다른 LDAP서비스를 원한다면 어떨까요? 오직 하나의 서버만이 389포트로 바운드 될 수 있습니다. 그러나 OpenLDAP는 구성파일에서 LDAP namespace의 각각 서로 다른 부분을 지정할 수 있는 multiple database sections을 허용합니다. 넷미팅은 오직 "objectClass=RTPerson" 서브트리만을 이용합니다. 그래서 당신이 이 subtree를 피해 갈 수 있다면, 다른 데이터베이스와 다른 subtree를 additional database section에 구성하여 추가 할 수 있습니다. 가장 큰 문제는 당신이 일반적인 표준 schema와 넷미팅 schema가 충돌하는 문제를 만날지도 모른다는 것입니다. 넷미팅 스키마가 표준 스키마보다 더 자유로워진 이래로 표준 schema와 충돌 문제가 생길수 있습니다. LDAP RFC와 OpenLDAP문서에서 LDAP를 서버 설정에 관한 더 많은 정보를 볼 수 있습니다.


4. 소프트웨어 사용법

4.1. 직접 연결

OpenH323의 ohphone프로그램을 넷미팅 프로그램과 바로 연결 할 수 있게 사용할 수 있습니다. -n 옵션은 당신이 넷미팅 클라이언트의 DNS name이나 혹은 IP 주소에 gatekeeper를 사용하지 않을 때 이용합니다.

bash$ ohphone -n 208.130.48.22
      

또한 ohphone을 다른 넷미팅 프로그램으로부터 호출을 받을 때 사용할 수 있습니다.

bash$ ohphone -n
      

비디오 컨퍼런싱과 코덱 선택, 자동 응답등 추가적인 사항에 대해서 ohphone의 문서에서 확인할 수 있습니다.


4.2. Directory Operation

위에서 기술한 것과 같이 넷미팅 디렉터리 키트로 동작하는 LDAP서버를 가지고 있는지 확인해야 합니다.

On the NetMeeting client, select the Tools -> Options 넷미팅 프로그램에서 설정 창을 열기위해 Tools -> Options 을 선택합니다. "General" (NetMeeting 3) 혹은 "Calling"(NetMeeting 2) 텝에 "Directory Settings"이라는 부분이 있습니다. 여기에 당신 서버의 DNS name 혹은 IP주소를 입력할 수 있습니다. "Log on to directory server when NetMeeting starts" 체크박스를 선택한다면, 넷미팅 클라이언트는 자동으로 서버에 자동으로 연결하고 등록하게 됩니다. 또한 Call -> Log on 을 선택하여 스스로 디렉터리 서버에 접속 할 수 있습니다.

사용자가 Call -> Directory 선택했다면 LDAP서버에 등록된 모든 사용자를 보여주는 창이 뜨게 됩니다. 사용자중 한명의 이름을 더블 클릭하면 그 사용자 연결됩니다.

리눅스에서 NetMeeting LDAP server의 질의는 제대로 동작합니다. 하지만 이것은 속임수가 아닙니다. 왜냐하면 모든 클라이언트 IP주소는 도트 십진수가 아닌 십진수로 저장되기 때문입니다. 예를 들면 IP 주소 63.216.69.197는 3309688895로 저장됩니다. 여기에 넷미팅 IP 주소 형식을 도트 십진수와 십진수로 변환할 수 있는 펄 코드가 있습니다.

# Convert $addr (IP address or DNS name) to a NetMeeting decimal IP address

use Socket;
$bytestring = inet_aton($addr);
if (defined $bytestring) {
    ($sipaddress) = unpack('V', $bytestring);
} else {
    die "Can't resolve $addr\n";
}

# Convert $sipaddress (from a NetMeeting LDAP server) into dotted decimal form

$packedipaddr = pack 'V', $sipaddress;
$ipaddress = join '.', unpack('C4',$packedipaddr);

넷미팅 디렉터리 키트에 포함되어 있는 nmdirectory는 넷미팅 LDAP 서버를 질의와 등록된 클라이언트를 보여주는 간단한 펄 스크립트입니다. 이것은 매우 원시적이고 대형 데이터베이스에서는 잘 동작하지 않는 것처럼 보이지만, 넷미팅 LDAP서버로부터 어떻게 결과를 찾을 것인지를 알려주는 기초적인 예가 될 수 있습니다.


4.3. 웹페에지에 링크 걸기

마이크로 소프트 인터넷 Internet Explorer는 넷미팅 주소로 정의된 두개의 형태 중 하나인 "callto:" URL을 이해 할 수 있습니다. "callto:" URL이 선택되면 Internet Explorer는 넷미팅을 실행하고 지정된 주소로 바로 연결합니다.

첫번째 URL 형식인 "callto:destination"에서 destination은 넷미팅이 H.323 connection을 포트 1720을 통해서 연결하는 IP 주소 혹은 DNS name을 의미합니다. 이 형식은 직접 다른 넷미팅 혹은 OpenH323클라이언트로 연결하는데 사용됩니다.

두번째 형식인 "callto:server/alias"는 'alias'의 CN attribute와 'server'를 LDAP 서버에서 검색하는 과정을 거칩니다. 해당 자료가 발견되면 해당 자료(entry)의 sipAddress attribute가 지정하고 있는 IP 주소로 연결합니다. 넷미팅 클라이언트는 기본적으로 CN attribute에 사용자의 이 메일 주소를 등록합니다. 이 메일 주소를 기초로 하는 디렉터리를 검색할 때 두번째 형식을 사용합니다.


4.4. 영구적인 디렉터리 Entry

넷미팅 클라이언트가 LDAP 디렉터리 entry의 자료만은 아닙니다. permanent directory entry들은 OpenLDAP 클라이언트 툴을 이용해서 LDAP서버에 수작업으로 입력될 수 있습니다. Attribute들이 적합하게 정의 되어 있다고 가정하면 이러한 entry들은 넷미팅 디렉터리 리스트에서 나타날 수 있고 "callto:"URL로도 사용될 수 있습니다. 이것은 LDAP서버에 entry들이 스스로가 등록되지 못하는 OpenH323 클라이언트가 있을 때 유용합니다.

디렉터리 entry들을 간단하게 만들기 위해서는 nmaddentry 스크립트가 넷미팅 디렉터리 키트에 포함 됩니다. 이것은 사용 문구 없이 실행합니다. 예를 들면 당신이 "y2k.freesoft.org" 도메인에 ohphone을 실행한다면, 당신은 "baccala@freesoft.org"라는 별명을 이용해서 "ils.freesoft.org"의 LDAP서버에 다음과 같이 등록할 수 있습니다.

bash$ nmaddentry -h ils.freesoft.org baccala@freesoft.org y2k.freesoft.org
Successfully added cn=baccala@freesoft.org, objectclass=rtperson
bash$
      

이 entry는 넷미팅 디렉터리 리스트에서 나타나며 ils.freesoft.org/baccala@freesoft.org 라는 주소로 사용될 수 있습니다. 이 entry는 30분 후에 자동으로 타임 아웃 됩니다. 타임아웃이 안 되는 Permanent Directory Entry를 만들기 위해서는 -p 스위치를 사용하게 되는데, 이러한 방법은오직 넷미팅 디렉터리 키트를 이용하는 OpenLDAP 서버에서만 작동합니다. Permanent Directory Entry를 제거하기 위해서는 nmaddentry에 의해서 돌려 받는 LDAP 구분이름을 OpenLDAP 프로그램에 같이 배포된 ldapdelete프로그램에 사용해야 합니다.

bash$ ldapdelete -h ils.freesoft.org 'cn=baccala@freesoft.org,objectclass=rtperson'
bash$
      

4.5. 여러개의 별명(Aliase) 사용하기

넷미팅 클라이언트에 의해서 등록된 attribute들은 'sport'를 포함합니다. TCP 포트 넘버는 호출되는 H.323 요구를 들을 수 있습니다. 그러나 이 attribute는 찾기 요청 안에서 절대로 가져올 수 없습니다. 이것은 유용하지 않는 것 같습니다. 사실상, 넷미팅은 항상 1720포트로 H.323 커넥션을 연결하고 있습니다. 그렇다면 싱글 IP 주소로부터 다중의 별명을 어떻게 사용할 까요?

열쇠는 OpenH323 CVS archive에 포함되어 있는 forwarder프로그램이 하는 일에 있습니다. forwarder는 1720포트에서 커넥션이 있는지 항상 기다립니다. 그리고 호출되어진 별명들을 기초로 연결들을 재 전송할 수 있습니다. 이것은 ohphone 이나 openam 같은 프로그램이 사용하는 특정 포트 넘버로 각 익명이 전송되어지는 호출들을 허용합니다.

별명을 이용하기 위해서는 각 별명마다 entry를 가지고 있는 LDAP디렉터리가 요구 됩니다. 각 별명 entry는 별명의 'cn' attribute와 forwarder가 살피고 있는 호스트의 IP 주소의 'sipAddress' attribute로 정의 되야 합니다.

나는 성공적으로 다양한 프라이빗 포트와 리모트 시스템 상에서 하나의 호스트로 LDAP 서버(포트 389)와 forwarder(포트 1720) 그리고 ohphoneopenam 클라이언트를 구성할 수 있었습니다.


4.6. 자동 응답기 사용하기

OpenH323의 자동응답기 프로그램인 openam은 H.323 연결 호출들을 들을 수 있습니다. 그리고 미리 녹음된 메시지를 재생 할 수 있고 어떠한 음성도 파일로 보내어 녹음할 수 있습니다. 연결 요청의 끝에서 녹음된 음성을 이메일로 보내는 것과 같은 다른 프로그램을 실행할 수 있도록 선택적으로 구성할 수 있습니다.

이 자동응답 프로그램은 현재(2000년 12월) main address에 답변이 없을 때 연결 요청을 재 전송할 수 없습니다. gatekeeper프로그램이 이 기능을 지원하지 못하고 있기 때문입니다. 사용하기 좀 불편합니다. 그리하여, 이 자동응답 프로그램은 ohphone 프로그램이 --forward-no-answer--forward-busy 옵션을 사용하여 연결 요청을 재전송하도록 구성되고, main address에서 실행되고 있을 때만 작동할 수 있습니다


4.7. Conference Calls

OpenH323 CVS archive 안에 있는 openmcu프로그램은 H.323 Multipoint Control Unit (MCU)을 수행합니다. 여러 개의 넷미팅 혹은 ohphone클라이언트들이 컨퍼런스 콜과 MCU로 연결할 수 있게 해 줍니다. 2000년 12월 까지 다중 연결의 신뢰도와 품질은 좀 문제가 있습니다. 하지만 희망적으로 개선 되어 가고 있습니다.


4.8. Routing Calls Through NAT

H.323 트레픽이 NAT(IP Masquerade) 라우터를 통과 하기 위해서는 특별한 도움이 요구 됩니다. NAT 라우터가 리눅스에서 실행되고 있다면 다음 사이트에 있는 masquerading 모듈이 도움이 될 것 입니다 http://www.coritel.it/projects/sofia/nat.html.

참고: 저는 아직 위의 소프트웨어를 테스트 해보지 않았습니다.


4.9. 일반적인 구성들

서버의 활용은 'netmeeting.perl' 스크립트를 수정해서 구성 할 수 있습니다. 예를 들면 이용할 수 없는 entry의 요청은 openam 자동응답 프로그램에게 접근할 수 없도록 구성된 "forwarder" 프로그램으로 재전송 될 수 있어야 합니다. 이와 같이 이용할 수 없는 사용자에 대한 연결 요청은 녹음되고 응답될 수 있을 것입니다.

OpenH323's의 개발이 지속됨에 따라, 기술이 지능화 되는 것을 기대할 수 있습니다. 예를 들면 먼저 벨이 울리거나 주어진 시간에 응답이 없다면 자동응답기로 요청이 전송되는 것과 같은 것 말입니다. 어떤 기능들은 gatekeeper안에 거의 포함될 것입니다.


5. 버그잡기

넷미팅 디렉터리 키트를 디버깅하기 위해서는 Brent Baccala 는 페킷을 추적하기 위해서 ethereal(http://ethereal.zing.org/)을 이용하도록 제안 했습니다. 이것은 LDAP를 지원하기에 매우 좋습니다. 또한 언급되지 않는 "netmeeting.perl" 스크립트 중 이러한 추적기능을 이용할 수 있는 옵션이 있습니다.

당신은 또한 -d 768 옵션을 이용하여 slapds를 실행하여 디버깅 할 수 있습니다. 하지만 메시지가 좀 혼란스러울 수 있습니다.

H.323을 디버깅 하기 위해서는 모든 OpenH323 클라이언트 프로그램에 "-t" and "-o" 옵션을 사용하시기 바랍니다.


A. LDAP attributes used by NetMeeting

Distinguished Names (DNs) used by NetMeeting must always end in "objectclass=rtperson". The following LDAP attributes are used by NetMeeting:

표 A-1. NetMeeting LDAP attributes

objectClassmust be "RTPerson"
cnalias used for directory lookups; must be present
sappidmust be "ms-netmeeting"
sprotidmust be "h323"
sprotmimetypetypically "text/h323"; unused
smimetypetypically "text/iuls"; unused
sflagsmust be 1
sappguidunknown
smodopunknown
sipaddressdecimal IP address
sportTCP port number; unused
ssecurityunknown
sttlentry timeout value in minutes
ctwo digit country code
rfc822mailboxemail address
givennameoptional
surnameoptional
commentoptional
locationoptional
ilsa393216301 = personal; 2 = business; 4 = adult
ilsa328335660 = not audio capable; 1 = audio capable
ilsa329646380 = not video capable; 1 = video capable
ilsa262144300 = not in a call; 1 = currently in a call
ilsa26279966unknown

NetMeeting uses a non-standard means of refreshing dynamic entries. The Microsoft server maintains an "sttl" attribute, which is a time to live for the entry in minutes. A search request for attribute "sttl" resets the timer. If the timer goes to zero, the entry is supposed to disappear from the database. Of course, the sttl attribute doesn't actually exist in the database, and the client doesn't bother to give us the whole DN it wants updated, only supplying the "cn" component in the search request.


B. NetMeeting LDAP protocol violations

As mentioned, NetMeeting violates the LDAP protocol in several ways. For the record, NetMeeting:

  • Doesn't structure Distinguished Names (DNs) properly

    NetMeeting puts the most significant elements in the DN first, instead of last, using:

    		C=US, O=Microsoft, CN=xxx@abc.com, OBJECTCLASS=rtperson
                

    instead of the proper formating, which is:

                  CN=xxx@abc.com, O=Microsoft, C=US
                
  • Doesn't include the required "objectclass" attribute

    Instead, it tacks an "OBJECTCLASS" element to the end of the DN, as shown above.

  • Doesn't insert parents into the LDAP server

    This is a clear violation of the LDAP standard, which requires parents to exist before children can be created. I.e, to insert this DN:

                  CN=xxx@abc.com, O=Microsoft, C=US
                

    this DN must already exist:

    		O=Microsoft, C=US
                

    as must this one:

    	      C=US
                
  • Doesn't understand attribute aliases, and is therefore unable to recognize that "sn" and "surname" refer to the same attribute.

  • Requires that attributes in a search request be returned in exactly the same order they were requested, a requirement not guaranteed by the OpenLDAP server.

  • Specifies "base" scope in search requests, when it really should use "sub", since it wants a list of entries, not just one

  • Uses the "%" character as wildcard in search requests, instead of the "*" character specified by the standard.

  • Uses a non-standard means of refreshing dynamic entries.

    The Microsoft server maintains an "sttl" attribute, which is a time to live for the entry in minutes. A search request for attribute "sttl" resets the timer. If the timer goes to zero, the entry is supposed to disappear from the database. NetMeeting 2 supplies an "sttl" attribute, but NetMeeting 3 doesn't actually create the "sttl" attribute at all. Also, the client doesn't bother to give us the whole DN it wants updated, only supplying the "cn" component.


C. Interoperation with Cisco

Both NetMeeting and OpenH323 can interoperate with Cisco's voice capable routers. To successfully initiate calls from a Cisco to an OpenH323 (i.e, Linux) client, the G.711 codec must be explicitly specified. For example, with the following configuration, dialing "911" on the Cisco will place a call to a Linux system (10.1.1.1) running OpenH323:

dial-peer voice 911 voip
 destination-pattern 911
 session target ipv4:10.1.1.1
 codec g711ulaw
    

To call from Linux to a Cisco, use ohphone with a number@host argument. number should be a phone number that's been configured on the Cisco using a dial-peer statement. For example, this will call number "111" on a Cisco (10.1.1.10):

bash$ ohphone -n 111@10.1.1.10
    

To call from NetMeeting to a Cisco, select the Cisco as a gateway. To do this from NetMeeting, select Tools->Options. For NetMeeting 2, select Audio, check the box labeled "Use H.323 gateway", and enter the Cisco's DNS or IP address. For NetMeeting 3, select General+Advanced Calling..., check the box labeled "Use a gateway..." (not gatekeeper) and enter the Cisco's address. Now, you can type a phone number directly into NetMeeting's address panel and it will be relayed to the Cisco and resolved there, using the Cisco's configured dialing rules. If you're using NetMeeting 2, you'll need to select "H.323 Gateway" from the "Call using:" list when you initiate the call.


D. 번역자의 덧붙이는 글

대부분의 글을 한글로 번역했습니다. 그중 용어들은 영어를 그대로 쓰고자 했습니다.(엉성한 용어 번역은 글을 읽는데 더 불편을 드릴 것 같아서...) 이 문서에 틀린 부분이나 지적하실 사항이 있으시면 연락 주시기 바랍니다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0256 sec