Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 4041

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<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
>-&gt;<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
>-&gt;<SPAN
CLASS="GUIMENUITEM"
>            Log on
          </SPAN
>
        .
      </P
><P
>        If the user selects 
        <SPAN
CLASS="GUIMENU"
>            Call
          </SPAN
>-&gt;<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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Debugging</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>