909 lines
46 KiB
Plaintext
909 lines
46 KiB
Plaintext
|
Linux NETMEETING HOWTO
|
|||
|
|
|||
|
Brent Baccala
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baccala@freesoft.org
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Martin Schiffers
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mschiffers@axsi.net
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Mark F. Komarinski - Conversion from HTML to DocBook 3.1
|
|||
|
Revision History
|
|||
|
Revision v1.2 15 January 2002 Revised by: bwb
|
|||
|
Updated ndk-1.2; handles newer versions of openldap. Added pointers to
|
|||
|
mailing list
|
|||
|
Revision v1.1 31 March 2001 Revised by: bwb
|
|||
|
Updated ndk-1.1; handles accented European characters
|
|||
|
Revision v1.0 13 January 2001 Revised by: bwb
|
|||
|
Initial public release
|
|||
|
Revision v0.11 25 October 2000 Revised by: mfk
|
|||
|
Conversion to DocBook
|
|||
|
|
|||
|
|
|||
|
This document aims to describe how to make Microsoft NetMeeting interoperate
|
|||
|
with Linux.
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
Table of Contents
|
|||
|
1. Introduction
|
|||
|
2. OpenH323
|
|||
|
2.1. What is it?
|
|||
|
2.2. Why is it needed?
|
|||
|
2.3. Where to get it?
|
|||
|
2.4. Installation
|
|||
|
2.5. Gatekeepers
|
|||
|
|
|||
|
|
|||
|
3. NetMeeting directory kit
|
|||
|
3.1. What is it?
|
|||
|
3.2. Why is it needed?
|
|||
|
3.3. How it works
|
|||
|
3.4. Where to get the software
|
|||
|
3.5. Installation
|
|||
|
3.6. Server Security
|
|||
|
3.7. LDAP issues with Windows 2000
|
|||
|
3.8. Interoperation with other LDAP service
|
|||
|
|
|||
|
|
|||
|
4. Using the Software
|
|||
|
4.1. Direct Connection
|
|||
|
4.2. Directory Operation
|
|||
|
4.3. Linking From A Web Page
|
|||
|
4.4. Permanent Directory Entries
|
|||
|
4.5. Serving Multiple Aliases
|
|||
|
4.6. Using the Answering Machine
|
|||
|
4.7. Conference Calls
|
|||
|
4.8. Routing Calls Through NAT
|
|||
|
4.9. Custom Configurations
|
|||
|
|
|||
|
|
|||
|
5. Debugging
|
|||
|
A. LDAP attributes used by NetMeeting
|
|||
|
B. NetMeeting LDAP protocol violations
|
|||
|
C. Interoperation with Cisco
|
|||
|
D. Thanks
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
This is the Linux NETMEETING HOWTO; it describes how to configure Linux for
|
|||
|
interoperation with Microsoft NetMeeting. The latest copy of this document is
|
|||
|
available at [http://www.freesoft.org/software/NetMeeting/] http://
|
|||
|
www.freesoft.org/software/NetMeeting or from the [http://www.linuxdoc.org/]
|
|||
|
Linux Documentation Project. <software/NetMeeting@freesoft.org> is a mailing
|
|||
|
list to discuss Linux NetMeeting interoperation; consult its [http://
|
|||
|
www.freesoft.org/software/NetMeeting/mailinglist/] archive if you have
|
|||
|
questions unanswered in this HOWTO.
|
|||
|
|
|||
|
NetMeeting is Microsoft's client implementation of the H.323 international
|
|||
|
standard teleconferencing protocol suite, providing audio and video
|
|||
|
conferencing over an IP network. NetMeeting also implements the T.120
|
|||
|
protocol suite, providing shared whiteboard, file transfer and application
|
|||
|
sharing. As an extension, LDAP is used for directory service. NetMeeting is
|
|||
|
included in Windows 2000 and is freely available for download from [http://
|
|||
|
www.microsoft.com/windows/netmeeting] http://www.microsoft.com/windows/
|
|||
|
netmeeting for Windows 95, 98, and NT.
|
|||
|
|
|||
|
Linux software is presently (October 2000) available to support H.323 (both
|
|||
|
audio and video) and LDAP directory service, but not T.120 shared whiteboard,
|
|||
|
file transfer, or application sharing.
|
|||
|
|
|||
|
If you don't know anything about H.323, I recommend these links:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.openh323.org/] http://www.openh323.org/
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.databeam.com/h323/h323primer.html] http://www.databeam.com/
|
|||
|
h323/h323primer.html
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.hut.fi/~tttoivan/index4.html] http://www.hut.fi/~tttoivan/
|
|||
|
index4.html
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://developer.intel.com/technology/itj/q21998/articles/art_4.htm]
|
|||
|
http://developer.intel.com/technology/itj/q21998/articles/art_4.htm
|
|||
|
|
|||
|
|
|||
|
If you don't know anything about LDAP, I recommend these links:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.openldap.org/] http://www.openldap.org/
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.umich.edu/~dirsvcs/ldap/index.html] http://www.umich.edu/
|
|||
|
~dirsvcs/ldap/index.html
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>RFCs 2251-2256
|
|||
|
|
|||
|
|
|||
|
If you have other links to recommend, or other suggestions for improving this
|
|||
|
document, please email me at <baccala@freesoft.org>, or even better email <
|
|||
|
software/NetMeeting@freesoft.org>
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2. OpenH323
|
|||
|
|
|||
|
2.1. What is it?
|
|||
|
|
|||
|
OpenH323 is an open source implementation of the H.323 protocol suite. As
|
|||
|
such, it can directly interoperate with Microsoft NetMeeting. At the time of
|
|||
|
this writing (October 2000), OpenH323 is still early in its development
|
|||
|
cycle; buggy and in flux, but useful.
|
|||
|
|
|||
|
OpenH323 consists of several C++ libraries and some C++ client programs.
|
|||
|
|
|||
|
The most useful client programs are:
|
|||
|
|
|||
|
|
|||
|
Table 1. List of client applications
|
|||
|
+---------+-----------------------------------------------------------------+
|
|||
|
|ohphone |H.323 interactive client. Linux equivalent to NetMeeting. |
|
|||
|
| |Supports audio and video; no shared whiteboard, file transfer, or|
|
|||
|
| |shared applications |
|
|||
|
+---------+-----------------------------------------------------------------+
|
|||
|
|openam |H.323 answering machine. Plays back a recorded message and |
|
|||
|
| |records incoming audio. No video support at present. |
|
|||
|
+---------+-----------------------------------------------------------------+
|
|||
|
|forwarder|Forwards H.323 sessions from one IP address/port to another. Used|
|
|||
|
| |to serve multiple H.323 destinations from a single IP address. |
|
|||
|
+---------+-----------------------------------------------------------------+
|
|||
|
|openmcu |Multipoint Control Unit. Connects multiple sessions together into|
|
|||
|
| |a conference call. |
|
|||
|
+---------+-----------------------------------------------------------------+
|
|||
|
|PSTN |Allows NetMeeting clients to make phone calls onto the |
|
|||
|
|Gateway |conventional phone system - the Public Switched Telephone Network|
|
|||
|
| |(PSTN). Requires special hardware. |
|
|||
|
+---------+-----------------------------------------------------------------+
|
|||
|
|
|||
|
OpenH323 presently (October 2000) supports audio codecs G.711, G.723.1,
|
|||
|
LPC-10, and GSM 06.10, as well as video codec H.261.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.2. Why is it needed?
|
|||
|
|
|||
|
OpenH323 is needed only if you want to make audio/video connections with
|
|||
|
NetMeeting clients directly from your Linux system. It is not needed to
|
|||
|
provide LDAP directory service to NetMeeting clients.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.3. Where to get it?
|
|||
|
|
|||
|
The main site is [http://www.openh323.org/] http://www.openh323.org/ and
|
|||
|
contains links to a download page, mirror sites, mailing lists, and other
|
|||
|
resources.
|
|||
|
|
|||
|
OhPhone, OpenAM, and PSTNgw are available as part of the standard
|
|||
|
distribution, in both source and executable formats. forwarder and openmcu
|
|||
|
are presently (December 2000) only available from the CVS archive, as modules
|
|||
|
named "forwarder" and "openmcu".
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.4. Installation
|
|||
|
|
|||
|
For OhPhone, OpenAM, and PSTNgw, download the executables. If you want to
|
|||
|
build from source, perhaps because you need forwarder or openmcu, you'll need
|
|||
|
the source code to the programs, as well as to the pwlib and openh323
|
|||
|
libraries. Compilation instructions are available on the openh323 website.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.5. Gatekeepers
|
|||
|
|
|||
|
OpenH323 doesn't provide any gatekeepers itself, but several are under
|
|||
|
construction based on its libraries. As of the end of 2000, most of them are
|
|||
|
actively under development and quite primitive. I haven't used any of them
|
|||
|
myself, but you want may to examine the following links:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.opengatekeeper.org/] OpenGatekeeper
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.willamowius.de/openh323gk.html] OpenH323 Gatekeeper
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://openh323proxy.sourceforge.net/] OpenGatekeeper H323 Proxy
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
3. NetMeeting directory kit
|
|||
|
|
|||
|
3.1. What is it?
|
|||
|
|
|||
|
Each NetMeeting client can register with an LDAP server and has a directory
|
|||
|
window that lists other NetMeeting clients registered with the same server.
|
|||
|
The NetMeeting directory kit is an extension to the OpenLDAP server that
|
|||
|
provides directory service to NetMeeting clients.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.2. Why is it needed?
|
|||
|
|
|||
|
While NetMeeting can connect directly to another H.323 device by specifying
|
|||
|
an IP address or DNS name, normally you'll want to use an LDAP directory
|
|||
|
server. Using an LDAP server lets users see a directory listing of available
|
|||
|
destinations, and is required if you need to resolve aliases, for example if
|
|||
|
you want to serve multiple H.323 destinations from a single IP address. A
|
|||
|
directory server isn't required to connect directly from Linux to a
|
|||
|
NetMeeting client; use OpenH323 for this.
|
|||
|
|
|||
|
The NetMeeting client violates the LDAP protocol in several ways, so you'll
|
|||
|
have problems if you try using a standard LDAP server. The NetMeeting
|
|||
|
directory kit corrects for these problems and allows an OpenLDAP server to be
|
|||
|
used for NetMeeting directory service.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.3. How it works
|
|||
|
|
|||
|
+--------------------------------------------------------------------------------+
|
|||
|
| 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 -------------- |
|
|||
|
|| | | | |
|
|||
|
|------------------- ------------------ |
|
|||
|
+--------------------------------------------------------------------------------+
|
|||
|
|
|||
|
The directory server consists of a 'master' LDAP server to receive requests,
|
|||
|
a Perl script to correctly interpret the Microsoft NetMeeting requests and,
|
|||
|
after interrogation of a 'hidden' LDAP server, formats the results in a way
|
|||
|
that the NetMeeting client can understand. OpenLDAP's 'shell backend' is used
|
|||
|
to call the Perl script. A custom schema is also required. The script
|
|||
|
presently handles all of the above problems, with the exception of timing out
|
|||
|
entries, which it doesn't do.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.4. Where to get the software
|
|||
|
|
|||
|
First of all you need to get the OpenLDAP software.
|
|||
|
|
|||
|
Note Pre-built OpenLDAP software (i.e, RPMs) won't work unless configured
|
|||
|
with support for the shell backend.
|
|||
|
|
|||
|
You can download OpenLDAP from the main site located at [ftp://
|
|||
|
ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/] ftp://ftp.OpenLDAP.org/pub/
|
|||
|
OpenLDAP/openldap-release/ or any mirror. I've successfully used OpenLDAP
|
|||
|
2.0.7.
|
|||
|
|
|||
|
The NetMeeting directory kit is available from [http://www.freesoft.org/
|
|||
|
software/NetMeeting/download] http://www.freesoft.org/software/NetMeeting/
|
|||
|
download.
|
|||
|
|
|||
|
You need Perl 5, available from [http://www.perl.org/] http://www.perl.org,
|
|||
|
but already included in all common Linux distributions. You will also need
|
|||
|
the Net::LDAP module from the Perl CPAN archive, which can be downloaded and
|
|||
|
installed directly from Perl:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|[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> |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
If you've never used CPAN before, you will be prompted first with a series of
|
|||
|
configuration questions. Once CPAN is configured, the Net::LDAP module will
|
|||
|
be downloaded, compiled, and installed automatically.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.5. Installation
|
|||
|
|
|||
|
Building OpenLDAP will require approximately 60 MB of free disk space. Untar
|
|||
|
OpenLDAP and configure it.
|
|||
|
|
|||
|
Note Be sure to specify the shell backend function "--enable-shell"
|
|||
|
|
|||
|
I also recommend specifying "--disable-debug" to prevent OpenLDAP from
|
|||
|
exiting if an assertion fails.
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|bash$ ./configure --enable-shell --disable-debug |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
Now build and install it with:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|bash$ make |
|
|||
|
| |
|
|||
|
|... much output omitted ... |
|
|||
|
| |
|
|||
|
|bash# make install |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
It will normally install under /usr/local:
|
|||
|
|
|||
|
|
|||
|
Table 2. Directories used by OpenLDAP
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/lib |Shared and static libraries |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/bin |Client binaries for adding, deleting, and searching |
|
|||
|
| |LDAP servers |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/sbin |Utility programs for manipulating the raw database |
|
|||
|
| |files. Not needed for normal operation. |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/libexec |Various server programs, including the slapd binary |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/etc/ |Contains the default configuration files |
|
|||
|
|openldap | |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/etc/ |The different schemas used by the LDAP servers. |
|
|||
|
|openldap/schema | |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/var/... |The location of the LDAP databases (in subdirectories) |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|/usr/local/man/... |Documentation |
|
|||
|
+-------------------+-------------------------------------------------------+
|
|||
|
|
|||
|
Once OpenLDAP has been installed, next install the NetMeeting directory kit.
|
|||
|
Untar ndk.tgz. It contains these files:
|
|||
|
|
|||
|
|
|||
|
Table 3. NetMeeting directory kit files
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|netmeeting.perl |Perl script used to correct NetMeeting protocol |
|
|||
|
| |violations |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|netmeeting.schema|Custom NetMeeting schema used by the LDAP server |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|core.schema.patch|Patch to LDAP server's core schema |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|slapd.conf |Sample config file for the master LDAP server |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|slapd2.conf |Sample config file for the slave LDAP server |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|initialize |Shell script used once to initialize the slave LDAP |
|
|||
|
| |database |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|slapd.rc |/etc/rc.d/ script |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|nmaddentry |Perl script to add entries to the NetMeeting directory |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|nmdirectory |Perl/Tk script to query the NetMeeting directory |
|
|||
|
+-----------------+---------------------------------------------------------+
|
|||
|
|
|||
|
Copy netmeeting.perl to the /usr/local/libexec directory, netmeeting.schema
|
|||
|
to the /usr/local/etc/openldap/schema directory, and copy both slapd.conf and
|
|||
|
slapd2.conf to the /usr/local/etc/openldap directory.
|
|||
|
|
|||
|
Be sure to use core.schema.patch to patch openldap's core schema in the /usr/
|
|||
|
local/etc/openldap/schema directory:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|bash$ cd /usr/local/etc/openldap/schema |
|
|||
|
|bash$ ls |
|
|||
|
|corba.schema inetorgperson.schema misc.schema nis.schema |
|
|||
|
|core.schema java.schema nadf.schema openldap.schema |
|
|||
|
|cosine.schema krb5-kdc.schema netmeeting.schema |
|
|||
|
|bash$ cp core.schema core.schema.bak |
|
|||
|
|bash$ patch core.schema < ~/core.schema.patch |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
Create the directory /usr/local/var/openldap-netmeeting to store the LDAP
|
|||
|
database, and make it world writable.
|
|||
|
|
|||
|
Especially if you're using directories from the samples, edit slapd.conf and
|
|||
|
slapd2.conf and verify their configuration settings.
|
|||
|
|
|||
|
You will need to run two copies of slapd. One uses slapd.conf and must be
|
|||
|
started as root, since it binds to port 389. The -u option can be specified
|
|||
|
to cause slapd to chown to an unprivileged user after binding the port (a
|
|||
|
wise precaution). The other slapd uses slapd2.conf, binds to an unprivileged
|
|||
|
port, and only needs sufficient privilege to write the database directory.
|
|||
|
+------------------------------------------------------------------------------------------------+
|
|||
|
|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 |
|
|||
|
| |
|
|||
|
+------------------------------------------------------------------------------------------------+
|
|||
|
|
|||
|
You now have to initialize the slave database with a single entry. This is
|
|||
|
only done once, by running the initialize script included in the kit. The
|
|||
|
"rootdn" and "rootpw" entries are in the slave config file to allow access
|
|||
|
for the initialization script, and must match the -D and -w options in the
|
|||
|
script. Once you've initialized the database with a single parent entry, you
|
|||
|
can comment out the "rootdn" and "rootpw" lines from slapd2.conf, though this
|
|||
|
is not critical.
|
|||
|
|
|||
|
The server should now be up and running. For systems with /etc/rc.d/ style
|
|||
|
initialization scripts (like RedHat), the slapd.rc is provided to automate
|
|||
|
the starting and stopping of the slapds.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.6. Server Security
|
|||
|
|
|||
|
As shown above, I run both slapds as an unprivileged user, minimizing the
|
|||
|
possibility of compromised security due to a bug in either the server
|
|||
|
software or the Perl script. Of course, this requires the database directory
|
|||
|
to be world writable so that the unprivileged slave server can update it.
|
|||
|
This isn't as glaring a hole as it might first appear, since the NetMeeting
|
|||
|
clients themselves use no authentication. Thus, even if the database
|
|||
|
directory were better protected, anyone on a local or remote host could use
|
|||
|
LDAP client programs to delete or modify any of the database entries.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.7. LDAP issues with Windows 2000
|
|||
|
|
|||
|
Recent NetMeeting releases initially attempt to connect to the LDAP directory
|
|||
|
server on port 1002. As described in a [http://www.microsoft.com/TechNet/
|
|||
|
chats/trans/iis1208.asp] TechNet chat,
|
|||
|
|
|||
|
|
|||
|
Prior to Windows 2000, an ILS server would listen on port 389 for
|
|||
|
NetMeeting clients. When an ILS server is set up on a Windows 2000
|
|||
|
machine, it will default to port 1002.
|
|||
|
|
|||
|
If a connection to port 1002 is rejected, NetMeeting will fall back on the
|
|||
|
standard LDAP port 389. However, at least one user has reported trouble with
|
|||
|
a firewall that blocks port 1002, discards the connection attempts, and thus
|
|||
|
no replies are received to reject the connection. In this case, NetMeeting
|
|||
|
takes about a minute to timeout and fall back to port 389. Opening the
|
|||
|
firewall to port 1002 allowed the rejects through and triggered a rapid
|
|||
|
fallback.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.8. Interoperation with other LDAP service
|
|||
|
|
|||
|
The instructions above assume that your LDAP server is only being used for
|
|||
|
NetMeeting directory service. Yet what if you want to use a single server for
|
|||
|
both NetMeeting directory service and other LDAP service? Only one server can
|
|||
|
be bound to port 389, but OpenLDAP allows multiple database sections to be
|
|||
|
specified in its configuration file, each serving different parts of the LDAP
|
|||
|
namespace. NetMeeting uses only the "objectClass=RTPerson" subtree, so as
|
|||
|
long as you avoid this subtree, you can configure additional database
|
|||
|
sections to serve other subtrees with other databases. The biggest problem
|
|||
|
you are likely to encounter is the custom NetMeeting schema, which conflicts
|
|||
|
slightly with the standard schema. Since the NetMeeting schema is more
|
|||
|
liberal than the standard schema, I'd suggest commenting out the conflicting
|
|||
|
parts of the standard schema. NetMeeting clients won't work with the standard
|
|||
|
schema. See the LDAP RFCs and the OpenLDAP documentation for more information
|
|||
|
about configuring LDAP servers.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4. Using the Software
|
|||
|
|
|||
|
4.1. Direct Connection
|
|||
|
|
|||
|
You can use OpenH323's ohphone program to connect directly to a NetMeeting
|
|||
|
client. Specify the -n option to indicate that you're not using a gatekeeper,
|
|||
|
and either the DNS name or IP address of the NetMeeting client:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|bash$ ohphone -n 208.130.48.22 |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
You can also start ohphone to receive incoming calls from NetMeeting clients:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|bash$ ohphone -n |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
See the ohphone documentation for more information on its additional
|
|||
|
features, including video conferencing, codec selection, and auto-answer.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.2. Directory Operation
|
|||
|
|
|||
|
Make sure you have an LDAP server running the NetMeeting directory kit, as
|
|||
|
described above.
|
|||
|
|
|||
|
On the NetMeeting client, select the Tools -> Options menu item to display a
|
|||
|
configuration dialog. Under the "General" (NetMeeting 3) or "Calling"
|
|||
|
(NetMeeting 2) tab, there will be a section for "Directory Settings". Here
|
|||
|
you can enter the IP address or DNS name of the server. The client will then
|
|||
|
attach to the server and register itself either automatically, if the "Log on
|
|||
|
to directory server when NetMeeting starts" checkbox is selected. You can
|
|||
|
also log on to the directory server manually, by selecting Call -> Log on .
|
|||
|
|
|||
|
If the user selects Call -> Directory , a directory window will be displayed
|
|||
|
showing all users registered on the LDAP server. Double-clicking on one of
|
|||
|
the names will initiate a connection to that user.
|
|||
|
|
|||
|
Querying the NetMeeting LDAP server from Linux can be done, but is tricky
|
|||
|
because the client's IP address is stored in decimal, and I don't mean dotted
|
|||
|
decimal. For example, the IP address 63.216.69.197 is stored as 3309688895.
|
|||
|
Here's some Perl code to convert back and forth from the NetMeeting IP
|
|||
|
address format:
|
|||
|
+-------------------------------------------------------------------------------+
|
|||
|
|# 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); |
|
|||
|
+-------------------------------------------------------------------------------+
|
|||
|
|
|||
|
Included with the NetMeeting directory kit is nmdirectory, a simple Perl/Tk
|
|||
|
script to query a NetMeeting LDAP server and display the clients registered
|
|||
|
with it. It's very primitive, and doesn't work well with large databases, but
|
|||
|
provides a rudimentary example of how to interpret search results from a
|
|||
|
NetMeeting LDAP server.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.3. Linking From A Web Page
|
|||
|
|
|||
|
Microsoft Internet Explorer understands URLs with a "callto:" scheme that
|
|||
|
specify NetMeeting destinations in one of two forms. When a link with a
|
|||
|
"callto:" URL is selected, Internet Explorer runs NetMeeting and directs it
|
|||
|
to connect to the specified destination.
|
|||
|
|
|||
|
The first URL form, "callto:destination", where 'destination' is either an IP
|
|||
|
address or a DNS name, causes NetMeeting to open an H.323 connection to port
|
|||
|
1720 on 'destination'. Use this form to connect directly to another
|
|||
|
NetMeeting or OpenH323 client.
|
|||
|
|
|||
|
The second URL form, "callto:server/alias", causes a directory lookup on LDAP
|
|||
|
server 'server', searching for a CN attribute of 'alias'. Assuming a match is
|
|||
|
found, a connection is made to the IP address specified in the entry's
|
|||
|
sipAddress attribute. NetMeeting clients, by default, register their user's
|
|||
|
E-mail addresses in the CN attribute. Use this form to perform a directory
|
|||
|
lookup based on E-mail address.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.4. Permanent Directory Entries
|
|||
|
|
|||
|
NetMeeting clients aren't the only source of LDAP directory entries. In
|
|||
|
particular, permanent directory entries can be manually inserted into the
|
|||
|
LDAP server using the OpenLDAP client tools. Assuming the attributes are
|
|||
|
specified properly, these entries will then appear in NetMeeting directory
|
|||
|
listings and can be used as targets in "callto:" URLs. This is useful when
|
|||
|
working with OpenH323 clients that don't register themselves by default with
|
|||
|
the LDAP server.
|
|||
|
|
|||
|
To simply creating directory entries, the nmaddentry script is included in
|
|||
|
the NetMeeting directory kit. Run it without arguments for a usage message.
|
|||
|
For example, if you've started ohphone on "y2k.freesoft.org", you can
|
|||
|
register it with the LDAP server on "ils.freesoft.org" using alias
|
|||
|
"baccala@freesoft.org" like this:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|bash$ nmaddentry -h ils.freesoft.org baccala@freesoft.org y2k.freesoft.org |
|
|||
|
|Successfully added cn=baccala@freesoft.org, objectclass=rtperson |
|
|||
|
|bash$ |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
This entry will now appear in NetMeeting directory listings and can be
|
|||
|
addressed as "ils.freesoft.org/baccala@freesoft.org". The entry will
|
|||
|
automatically timeout after 30 minutes. The -p switch creates a permanent
|
|||
|
directory listing that won't time out, but this only works on OpenLDAP
|
|||
|
servers using the NetMeeting directory kit. To remove a permanent entry, use
|
|||
|
the ldapdelete program included with the OpenLDAP distribution, specifying
|
|||
|
the LDAP Distinguished Name returned by nmaddentry:
|
|||
|
+------------------------------------------------------------------------------------+
|
|||
|
|bash$ ldapdelete -h ils.freesoft.org 'cn=baccala@freesoft.org,objectclass=rtperson' |
|
|||
|
|bash$ |
|
|||
|
| |
|
|||
|
+------------------------------------------------------------------------------------+
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.5. Serving Multiple Aliases
|
|||
|
|
|||
|
The attributes registered by a NetMeeting client include 'sport', the TCP
|
|||
|
port number it listens on for incoming H.323 requests, but since this
|
|||
|
attribute is never retrieved in search requests, it isn't as useful as it
|
|||
|
first appears. In fact, NetMeeting always opens H.323 connections to the
|
|||
|
default port (1720), which raises the question of how to serve multiple
|
|||
|
aliases from a single IP address.
|
|||
|
|
|||
|
The key to doing this is the forwarder program, included in the OpenH323 CVS
|
|||
|
archive. forwarder listens for connections on port 1720, and can be
|
|||
|
configured to redirect them based on the alias being called. This allows
|
|||
|
calls for each alias to be sent to a unique port number, where a program like
|
|||
|
ohphone or openam is listening.
|
|||
|
|
|||
|
To use aliases, an LDAP directory is required, with an entry for each alias.
|
|||
|
Each alias entry should specify a 'cn' attribute with the alias name, and a
|
|||
|
'sipAddress' attribute with the IP address of the host where forwarder is
|
|||
|
listening.
|
|||
|
|
|||
|
I've successfully configured a single host to act as a combination LDAP
|
|||
|
server (on port 389), forwarder (on port 1720), and ohphone and openam
|
|||
|
clients on various private port numbers and remote systems.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.6. Using the Answering Machine
|
|||
|
|
|||
|
The OpenH323 answering machine, openam, will listen for incoming H.323
|
|||
|
connections, play a pre-recorded message, and then record any audio sent to
|
|||
|
it into a file. It can optionally be configured to run another program at the
|
|||
|
end of the call, to email the recorded audio, perhaps.
|
|||
|
|
|||
|
It's usefulness is currently (December 2000) limited by the lack of a
|
|||
|
gatekeeper program clever enough to redirect calls to it if there's no answer
|
|||
|
at the main address. Thus, it will only act as an answering machine if the
|
|||
|
ohphone program is running at the main address, and has been configured to
|
|||
|
redirect calls to another address, using the --forward-no-answer and
|
|||
|
--forward-busy options.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.7. Conference Calls
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.8. Routing Calls Through NAT
|
|||
|
|
|||
|
Special support is required on a NAT (IP Masquerade) router to allow H.323
|
|||
|
traffic to pass through. If the NAT router is running Linux, two masquerading
|
|||
|
modules are available:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm] http://
|
|||
|
www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://netmeetingmasq.sourceforge.net/] http://
|
|||
|
netmeetingmasq.sourceforge.net/
|
|||
|
|
|||
|
|
|||
|
Note I have not tested either of these modules.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.9. Custom Configurations
|
|||
|
|
|||
|
The server capabilities can be customized by modifying the 'netmeeting.perl'
|
|||
|
script. For example, calls for stale entries could be redirected to an
|
|||
|
"forwarder" configured to hand off to "openam" answering machines. Thus,
|
|||
|
calls to a unavailable user would be answered and recorded for later
|
|||
|
playback.
|
|||
|
|
|||
|
As OpenH323's development continues, it's expected that these techniques will
|
|||
|
become more sophisticated, for example by ringing the user first and only
|
|||
|
forwarding to an answering machine if there's no answer after a given time.
|
|||
|
Such functionality would most likely be placed in a gatekeeper.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
5. Debugging
|
|||
|
|
|||
|
For debugging the NetMeeting directory kit Brent Baccala suggests using
|
|||
|
ethereal ([http://ethereal.zing.org] http://ethereal.zing.org/) to do a
|
|||
|
packet trace. It's LDAP support is quite good. There is also a trace file
|
|||
|
option in the Perl script "netmeeting.perl" that can be uncommented.
|
|||
|
|
|||
|
You might also try running the slapds with debugging turned on (-d 768 is a
|
|||
|
good start), but their messages are rather confusing.
|
|||
|
|
|||
|
For debugging H.323, try using the "-t" and "-o" options, supported by all
|
|||
|
the OpenH323 client programs.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
|
|||
|
Table A-1. NetMeeting LDAP attributes
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|objectClass |must be "RTPerson" |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|cn |alias used for directory lookups; must be present |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sappid |must be "ms-netmeeting" |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sprotid |must be "h323" |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sprotmimetype|typically "text/h323"; unused |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|smimetype |typically "text/iuls"; unused |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sflags |must be 1 |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sappguid |unknown |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|smodop |unknown |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sipaddress |decimal IP address |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sport |TCP port number; unused |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|ssecurity |unknown |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|sttl |entry timeout value in minutes |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|c |two digit country code |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|rfc822mailbox|email address |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|givenname |optional |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|surname |optional |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|comment |optional |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|location |optional |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|ilsa39321630 |1 = personal; 2 = business; 4 = adult |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|ilsa32833566 |0 = not audio capable; 1 = audio capable |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|ilsa32964638 |0 = not video capable; 1 = video capable |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|ilsa26214430 |0 = not in a call; 1 = currently in a call |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|ilsa26279966 |unknown |
|
|||
|
+-------------+--------------------------------------------------+
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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 |
|
|||
|
| |
|
|||
|
+------------------------------------------------------------+
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Doesn't include the required "objectclass" attribute
|
|||
|
|
|||
|
|
|||
|
Instead, it tacks an "OBJECTCLASS" element to the end of the DN, as
|
|||
|
shown above.
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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 |
|
|||
|
| |
|
|||
|
+------------------------------------------------------------+
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Doesn't understand attribute aliases, and is therefore unable to
|
|||
|
recognize that "sn" and "surname" refer to the same attribute.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Specifies "base" scope in search requests, when it really should use
|
|||
|
"sub", since it wants a list of entries, not just one
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Uses the "%" character as wildcard in search requests, instead of the "*"
|
|||
|
character specified by the standard.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>In name attributes ("surname", "givenname"), encodes accented European
|
|||
|
characters as 8-bit ISO 8859-1, instead of multi character UTF-8
|
|||
|
sequences as required by LDAP (RFCs 2252 and 2256).
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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.
|
|||
|
|
|||
|
|
|||
|
Windows 2000 implements a modified DNS SRV ([http://www.freesoft.org/CIE/RFC/
|
|||
|
Orig/rfc2782.txt] RFC 2782), an enhanced means of locating network servers,
|
|||
|
including LDAP. Basically, if your NetMeeting server name is
|
|||
|
"ils.freesoft.org", Microsoft Active Directory will expect to use a subzone
|
|||
|
called "_msdcs.ils.freesoft.org". Within this subzone, the domain controller
|
|||
|
will be called "dc._msdcs.ils.freesoft.org" and its LDAP SRV record will be
|
|||
|
called "_ldap._tcp.dc._msdcs.ils.freesoft.org", as [http://
|
|||
|
support.microsoft.com/support/kb/articles/Q178/1/69.ASP] described by
|
|||
|
Microsoft. Got it? To specify the default port number (389) on the same host,
|
|||
|
your DNS SRV entry would look something like this:
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|$ORIGIN ils.freesoft.org. |
|
|||
|
| |
|
|||
|
|_ldap._tcp.dc._msdcs IN SRV 1 1 389 ils.freesoft.org. |
|
|||
|
| |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
I've recently (March 2001) tested this myself, and found that it doesn't
|
|||
|
really do much of anything. The port number appears to be completely ignored.
|
|||
|
UDP packets are sent to port 389 on the listed host, but the standards don't
|
|||
|
specify LDAP over UDP and OpenLDAP doesn't support it.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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. Thanks
|
|||
|
|
|||
|
Many thanks have to go to Brent Baccala, who wrote the NetMeeting directory
|
|||
|
kit, also for his 24-hour E-mail tech support, and encouragement. Without him
|
|||
|
I would have passed a many nights more to set it up at my own.
|