查看源代码 实现示例
一个简单的媒体网关控制器
在 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 协议栈交互可能非常有用。
事件跟踪可以被定向到文件,以便以后分析。默认情况下,事件跟踪被禁用,但可以在不需要重新编译代码的情况下动态启用。