在本章中,我们尝试设置 VoIP 系统,首先从简单的开始,然后逐渐变得更复杂。
A (Sound card) - - - B (Sound card) 192.168.1.1 - - - 192.168.1.2 192.168.1.1 calls 192.168.1.2 and viceversa.
A 和 B 应该具备
在这种情况下,A 可以使用 B 的 IP 地址向 B 发起 H323 呼叫(如果 B 启用了服务器端应用程序)。然后,B 可以根据需要接听呼叫。接受呼叫后,VoIP 数据包开始流动。
在 Microsoft Windows 下,可以使用 NetBIOS 名称代替 IP 地址。
A - - - B 192.168.1.1 - - - 192.168.1.2 John - - - Alice John calls Alice.
这是可能的,因为 John 对 Alice 的呼叫请求通过 NetBIOS 协议转换为 IP 呼叫。
以上两个示例非常容易实现,但缺乏可扩展性。
在更宏大的视角下,例如互联网,不可能使用直接呼叫,因为通常呼叫者不知道目标 IP 地址。此外,NetBIOS 命名功能也无法工作,因为它使用广播消息,而广播消息通常无法通过 ISP 路由器。
您也可以使用 DNS 将名称解析为 IP 地址:例如,您可以呼叫 ''box.domain.com''。
NetBIOS 名称呼叫的想法也可以在互联网环境中使用 WINS 服务器来实现:NetBIOS 客户端可以配置为使用 WINS 服务器来解析名称。
使用相同 WINS 服务器的 PC 将能够彼此之间进行直接呼叫。
A (WINS Server is S) - - - - I - - - - B (WINS Server is S) N T E - - - - - S (WINS Server) C (WINS Server is S) - - - - R N E - - - - D (WINS Server is S) T Internet communication
A、B、C 和 D 位于不同的子网中,但他们可以以 NetBIOS 名称呼叫的方式互相呼叫。 需要的是所有人都使用 S 作为 WINS 服务器。
注意:WINS 服务器的性能不是很高,因为它使用 NetBIOS 功能,并且应仅用于连接少量子网。
ILS 是一种服务器,允许您在 H323 呼叫期间解析您的名称:当您启动 VoIP 应用程序时,您首先使用一个名称注册到 ILS 服务器,然后每个人都将能够使用该名称看到您(如果他使用相同的 ILS 服务器!)。
少量 IP 地址的问题通常通过所谓的地址伪装(也称为 NAT,网络地址转换)来解决:只有一个公共 IP 地址(互联网可以直接“看到”),其他机器都使用这个 IP 进行“地址伪装”。
A - - - B - - - Router with NAT - - - Internet C - - - This doesn't work
在示例中,A、B 和 C 可以与互联网用户进行浏览、ping、使用邮件和新闻服务,但他们无法进行 VoIP 呼叫。 这是因为 H323 协议在应用层发送 IP 地址,因此响应永远不会到达源地址(即使用私有 IP 地址的地址)。
解决方案
A - - - Router with NAT B - - - + - - - Internet C - - - ip_masq_h323 module This works
A - - - B - - - PhonePatch - - - Internet C - - - This works
语法是
"ohphone -l|--listen [选项]"
"ohphone [选项]... 地址"
此外,当您启动 ohphone 时,您可以直接向解释器发出命令(例如减少 AEC,自动回声消除)。
Gnomemeeting 是一个使用 GUI 界面进行 VoIP 呼叫的应用程序。 它非常易于使用,并允许您使用 ILS 服务器、聊天和其他功能。
您也可以尝试网守功能
Example (Terminal H323) A - - - \ (Terminal H323) B - - - D (Gatekeeper) / (Terminal H323) C - - - Gatekeeper configuration
我们必须注意到,网守只能将名称解析为 IP 地址,它无法连接彼此不可达的主机(在 IP 层面上),换句话说,它不能充当 NAT 路由器。
您可以在此处找到网守代码:还需要 openh323 库。
程序只需要使用 -d(作为守护进程)或 -x(执行)参数启动。
此外,您可以使用配置文件 (.ini),您可以在此处找到它。
正如我们所说,网关是一个可以将 VoIP 连接到 PSTN 线路的实体,从而允许我们从互联网呼叫传统电话。 因此,此外,我们需要一块可以管理 PSTN 线路的卡:Quicknet LineJack 可以做到这一点。
从 OpenH323 网站,我们下载
如果可执行文件不起作用,您需要下载源代码和 openh323 库,然后将所有内容安装在用户主目录中。
之后,您只需要启动 PSTNGw 即可启动您的 H323 网关。
第一个矩阵指的是
_____________________________________________________________________________________________________________________ | | Netmeeting |SwitchBoard | Simph323 | OhPhone | LinPhone |Speak-Freely|HW PhoneJACK|HW LineJACK | |____________|____________|____________|____________|____________|_____________|____________|____________|____________| | Netmeeting | V V V V X X V V |____________|____________|____________|____________|____________|_____________|____________|____________|____________| |SwitchBoard | V V V V X X V V |____________|____________|____________|____________|____________|_____________|____________|____________|____________| | Simph323 | V V V V X X X X |____________|____________|____________|____________|____________|_____________|____________|____________|____________| | OhPhone | V V V V X X V V |____________|____________|____________|____________|____________|_____________|____________|____________|____________| | LinPhone | X X X X V X X X |____________|____________|____________|____________|____________|_____________|____________|____________|____________| |SpeakFreely | X X X X X V X X |____________|____________|____________|____________|____________|_____________|____________|____________|____________| |HW PhoneJACK| V V X V X X _ _ |____________|____________|____________|____________|____________|_____________|____________|____________|____________| |HW LineJACK | V V X V X X _ _ |____________|____________|____________|____________|____________|_____________|____________|____________|____________|
第二个矩阵指的是管理 LineJACK 卡的网关软件。
___________________________________________________________ | |HW LineJACK GW| SwitchBoard | PSTNGW | |______________|______________|______________|______________| |HW LineJACK GW| _ | V | V | |______________|______________|______________|______________| | SwitchBoard | V | _ | _ | |______________|______________|______________|______________| | PSTNGW | V | _ | _ | |______________|______________|______________|______________|
符号