带它回家:Jabber 的 Jeremie 谈即时通讯和嵌入式 Linux

当我们最后一刻向 Jeremie Miller 寻求一些深度技术见解时,他回复说:“我尝试创建了一个关于 Linux 设备和 Jabber 的更技术性的章节,但我真的很难找到一些具体的东西来描述,并使其听起来复杂(毕竟,Jabber 很简单)。”但他还是发来了一些东西,而且它确实起到了作用。请继续阅读。

—Doc Searls

嵌入式 Linux 和 Jabber 在工作中:x10 示例

假设你有一台计算机运行着 x10.homelan.net 服务,以及一些 x10 设备,例如你桌子上的一盏灯,地址是 desklight@x10.homelan.net,以及一个运动传感器,地址是 driveway@x10.homelan.net。

你无线网络平板上的 Jabber 客户端连接到你的 homelan.net 服务器,并且你订阅了这两个 x10 设备的在线状态。你的客户端收到

   <presence from="driveway@x10.homelan.net">
    <status>Motion Detected</status>
   </presence>
提醒你你的妻子到家了,然后你发送一条消息
   <message to="desklight@x10.homelan.net">
    <body>on</body>
   </message>
这会激活你桌子旁边的灯(所以看起来你一直在工作,而不是在甲板上闲逛)。

让我们把这个例子再往未来推进一代,你已经在前门添加了一个基于 Lineo Embeddix 的问候设备。假设的无线设备,我们称之为 greetix,有一个麦克风、扬声器、摄像头,并且可以执行简单的语音识别以及充当嵌入式 Jabber 客户端。

当有人接近时,greetix 会拍摄一张快照,并将图片和一个 mp3 音频流附加到它当前的状态

   <presence from="greetix@homelan.net">
    <status>Guest Waiting</status>
    <x xmlns="jabber:x:oob" uri="http://192.168.0.42/A4435D8.png"/>
    <x xmlns="jabber:x:oob"
uri="http://192.168.0.42/A4435D8.m3u"/>
   </presence>
任何一个订阅了 greetix 的家庭成员都会收到这个(也可以远程收到,例如你在工作时),并且如果客户端支持图像查看或 mp3 流媒体,它可以提供这些选项。然后你可以发送一条消息
   <message to="frontdoor@x10.homelan.net"><body>unlock</body></message>
或者向 greetix 发送一个命令,指示它录制一段语音消息
   <message to="greetix@homelan.net"><body>not home</body></message>
此外,服务器可以使用图像进行面部识别,并智能地对状态做出反应。 greetix 也可以订阅家庭成员和其他家用设备,例如内部运动探测器,以便在没有人在家时做出适当的反应。

通过允许 greetix、服务器、家庭成员的客户端和其他设备之间的对话以通用的 XML 格式进行组织,可以实现许多其他可能性:服务器上的日志记录和存档;针对识别出的个人或时间段的自动响应;上下文相关的服务器生成的音频菜单;语音消息;连接到电话/手机的网关 H323 音频;文本转语音;对所有设备和功能的各种访问;以及设备和人类之间对话和关系的智能管理。

© . All rights reserved.