查看源代码 实现示例

一个简单的媒体网关控制器

在 megaco/examples/simple/megaco_simple_mgc.erl 中,有一个简单的 MGC 示例,它监听文本和二进制标准端口,并准备好处理通过 TCP/IP 或 UDP/IP 到达的服务变更请求消息。在文本端口上接收到的消息使用文本解码器进行解码,而在二进制端口上接收到的消息使用二进制解码器进行解码。

服务变更回复以与请求相同的方式进行编码,并使用相同的传输机制 UDP/IP 或 TCP/IP 发送回 MG。

在此初始服务变更消息之后,MG 和 MGC 之间的连接完全建立并受到监控。

具有四个监听器的 MGC 可以通过以下方式启动

      cd megaco/examples/simple
      erl -pa ../../../megaco/ebin -s megaco_filter -s megaco
      megaco_simple_mgc:start().

或简单地使用“gmake mgc”。

erl 的 -s megaco_filter 选项表示启用事件跟踪机制并启动交互式时序图工具。这对于可视化您的 MGC 如何与 Megaco/H.248 协议栈交互可能非常有用。

事件跟踪可以被定向到文件,以便以后分析。默认情况下,事件跟踪被禁用,但可以在不需要重新编译代码的情况下动态启用。

一个简单的媒体网关

在 megaco/examples/simple/megaco_simple_mg.erl 中,有一个简单的 MG 示例,它连接到 MGC,发送服务变更请求并同步等待回复。

在此初始服务变更消息之后,MG 和 MGC 之间的连接完全建立并受到监控。

假设 MGC 在本地主机上启动,可以使用以下方式在同一 Erlang 节点上启动四个不同的 MG,分别使用 TCP/IP 上的文本、TCP/IP 上的二进制、UDP/IP 上的文本和 UDP/IP 上的二进制:

      cd megaco/examples/simple
      erl -pa ../../../megaco/ebin -s megaco_filter -s megaco
      megaco_simple_mg:start().

或简单地使用“gmake mg”。

如果“仅”想启动一个尝试连接名为“baidarka”的主机上的 MG 的单个 MG,可以使用以下函数之一(而不是上面的 megaco_simple_mg:start/0):

      megaco_simple_mg:start_tcp_text("baidarka", []).
      megaco_simple_mg:start_tcp_binary("baidarka", []).
      megaco_simple_mg:start_udp_text("baidarka", []).
      megaco_simple_mg:start_udp_binary("baidarka", []).

erl 的 -s megaco_filter 选项表示启用事件跟踪机制并启动交互式时序图工具。这对于可视化您的 MG 如何与 Megaco/H.248 协议栈交互可能非常有用。

事件跟踪可以被定向到文件,以便以后分析。默认情况下,事件跟踪被禁用,但可以在不需要重新编译代码的情况下动态启用。