你可以使用 OpenH323 的 ohphone 程序直接连接到 NetMeeting 客户端。指定-n选项来表明你没有使用网守,以及 NetMeeting 客户端的 DNS 名称或 IP 地址
bash$ ohphone -n 208.130.48.22 |
你也可以启动 ohphone 来接收来自 NetMeeting 客户端的来电
bash$ ohphone -n |
请参阅 ohphone 文档以获取有关其附加功能的更多信息,包括视频会议、编解码器选择和自动应答。
确保你有一个运行 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 服务器的搜索结果的初步示例。
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 属性中。使用此形式执行基于电子邮件地址的目录查找。
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$ |
NetMeeting 客户端注册的属性包括 'sport',即它监听传入 H.323 请求的 TCP 端口号,但由于此属性永远不会在搜索请求中检索,因此它不像最初看起来那么有用。实际上,NetMeeting 始终打开到默认端口 (1720) 的 H.323 连接,这引出了如何从单个 IP 地址服务多个别名的问题。
实现此目的的关键是 forwarder 程序,它包含在 OpenH323 CVS 存档中。forwarder 监听端口 1720 上的连接,并且可以配置为根据被调用的别名重定向它们。这允许将每个别名的呼叫发送到唯一的端口号,程序如 ohphone 或 openam 在那里监听。
要使用别名,需要一个 LDAP 目录,其中包含每个别名的条目。每个别名条目都应指定一个带有别名名称的 'cn' 属性,以及一个带有 forwarder 正在监听的主机的 IP 地址的 'sipAddress' 属性。
我已经成功配置单个主机充当组合 LDAP 服务器(在端口 389 上)、forwarder(在端口 1720 上)以及在各种私有端口号和远程系统上的 ohphone 和 openam 客户端。
OpenH323 答录机 openam 将监听传入的 H.323 连接,播放预先录制的消息,然后将发送给它的任何音频记录到文件中。它可以选择配置为在呼叫结束时运行另一个程序,或许可以电子邮件发送录制的音频。
它的实用性目前(2000 年 12 月)受到缺少足够聪明的网守程序的限制,该程序可以在主地址没有应答时将呼叫重定向到它。因此,只有当 ohphone 程序在主地址上运行时,并且已被配置为使用以下选项将呼叫重定向到另一个地址时,它才会充当答录机--forward-no-answer和--forward-busy选项。
OpenH323 CVS 存档中的 openmcu 程序实现了 H.323 多点控制单元 (MCU)。多个 NetMeeting 或 ohphone 客户端可以连接到 MCU 并形成电话会议。截至 2000 年 12 月,连接的质量和可靠性存在问题,但希望情况会有所改善。
NAT(IP 伪装)路由器上需要特殊支持,以允许 H.323 流量通过。如果 NAT 路由器运行的是 Linux,则有两个伪装模块可用
![]() | 我没有测试过这两个模块中的任何一个。 |
可以通过修改 'netmeeting.perl' 脚本来自定义服务器功能。例如,可以将对过时条目的呼叫重定向到配置为移交给 “openam” 答录机的 “forwarder”。因此,对不可用用户的呼叫将被应答和记录以供以后播放。
随着 OpenH323 的开发继续进行,预计这些技术将变得更加复杂,例如,首先振铃用户,并且仅在给定时间后没有应答时才转发到答录机。这种功能很可能放在网守中。