656 lines
14 KiB
HTML
656 lines
14 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Using the Software</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="Linux NETMEETING HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="NetMeeting directory kit"
|
|
HREF="netmeetserver.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Debugging"
|
|
HREF="debugging.html"></HEAD
|
|
><BODY
|
|
CLASS="SECTION"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Linux NETMEETING HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="netmeetserver.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="debugging.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H1
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="USING"
|
|
>4. Using the Software</A
|
|
></H1
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="DIRECTCONNECT"
|
|
>4.1. Direct Connection</A
|
|
></H2
|
|
><P
|
|
> You can use OpenH323's <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
>
|
|
program to connect directly to a
|
|
NetMeeting client. Specify the <TT
|
|
CLASS="OPTION"
|
|
>-n</TT
|
|
>
|
|
option to indicate that you're
|
|
not using a gatekeeper, and either the DNS name or IP address of
|
|
the NetMeeting client:
|
|
</P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>bash$ <TT
|
|
CLASS="USERINPUT"
|
|
><B
|
|
>ohphone -n 208.130.48.22</B
|
|
></TT
|
|
>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> You can also start <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
> to receive incoming
|
|
calls from NetMeeting clients:
|
|
</P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>bash$ <TT
|
|
CLASS="USERINPUT"
|
|
><B
|
|
>ohphone -n</B
|
|
></TT
|
|
>
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> See the <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
> documentation for more information
|
|
on its additional features, including video conferencing, codec
|
|
selection, and auto-answer.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="DIROPT"
|
|
>4.2. Directory Operation</A
|
|
></H2
|
|
><P
|
|
> Make sure you have an LDAP server running the NetMeeting directory kit,
|
|
as described above.
|
|
</P
|
|
><P
|
|
> On the NetMeeting client, select the
|
|
<SPAN
|
|
CLASS="GUIMENU"
|
|
> Tools
|
|
</SPAN
|
|
>-><SPAN
|
|
CLASS="GUIMENUITEM"
|
|
> Options
|
|
</SPAN
|
|
>
|
|
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
|
|
<SPAN
|
|
CLASS="GUIMENU"
|
|
> Call
|
|
</SPAN
|
|
>-><SPAN
|
|
CLASS="GUIMENUITEM"
|
|
> Log on
|
|
</SPAN
|
|
>
|
|
.
|
|
</P
|
|
><P
|
|
> If the user selects
|
|
<SPAN
|
|
CLASS="GUIMENU"
|
|
> Call
|
|
</SPAN
|
|
>-><SPAN
|
|
CLASS="GUIMENUITEM"
|
|
> Directory
|
|
</SPAN
|
|
>,
|
|
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.
|
|
</P
|
|
><P
|
|
> 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:
|
|
</P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># 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);</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> Included with the NetMeeting directory kit is
|
|
<B
|
|
CLASS="COMMAND"
|
|
>nmdirectory</B
|
|
>, 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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="LNKFRMWEBPAGE"
|
|
>4.3. Linking From A Web Page</A
|
|
></H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="PERMDIRENT"
|
|
>4.4. Permanent Directory Entries</A
|
|
></H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> To simply creating directory entries, the <B
|
|
CLASS="COMMAND"
|
|
>nmaddentry</B
|
|
>
|
|
script is included in the NetMeeting directory kit. Run it
|
|
without arguments for a usage message. For example, if you've
|
|
started <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
> on "y2k.freesoft.org", you
|
|
can register it with the LDAP server on "ils.freesoft.org" using
|
|
alias "baccala@freesoft.org" like this:
|
|
</P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>bash$ <TT
|
|
CLASS="USERINPUT"
|
|
><B
|
|
>nmaddentry -h ils.freesoft.org baccala@freesoft.org y2k.freesoft.org</B
|
|
></TT
|
|
>
|
|
Successfully added cn=baccala@freesoft.org, objectclass=rtperson
|
|
bash$
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> 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 <TT
|
|
CLASS="OPTION"
|
|
>-p</TT
|
|
> 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 <B
|
|
CLASS="COMMAND"
|
|
>ldapdelete</B
|
|
> program
|
|
included with the OpenLDAP distribution, specifying the LDAP
|
|
Distinguished Name returned by <B
|
|
CLASS="COMMAND"
|
|
>nmaddentry</B
|
|
>:
|
|
</P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>bash$ <TT
|
|
CLASS="USERINPUT"
|
|
><B
|
|
>ldapdelete -h ils.freesoft.org 'cn=baccala@freesoft.org,objectclass=rtperson'</B
|
|
></TT
|
|
>
|
|
bash$
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="SERVMULTALIAS"
|
|
>4.5. Serving Multiple Aliases</A
|
|
></H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> The key to doing this is the <B
|
|
CLASS="COMMAND"
|
|
>forwarder</B
|
|
>
|
|
program, included in the OpenH323 CVS archive.
|
|
<B
|
|
CLASS="COMMAND"
|
|
>forwarder</B
|
|
> 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 <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
>
|
|
or <B
|
|
CLASS="COMMAND"
|
|
>openam</B
|
|
> is listening.
|
|
</P
|
|
><P
|
|
> 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 <B
|
|
CLASS="COMMAND"
|
|
>forwarder</B
|
|
> is listening.
|
|
</P
|
|
><P
|
|
> I've successfully configured a single host to act as a combination
|
|
LDAP server (on port 389), <B
|
|
CLASS="COMMAND"
|
|
>forwarder</B
|
|
>
|
|
(on port 1720), and
|
|
<B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
> and <B
|
|
CLASS="COMMAND"
|
|
>openam</B
|
|
>
|
|
clients on various private port numbers and remote systems.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="ANSWERINGMACHINE"
|
|
>4.6. Using the Answering Machine</A
|
|
></H2
|
|
><P
|
|
> The OpenH323 answering machine, <B
|
|
CLASS="COMMAND"
|
|
>openam</B
|
|
>, 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.
|
|
</P
|
|
><P
|
|
> 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 <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
> program
|
|
is running at the main address, and has been configured to
|
|
redirect calls to another address, using
|
|
the <TT
|
|
CLASS="OPTION"
|
|
>--forward-no-answer</TT
|
|
>
|
|
and <TT
|
|
CLASS="OPTION"
|
|
>--forward-busy</TT
|
|
> options.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="CONFERENCECALLS"
|
|
>4.7. Conference Calls</A
|
|
></H2
|
|
><P
|
|
> The <B
|
|
CLASS="COMMAND"
|
|
>openmcu</B
|
|
> program, in the OpenH323 CVS
|
|
archive, implements an H.323 Multipoint Control Unit (MCU).
|
|
Multiple NetMeeting or <B
|
|
CLASS="COMMAND"
|
|
>ohphone</B
|
|
> 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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="NATROUTING"
|
|
>4.8. Routing Calls Through NAT</A
|
|
></H2
|
|
><P
|
|
> 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:
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm"
|
|
TARGET="_top"
|
|
>http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="http://netmeetingmasq.sourceforge.net/"
|
|
TARGET="_top"
|
|
>http://netmeetingmasq.sourceforge.net/</A
|
|
></P
|
|
></LI
|
|
></UL
|
|
><DIV
|
|
CLASS="NOTE"
|
|
><P
|
|
></P
|
|
><TABLE
|
|
CLASS="NOTE"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="25"
|
|
ALIGN="CENTER"
|
|
VALIGN="TOP"
|
|
><IMG
|
|
SRC="../images/note.gif"
|
|
HSPACE="5"
|
|
ALT="Note"></TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
><P
|
|
> I have not tested either of these modules.
|
|
</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="CUSTOMCONFIGURATION"
|
|
>4.9. Custom Configurations</A
|
|
></H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="netmeetserver.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="debugging.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>NetMeeting directory kit</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Debugging</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |