4. 使用软件

4.1. 直接连接

你可以使用 OpenH323 的 ohphone 程序直接连接到 NetMeeting 客户端。指定-n选项来表明你没有使用网守,以及 NetMeeting 客户端的 DNS 名称或 IP 地址

bash$ ohphone -n 208.130.48.22
      

你也可以启动 ohphone 来接收来自 NetMeeting 客户端的来电

bash$ ohphone -n
      

请参阅 ohphone 文档以获取有关其附加功能的更多信息,包括视频会议、编解码器选择和自动应答。

4.2. 目录操作

确保你有一个运行 NetMeeting 目录套件的 LDAP 服务器,如上所述。

在 NetMeeting 客户端上,选择 工具 -> 选项 菜单项以显示配置对话框。在 “常规” (NetMeeting 3) 或 “呼叫” (NetMeeting 2) 选项卡下,将有一个 “目录设置” 部分。在这里你可以输入服务器的 IP 地址或 DNS 名称。然后客户端将连接到服务器并自动注册自身,如果选中了 “当 NetMeeting 启动时登录到目录服务器” 复选框。你也可以通过选择 呼叫 -> 登录 手动登录到目录服务器。

如果用户选择 呼叫 -> 目录 ,将显示一个目录窗口,显示所有在 LDAP 服务器上注册的用户。双击其中一个名字将发起与该用户的连接。

从 Linux 查询 NetMeeting LDAP 服务器是可以实现的,但很棘手,因为客户端的 IP 地址以十进制存储,而且我指的不是点分十进制。例如,IP 地址 63.216.69.197 存储为 3309688895。这里有一些 Perl 代码,用于在 NetMeeting IP 地址格式之间来回转换

# Convert $addr (IP address or DNS name) to a NetMeeting decimal IP address

use Socket;
$bytestring = inet_aton($addr);
if (defined $bytestring) {
    ($sipaddress) = unpack('V', $bytestring);
} else {
    die "Can't resolve $addr\n";
}

# Convert $sipaddress (from a NetMeeting LDAP server) into dotted decimal form

$packedipaddr = pack 'V', $sipaddress;
$ipaddress = join '.', unpack('C4',$packedipaddr);

NetMeeting 目录套件中包含 nmdirectory,这是一个简单的 Perl/Tk 脚本,用于查询 NetMeeting LDAP 服务器并显示在其上注册的客户端。它非常原始,并且在大型数据库中运行不佳,但提供了一个如何解释来自 NetMeeting LDAP 服务器的搜索结果的初步示例。

4.3. 从网页链接

Microsoft Internet Explorer 理解带有 “callto:” 方案的 URL,该方案以两种形式指定 NetMeeting 目标。当选择带有 “callto:” URL 的链接时,Internet Explorer 会运行 NetMeeting 并指示其连接到指定的目的地。

第一种 URL 形式 “callto:destination”,其中 'destination' 是 IP 地址或 DNS 名称,会导致 NetMeeting 在 'destination' 的端口 1720 上打开一个 H.323 连接。使用此形式直接连接到另一个 NetMeeting 或 OpenH323 客户端。

第二种 URL 形式 “callto:server/alias”,会在 LDAP 服务器 'server' 上进行目录查找,搜索 'alias' 的 CN 属性。假设找到匹配项,则会连接到条目的 sipAddress 属性中指定的 IP 地址。默认情况下,NetMeeting 客户端将其用户的电子邮件地址注册在 CN 属性中。使用此形式执行基于电子邮件地址的目录查找。

4.4. 永久目录条目

NetMeeting 客户端不是 LDAP 目录条目的唯一来源。特别是,可以使用 OpenLDAP 客户端工具手动将永久目录条目插入到 LDAP 服务器中。假设属性已正确指定,这些条目将随后出现在 NetMeeting 目录列表中,并可以用作 “callto:” URL 中的目标。这在与默认情况下不向 LDAP 服务器注册自身的 OpenH323 客户端一起工作时非常有用。

为了简化创建目录条目的操作,NetMeeting 目录套件中包含 nmaddentry 脚本。不带参数运行它以获取用法消息。例如,如果你已经在 “y2k.freesoft.org” 上启动了 ohphone,你可以像这样使用别名 “baccala@freesoft.org” 在 “ils.freesoft.org” 上的 LDAP 服务器上注册它

bash$ nmaddentry -h ils.freesoft.org baccala@freesoft.org y2k.freesoft.org
Successfully added cn=baccala@freesoft.org, objectclass=rtperson
bash$
      

此条目现在将出现在 NetMeeting 目录列表中,并且可以作为 “ils.freesoft.org/baccala@freesoft.org” 被寻址。该条目将在 30 分钟后自动超时。--p开关创建了一个不会超时的永久目录列表,但这仅适用于使用 NetMeeting 目录套件的 OpenLDAP 服务器。要删除永久条目,请使用 OpenLDAP 发行版中包含的 ldapdelete 程序,并指定 nmaddentry 返回的 LDAP 专有名称

bash$ ldapdelete -h ils.freesoft.org 'cn=baccala@freesoft.org,objectclass=rtperson'
bash$
      

4.5. 服务多个别名

NetMeeting 客户端注册的属性包括 'sport',即它监听传入 H.323 请求的 TCP 端口号,但由于此属性永远不会在搜索请求中检索,因此它不像最初看起来那么有用。实际上,NetMeeting 始终打开到默认端口 (1720) 的 H.323 连接,这引出了如何从单个 IP 地址服务多个别名的问题。

实现此目的的关键是 forwarder 程序,它包含在 OpenH323 CVS 存档中。forwarder 监听端口 1720 上的连接,并且可以配置为根据被调用的别名重定向它们。这允许将每个别名的呼叫发送到唯一的端口号,程序如 ohphoneopenam 在那里监听。

要使用别名,需要一个 LDAP 目录,其中包含每个别名的条目。每个别名条目都应指定一个带有别名名称的 'cn' 属性,以及一个带有 forwarder 正在监听的主机的 IP 地址的 'sipAddress' 属性。

我已经成功配置单个主机充当组合 LDAP 服务器(在端口 389 上)、forwarder(在端口 1720 上)以及在各种私有端口号和远程系统上的 ohphoneopenam 客户端。

4.6. 使用答录机

OpenH323 答录机 openam 将监听传入的 H.323 连接,播放预先录制的消息,然后将发送给它的任何音频记录到文件中。它可以选择配置为在呼叫结束时运行另一个程序,或许可以电子邮件发送录制的音频。

它的实用性目前(2000 年 12 月)受到缺少足够聪明的网守程序的限制,该程序可以在主地址没有应答时将呼叫重定向到它。因此,只有当 ohphone 程序在主地址上运行时,并且已被配置为使用以下选项将呼叫重定向到另一个地址时,它才会充当答录机--forward-no-answer--forward-busy选项。

4.7. 电话会议

OpenH323 CVS 存档中的 openmcu 程序实现了 H.323 多点控制单元 (MCU)。多个 NetMeeting 或 ohphone 客户端可以连接到 MCU 并形成电话会议。截至 2000 年 12 月,连接的质量和可靠性存在问题,但希望情况会有所改善。

4.8. 通过 NAT 路由呼叫

NAT(IP 伪装)路由器上需要特殊支持,以允许 H.323 流量通过。如果 NAT 路由器运行的是 Linux,则有两个伪装模块可用

Note

我没有测试过这两个模块中的任何一个。

4.9. 自定义配置

可以通过修改 'netmeeting.perl' 脚本来自定义服务器功能。例如,可以将对过时条目的呼叫重定向到配置为移交给 “openam” 答录机的 “forwarder”。因此,对不可用用户的呼叫将被应答和记录以供以后播放。

随着 OpenH323 的开发继续进行,预计这些技术将变得更加复杂,例如,首先振铃用户,并且仅在给定时间后没有应答时才转发到答录机。这种功能很可能放在网守中。