查看源代码 megaco_udp (megaco v4.7)
Megaco/H.248 的 UDP 传输协议接口模块。
此模块包含 Megaco/H.248 的 UDP/IP 版本传输协议的公共接口。
摘要
函数
停止在套接字上接收传入消息。
此函数用于关闭活动的 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 套接字。
-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().
获取给定句柄的所有计数器值。
-spec get_stats(SH, Counter) -> {ok, integer()} | {error, Reason} when SH :: send_handle(), Counter :: counter(), Reason :: term().
获取特定计数器的值。
-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/4
或process_received_message/4
函数。具体调用哪个函数取决于消息的大小。small
- receive_messagelarge
- 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().
重新开始从套接字接收传入消息。
-spec upgrade_receive_handle(ControlPid, NewRecvHandle) -> ok when ControlPid :: pid(), NewRecvHandle :: term().
更新控制进程的接收句柄(例如,在更改协议版本之后)。