当我呼叫你...视频通话

作者:Marcel Gagné

弗朗索瓦,你还记得2001:太空漫游吗? 当我们迎接2003年的时候,我不禁想到未来愿景所包含的所有承诺,这让我有点伤感,mon ami(我的朋友)。啊,merci(谢谢)。1998年的罗纳河谷埃米塔日干红葡萄酒正是我需要的。我知道我们的客人们很快就要到了,弗朗索瓦,但请考虑一下。我们有一个空间站,但它不太像是我们在电影中看到的雄伟的太空轮。当然,既没有月球基地,也没有轨道酒店,但至少我们有这个。

Quoi(什么)? 弗朗索瓦,这就是可视电话,今天,我将向我们的客人演示它。你说什么?啊,但是他们已经到了!再次欢迎,mes amis(我的朋友们),来到Chez Marcel(马塞尔餐厅),在这里,精致的Linux烹饪与美酒相遇,non(不是吗)? 弗朗索瓦已经为你们准备好了餐桌,并且已经开了酒。

在这个餐厅里,我们时不时地提供一些利用你的网络摄像头的食谱,从捕捉实用程序到家庭安全。今天,我们再次访问网络摄像头,为你带来多年前承诺过的东西。当我还是个小孩子的时候,似乎每个电视科幻节目都在承诺可视电话。岁月流逝,虽然我在电视上看到过这样的东西演示,但我的可视电话仍然像遥远的演播室一样遥不可及。

自从这家餐厅开业以来,我很荣幸地发现,当使用Linux烹饪时,我许多童年的梦想都成为了可能。可视电话也是如此,或者至少是它的一个可以接受的化身:Damien Sandras的GnomeMeeting。GnomeMeeting甚至可以与微软的Netmeeting一起工作,这样你就可以和运行该公司操作系统的朋友交谈。最后,不要被名字迷惑了。GnomeMeeting在KDE下也运行得非常好,并且可以很好地停靠在面板中。

许多发行版的光盘都带有GnomeMeeting和所需的库(pwlib和openh323),尽管不一定是已安装的。www.gnomemeeting.org 网站确实有主要发行版(RPM和DEB)的软件包以及源代码。你应该首先在那里查找。OpenH323依赖于PwLib,所以你需要安装它。在我的Mandrake和Red Hat系统上,我都使用RPM安装了它。我应该指出,虽然你可以从源代码构建GnomeMeeting,但特别是OpenH323库可能很困难(更不用说耗时了)。如果可以为此使用二进制文件,我建议这样做。

首次启动GnomeMeeting时,你将看到首次配置向导。此过程的一部分包括在GnomeMeeting用户目录中注册——将其视为大型在线电话簿。你可以通过单击向导注册框底部的复选框来选择不被列出。当你对你展示的信息感到满意时,单击“前进”按钮继续,你将被要求指定你正在使用的连接类型。

When I'm Calling You...on Video

图1. 设置GnomeMeeting轻而易举。

在最后一个屏幕上单击“应用”,GnomeMeeting就会启动。你可以通过单击菜单栏上的“编辑”并选择“首选项”来配置软件包的多个选项。你也可以随时重新运行向导。我设置的第一个首选项是在“视频设备”部分下。当GnomeMeeting启动时,我希望视频预览处于开启状态,并且视频大小设置为“大”。

为了呼叫本地LAN上的另一台PC,我在GnomeMeeting位置字段(菜单栏正下方)中输入callto://192.168.22.2。第二台PC上会弹出一个小窗口,警告用户有来电连接。如果你接受连接,两个客户端将能够通信。

When I'm Calling You...on Video

图2. 准备好用GnomeMeeting呼叫世界

请注意图2左侧的按钮栏。你可以打开和关闭你的视频或音频,并且你可以打开一个聊天窗口进行文本消息交换。如果你有麦克风,GnomeMeeting也会使用它。事实上,GnomeMeeting可以在多种不同的配置下工作。你可以只运行视频、只运行音频、只运行文本或这三种模式的任意组合。当然,知道有人能看到你,但你却看不到他们,这可能有点令人不安。Mon Dieu(我的天啊)!我现在真的需要续杯了。弗朗索瓦,拿酒来。Vite(快点)!

当你运行GnomeMeeting时,请确保打开控制面板。它会在应用程序中打开一个选项卡式窗口,为音频和视频控制以及历史记录窗口提供支持。这显示了呼叫状态、你在在线目录中的注册以及其他信息,并且可以随时打开或关闭,而不会影响传输。图3方便地显示了一个运行两个会话的桌面(看起来我成功联系到了一只cat(猫))。

When I'm Calling You...on Video

