Differences between current version and revision by previous author of HowToNetMeetingHOWTO.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Friday, October 29, 2004 10:11:07 am | by StuartYeates | |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:07:11 am | by perry | Revert |
@@ -1,1163 +1 @@
-Linux NETMEETING HOWTO
-!!!Linux NETMEETING HOWTO
-!Brent Baccala
-
- baccala@freesoft.org
-
-
-
-!Martin Schiffers
-
- mschiffers@axsi.net
-
-
-
-
-__Mark F. Komarinski - __Conversion from HTML to !DocBook 3.1
-
-
-__Revision History__Revision v1.215 January 2002Revised by: bwbUpdated ndk-1.2; handles newer versions of openldap.
-Added pointers to mailing listRevision v1.131 March 2001Revised by: bwbUpdated ndk-1.1; handles accented European charactersRevision v1.013 January 2001Revised by: bwbInitial public releaseRevision v0.1125 October 2000Revised by: mfkConversion 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
-or from the
-Linux Documentation Project.
-`software/!NetMeeting@freesoft.orgb
-is a mailing list to discuss Linux !NetMeeting interoperation;
-consult its 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
-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:
-
-
-
-
-
-
-
-*
-
- http://www.openh323.org/
-
-
-
-*
-*
-
- http://www.databeam.com/h323/h323primer.html
-
-
-
-*
-*
-
- http://www.hut.fi/~tttoivan/index4.html
-
-
-
-*
-*
-
- http://developer.intel.com/technology/itj/q21998/articles/art_4.htm
-
-
-
-*
-
- If you don't know anything about LDAP, I recommend these links:
-
-
-
-
-
-
-
-*
-
- http://www.openldap.org/
-
-
-
-*
-*
-
- http://www.umich.edu/~dirsvcs/ldap/index.html
-
-
-
-*
-*
-
- RFCs 2251-2256
-
-
-
-*
-
- If you have other links to recommend, or other suggestions for
-improving this document, please email me at
-`baccala@freesoft.orgb, or even better email
-`software/!NetMeeting@freesoft.orgb
-
-
-----
-!!!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 Gateway Allows !NetMeeting clients to make phone calls onto the
-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/
-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:
-
-
-
-
-
-
-
-*
-
- !OpenGatekeeper
-
-
-
-*
-*
-
- OpenH323 Gatekeeper
-
-
-
-*
-*
-
- !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) |-------b | |--b| 389 |-------b| |
-| | 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.
-
-
-
-
-
-
-
-
-
- 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/
-or any mirror.
-I've successfully used OpenLDAP 2..7.
-
-
-
-
- The !NetMeeting directory kit is available from
-http://www.freesoft.org/software/!NetMeeting/download.
-
-
-
-
- You need Perl 5, available from
-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
-cpanb __install Net::LDAP__
-... much output omitted ...
-/usr/bin/make install -- OK
-cpanb
-
- 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.
-
-
-
-
-
-
-
-
-
- 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/openldap
- Contains the default configuration files
- /usr/local/etc/openldap/schema
- The different schemas used by the LDAP servers.
- /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 __slapd__s.
-
-
-----
-!!3.6. Server Security
-
- As shown above, I run both __slapd__s
-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
-!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:
-
-
-
-
-
-
-
-*
-
-http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm
-
-
-*
-*
-
-http://netmeetingmasq.sourceforge.net/
-
-
-*
-
-
-
-
-
-
- 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/)
-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__
-
-
-objectClassmust be "RTPerson"cnalias used for directory lookups; must be presentsappidmust be "ms-netmeeting"sprotidmust be "h323"sprotmimetypetypically "text/h323"; unusedsmimetypetypically "text/iuls"; unusedsflagsmust be 1sappguidunknownsmodopunknownsipaddressdecimal IP addresssportTCP port number; unusedssecurityunknownsttlentry timeout value in minutesctwo digit country coderfc822mailboxemail addressgivennameoptionalsurnameoptionalcommentoptionallocationoptionalilsa393216301 = personal; 2 = business; 4 = adultilsa328335660 = not audio capable; 1 = audio capableilsa329646380 = not video capable; 1 = video capableilsa262144300 = not in a call; 1 = currently in a callilsa26279966unknown
-
- !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.
-
-
-
-*
-*
-
- 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).
-
-
-
-*
-*
-
- 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
-(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
-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
.
+Describe
[HowToNetMeetingHOWTO
] here
.