당신은 OpenH323의 ohphone프로그램을 넷미팅 프로그램과 바로 연결 할 수 있게 사용할 수 있습니다. -n 옵션은 당신이 넷미팅 클라이언트의 DNS name이나 혹은 IP 주소에 gatekeeper를 사용하지 않을 때 이용합니다.
bash$ ohphone -n 208.130.48.22
|
당신은 또한 ohphone을 다른 넷미팅 프로그램으로부터 호출을 받을 때 사용할 수 있습니다.
bash$ ohphone -n
|
비디오 컨퍼런싱과 코덱 선택, 자동 응답등 추가적인 사항에 대해서 ohphone의 문서에서 확인할 수 있습니다.
위에서 기술한 것과 같이 넷미팅 디렉터리 키트로 동작하는 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서버로부터 어떻게 결과를 찾을 것인지를 알려주는 기초적인 예가 될 수 있습니다.
마이크로 소프트 인터넷 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에 사용자의 이 메일 주소를 등록합니다. 이 메일 주소를 기초로 하는 디렉터리를 검색할 때 두번째 형식을 사용합니다.
넷미팅 클라이언트가 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$
|
넷미팅 클라이언트에 의해서 등록된 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) 그리고 ohphone와 openam 클라이언트를 구성할 수 있었습니다.
OpenH323의 자동응답기 프로그램인 openam은 H.323 연결 호출들을 들을 수 있습니다. 그리고 미리 녹음된 메시지를 재생 할 수 있고 어떠한 음성도 파일로 보내어 녹음할 수 있습니다. 연결 요청의 끝에서 녹음된 음성을 이메일로 보내는 것과 같은 다른 프로그램을 실행할 수 있도록 선택적으로 구성할 수 있습니다.
이 자동응답 프로그램은 현재(2000년 12월) main address에 답변이 없을 때 연결 요청을 재 전송할 정도로 gatekeeper프로그램이 영리하지 못한 것에 의해서 제한을 받기 때문에 유용하지 안습니다. 그리하여, 이 자동응답 프로그램은 ohphone 프로그램이 --forward-no-answer 와 --forward-busy 옵션을 사용하여 연결 요청을 재전송하도록 구성되고, main address에서 실행되고 있을 때만 작동할 수 있습니다
OpenH323 CVS archive 안에 있는 openmcu프로그램은 H.323 Multipoint Control Unit (MCU)을 수행합니다. 여러 개의 넷미팅 혹은 ohphone클라이언트들이 컨퍼런스 콜과 MCU로 연결할 수 있게 해 줍니다. 2000년 12월 까지 다중 연결의 신뢰도와 품질은 좀 문제가 있습니다. 하지만 희망적으로 개선 되어 가고 있습니다. The openmcu program, in the OpenH323 CVS archive, implements an H.323 Multipoint Control Unit (MCU). Multiple NetMeeting or ohphone clients can connect to the MCU and form a conference call. As of December 2000, the quality and reliability of the connection is problematic, but hopefully this will improve.
H.323 트레픽이 NAT(IP Masquerade) 라우터를 통과 하기 위해서는 특별한 도움이 요구 됩니다. NAT 라우터가 리눅스에서 실행되고 있다면 다음 사이트에 있는 masquerading 모듈이 도움이 될 것 입니다 http://www.coritel.it/projects/sofia/nat.html.
참고: 저는 아직 위의 소프트웨어를 테스트 해보지 않았습니다.
서버의 활용은 'netmeeting.perl' 스크립트를 수정해서 구성 할 수 있습니다. 예를 들면 이용할 수 없는 entry의 요청은 openam 자동응답 프로그램에게 접근할 수 없도록 구성된 "forwarder" 프로그램으로 재전송 될 수 있어야 합니다. 이와 같이 이용할 수 없는 사용자에 대한 연결 요청은 녹음되고 응답될 수 있을 것입니다.
OpenH323's의 개발이 지속됨에 따라, 기술이 지능화 되는 것을 기대할 수 있습니다. 예를 들면 먼저 벨이 울리거나 주어진 시간에 응답이 없다면 자동응답기로 요청이 전송되는 것과 같은 것 말입니다. 어떤 기능들은 gatekeeper안에 거의 포함될 것입니다.