查看源代码 megaco_udp (megaco v4.7)

Megaco/H.248 的 UDP 传输协议接口模块。

此模块包含 Megaco/H.248 的 UDP/IP 版本传输协议的公共接口。

摘要

类型

定义此传输处理的不同计数器。

表示 UDP 套接字的不透明数据类型。

表示 UDP 套接字的不透明数据类型,用于发送时。

函数

停止在套接字上接收传入消息。

此函数用于关闭活动的 UDP 套接字。

从传输句柄创建发送句柄。发送句柄旨在由 megaco_udp:send_message/2 使用。

获取所有已知连接的所有计数器值。

获取给定句柄的所有计数器值。

获取特定计数器的值。

此函数用于打开 UDP/IP 套接字。

重置所有 UDP 句柄的所有计数器。

重置给定 UDP 句柄的所有计数器。

在套接字上发送消息。发送句柄通过 megaco_udp:create_send_handle/3 获取。如果消息发送成功,则增加 NumOutMessages 和 NumOutOctets 计数器。如果发送失败,则 _不会_ 增加 NumErrors 计数器。这在 megaco 应用程序的其他地方完成。

此函数用于将套接字 handle() 转换为 inet socket()

此函数用于启动 UDP/IP 传输服务。使用 exit(TransportRef, Reason) 停止传输服务。

重新开始从套接字接收传入消息。

更新控制进程的接收句柄(例如,在更改协议版本之后)。

类型

-type counter() ::
          medGwyGatewayNumInMessages | medGwyGatewayNumInOctets | medGwyGatewayNumOutMessages |
          medGwyGatewayNumOutOctets | medGwyGatewayNumErrors.

定义此传输处理的不同计数器。

-opaque handle()

表示 UDP 套接字的不透明数据类型。

-opaque send_handle()

表示 UDP 套接字的不透明数据类型,用于发送时。

函数

-spec block(Handle) -> ok when Handle :: handle() | send_handle().

停止在套接字上接收传入消息。

-spec close(Handle) -> ok when Handle :: handle() | send_handle().

此函数用于关闭活动的 UDP 套接字。

链接到此函数

create_send_handle(Handle, Host, Port)

查看源代码
-spec create_send_handle(Handle, Host, Port) -> send_handle()
                            when
                                Handle :: handle(),
                                Host :: inet:ip4_address() | inet:hostname(),
                                Port :: inet:port_number().

从传输句柄创建发送句柄。发送句柄旨在由 megaco_udp:send_message/2 使用。

-spec get_stats() -> {ok, TotalStats} | {error, Reason}
                   when
                       TotalStats :: [{SH, [{Counter, integer()}]}],
                       SH :: send_handle(),
                       Counter :: counter(),
                       Reason :: term().

获取所有已知连接的所有计数器值。

-spec get_stats(SH) -> {ok, Stats} | {error, Reason}
                   when
                       SH :: send_handle(),
                       Stats :: [{Counter, integer()}],
                       Counter :: counter(),
                       Reason :: term().

获取给定句柄的所有计数器值。

链接到此函数

get_stats(SH, Counter)

查看源代码
-spec get_stats(SH, Counter) -> {ok, integer()} | {error, Reason}
                   when SH :: send_handle(), Counter :: counter(), Reason :: term().

获取特定计数器的值。

链接到此函数

open(TransportRef, Opts)

查看源代码
-spec open(TransportRef, Opts) -> {ok, Handle, ControlPid} | {error, Reason}
              when
                  TransportRef :: pid(),
                  Opts ::
                      {inet_backend, default | inet | socket} |
                      {port, PortNum} |
                      {options, list()} |
                      {receive_handle, term()} |
                      {module, atom()},
                  PortNum :: inet:port_number(),
                  Handle :: handle(),
                  ControlPid :: pid(),
                  Reason :: term().

此函数用于打开 UDP/IP 套接字。

  • module - 此选项使用户可以提供自己的回调模块。当收到新消息时,将调用此模块的 receive_message/4process_received_message/4 函数。具体调用哪个函数取决于消息的大小。

    • small - receive_message

    • large - process_received_message

    默认值为 _megaco_。

  • inet_backend - 选择 inet 后端。

    此选项可以使用不同的 inet 后端('default'、'inet' 或 'socket')。

    默认为 default (系统默认)。

-spec reset_stats() -> megaco:void().

重置所有 UDP 句柄的所有计数器。

重置给定 UDP 句柄的所有计数器。

-spec send_message(SH, Msg) -> ok when SH :: send_handle(), Msg :: binary() | iolist().

在套接字上发送消息。发送句柄通过 megaco_udp:create_send_handle/3 获取。如果消息发送成功,则增加 NumOutMessages 和 NumOutOctets 计数器。如果发送失败,则 _不会_ 增加 NumErrors 计数器。这在 megaco 应用程序的其他地方完成。

-spec socket(Handle) -> Socket when Handle :: handle() | send_handle(), Socket :: inet:socket().

此函数用于将套接字 handle() 转换为 inet socket()

-spec start_transport() -> {ok, TransportRef} when TransportRef :: pid().

此函数用于启动 UDP/IP 传输服务。使用 exit(TransportRef, Reason) 停止传输服务。

-spec unblock(Handle) -> ok when Handle :: handle() | send_handle().

重新开始从套接字接收传入消息。

链接到此函数

upgrade_receive_handle(ControlPid, NewRecvHandle)

查看源代码
-spec upgrade_receive_handle(ControlPid, NewRecvHandle) -> ok
                                when ControlPid :: pid(), NewRecvHandle :: term().

更新控制进程的接收句柄(例如,在更改协议版本之后)。