图3. 有人打电话来吃晚餐

在空间站上,电话是长途电话:从太空打给地球上的一个小女孩。虽然在我们的办公室里聊天很好,但外面的世界呢?你要给谁打电话?GnomeMeeting的官方电话簿可在 ils.seconix.com 上找到。为了浏览目录并查找其他用户,你也必须注册。启动GnomeMeeting,单击左侧的目录图标,然后搜索另一个方——很简单...几乎。

你看,如果你在你的公司或家庭局域网上运行GnomeMeeting,你应该没有问题。如果你从连接到互联网的单台机器上运行它,情况也是如此——很有可能这会顺利工作。问题,mes amis(我的朋友们),出现在你尝试从伪装(或NAT)防火墙后面工作时。你需要允许通过的端口如下

TCP ports 1720 and 30000 thru 30010
UDP ports 5000:5003

在这个阶段,你可能会遇到一些相当复杂的防火墙问题。我稍后会讲到这一点,但有一种简单的方法叫做RSIP for Linux,它是NAT的简单替代方案。RSIP是一种相对较新的协议,与NAT类似,它允许你在多个客户端之间共享单个连接。你可以上网冲浪、发送电子邮件以及任何其他属于客户端服务范围的服务。你也可以使用它在防火墙后面的单个服务器上轻松重定向端口,而无需以任何方式修改数据包。使用NAT或伪装执行此操作的唯一方法是使用可加载模块。当涉及到H323和我们的老朋友GnomeMeeting时,这些模块充其量只是实验性的。RSIP解决了这个问题,但这并不意味着你可以丢弃你的iptables——RSIP仍然使用它们。

首先访问 openresources.info.ucl.ac.be/rsip/index.php 并获取最新的源代码。一些版本提供了预构建的二进制文件——如果你的版本不在那里,也不要害怕;这是一个简单的构建

tar -xzvf rsipd-0.9.3.src.tar.gz
cd rsipd-0.9.3
make
su -c "make install"

那是服务器端。你也需要一个客户端,目前,有两个版本:一个是Python版本,一个是名为krsip的内核模块。在我准备这个菜单时,该模块被认为是安全的测试版本,而Python客户端被认为是稳定的。构建模块只需解压源代码并执行 make install。问题是只支持内核2.4.18和2.4.19。至于Python客户端,则不需要构建。

要将RSIP用于GnomeMeeting,首先编辑 /etc/rsip/rsipd.conf 文件并修改一些相关参数。这些是你防火墙的外部和内部接口,以及服务器要服务的网络池。我在我的内部 192.168.22.0 网络上分配了前十个地址

EXT_IF eth1
INT_IF eth0
POOL 192.168.22.1-10

现在,使用安装创建的脚本启动服务器

/etc/init.d/rsipd start
要使用Python客户端,请执行以下操作(请注意,这是一行长的不间断的行。-s 参数指定的IP地址是服务器的IP地址)
python /path_to/rsipclient-0.19.py \
-d -v -s 192.168.22.10 \
-l 1720,5000,5001,5002,5003,30000,30001,30002,30003,
30004,30005,30006,30007,30008,30009,30010

我应该注意到客户端在client(客户端)PC上运行,non(不是吗)? 你还必须以root身份运行它。好处是你可以继续使用现有的防火墙 (iptables) 规则。使用内核模块甚至更容易。它只需要你在加载它时指定服务器的地址
insmos krsip ip=192.168.22.10
作为测试,我通过单击左侧的图标打开了ILS搜索窗口。这会打开XDAP服务器浏览器,我在其中单击“刷新”,随机选择了一个人,然后双击该条目。几秒钟后,我就从我在加拿大的家中与法国巴黎的人聊天了。

看,这很简单。你现在准备好分享可视电话通信的兴奋感了,而这只晚了两年。

再一次,mes amis(我的朋友们),打烊时间临近。至少这次,我们将能够通过我们未来的可视电话进行聊天(即使现在2001年已经是两年前的事了)。未来已不再像过去那样了,你同意吗?我们将在2010年再次讨论这个问题。在我向大家道Bonsoir(晚安)之前,弗朗索瓦将最后一次为你们续满酒杯。当你们品尝最后一杯酒时,让我们看看芬兰有谁醒着,好吗?下个月见。A votre santé(祝您健康)! Bon appétit(祝您胃口好)!

资源

Marcel Gagné 住在安大略省密西沙加市。他是 Addison-Wesley 出版的《Linux系统管理:用户指南》(ISBN 0-201-71934-7)的作者(目前正在撰写他的下一本书)。你可以通过电子邮件 mggagne@salmar.com 与他联系。

加载 Disqus 评论