megaco_udp(3erl)

๐Ÿ“ฆ
version 25.3.2.8 ยท 5 versions
, in ubuntu noble

๐ŸŽ€ NAME ๐ŸŽ€

okay so bestie, welcome to megaco_udp(3erl) โ€” the Erlang Module Definition page for megaco_udp ๐Ÿ’–. This is the one about the UDP/IP transport protocol interface for Megaco/H.248, and weโ€™re getting into every single detail, no cap โœจ.


๐ŸŒˆ DESCRIPTION ๐ŸŒˆ

This module contains the public interface to the UDP/IP version transport protocol for Megaco/H.248. Itโ€™s giving โ€œofficial doorway to the UDP/IP transportโ€ energy, and weโ€™re obsessed ๐Ÿ’….


๐Ÿ’… EXPORTS ๐Ÿ’…

start_transport() -> {ok, TransportRef}

Types:

TransportRef = pid()

This function is used for starting the UDP/IP transport service. To stop the transport service, use exit(TransportRef, Reason) โ€” thatโ€™s the stop button, periodt ๐Ÿซถ.

open(TransportRef, OptionList) -> {ok, Handle, ControlPid} | {error, Reason}

Types:

TransportRef = pid() | regname()
OptionList = [option()]
option() = {port, integer()} | {options, list()} |
{receive_handle, receive_handle()} | {module, atom()} |
{inet_backend, default | inet | socket}
Handle = socket_handle()
receive_handle() = term()
ControlPid = pid()
Reason = term()

This function is used to open an UDP/IP socket. The allowed option tuples are exactly these, bestie:

  • {port, integer()}
  • {options, list()}
  • {receive_handle, receive_handle()}
  • {module, atom()}
  • {inet_backend, default | inet | socket}

module option details

The module option makes it possible for the user to provide their own callback module. The functions receive_message/4 or process_received_message/4 of this module is called when a new message is received. Which one depends on the size of the message:

  • small: receive_message
  • large: process_received_message

Default value is megaco. Slay โœจ.

close(Handle, Msg) -> ok

Types:

Handle = socket_handle()
Msg

This function is used for closing an active UDP socket. Bye socket, hope you had a cute day ๐Ÿฆ‹.

socket(Handle) -> Socket

Types:

Handle = socket_handle()
Socket = inet_socket()

This function is used to convert a socket_handle() to a inet_socket(). inet_socket() is a plain socket, see the inet module for more info ๐Ÿ‘‘.

create_send_handle(Handle, Host, Port) -> send_handle()

Types:

Handle = socket_handle()
Host = {A,B,C,D} | string()
Port = integer()

Creates a send handle from a transport handle. The send handle is intended to be used by megaco_udp:send_message/2. Itโ€™s giving โ€œmake the send handle so the send can happenโ€ ๐Ÿ’Œ.

send_message(SendHandle, Msg) -> ok

Types:

SendHandle = send_handle()
Message = binary() | iolist()

Sends a message on a socket. The send handle is obtained by megaco_udp:create_send_handle/3. Increments the NumOutMessages and NumOutOctets counters if message successfully sent. In case of a failure to send, the NumErrors counter is not incremented. This is done elsewhere in the megaco app. Important detail, donโ€™t forget it ๐Ÿซก.

block(Handle) -> ok

Types:

Handle = socket_handle()

Stop receiving incoming messages on the socket. The socket is on do-not-disturb mode ๐Ÿ’€.

unblock(Handle) -> ok

Types:

Handle = socket_handle()

Starting to receive incoming messages from the socket again. DND off, bestie, messages are back ๐ŸŒธ.

upgrade_receive_handle(ControlPid, NewHandle) -> ok

Types:

ControlPid = pid()
NewHandle = receive_handle()
receive_handle() = term()

Update the receive handle of the control process (e.g. after having changed protocol version). Glow-up for the receive handle โœจ.

get_stats() / get_stats(SendHandle) / get_stats(SendHandle, Counter)

Signatures:

get_stats() -> {ok, TotalStats} | {error, Reason}
get_stats(SendHandle) -> {ok, SendHandleStats} | {error, Reason}
get_stats(SendHandle, Counter) -> {ok, CounterStats} | {error, Reason}

Types:

TotalStats = [total_stats()]
total_stats() = {send_handle(), [stats()]}
SendHandle = send_handle()
SendHandleStats = [stats()]
Counter = udp_stats_counter()
CounterStats = integer()
stats() = {udp_stats_counter(), integer()}
tcp_stats_counter() = medGwyGatewayNumInMessages |
medGwyGatewayNumInOctets | medGwyGatewayNumOutMessages |
medGwyGatewayNumOutOctets | medGwyGatewayNumErrors
Reason = term()

Retreive the UDP related (SNMP) statistics counters. Yes, the page spells it โ€œRetreiveโ€; Iโ€™m keeping the detail and lovingly side-eyeing it ๐Ÿ˜ญ. Also yes, it literally says tcp_stats_counter() in this UDP pageโ€™s type block โ€” copying that exactly, no editing, periodt ๐Ÿ’….

reset_stats() / reset_stats(SendHandle)

Signatures:

reset_stats() -> void()
reset_stats(SendHandle) -> void()

Types:

SendHandle = send_handle()

Reset all TCP related (SNMP) statistics counters. Yep, the page says TCP here too โ€” on the UDP page โ€” so we keep that exact wording, bestie ๐Ÿ’€๐Ÿ”ฅ.


Thatโ€™s the page, periodt ๐Ÿ’…

Footer vibes: Ericsson AB, version megaco 4.4.3, page megaco_udp(3erl). No date is printed on the footer, so Iโ€™m not inventing one ๐Ÿซถ.

๐Ÿ“ฆ where this page comes from