# megaco_tcp

### MODULE

megaco_tcp

### MODULE SUMMARY

Interface module to TPKT transport protocol for Megaco/H.248.

### DESCRIPTION

This module contains the public interface to the TPKT (TCP/IP) version transport protocol for Megaco/H.248.

### EXPORTS

`start_transport() -> {ok, TransportRef}`

Types:

`TransportRef = pid()`

This function is used for starting the TCP/IP transport service. Use exit(TransportRef, Reason) to stop the transport service.

`listen(TransportRef, ListenPortSpecList) -> ok`

Types:

`TransportRef = pid() | regname()`
`OptionListPerPort = [Option]`
`Option = {port, integer()} |{options, list()} |{receive_handle, term()}`

This function is used for starting new TPKT listening socket for TCP/IP. The option list contains the socket definitions.

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

Types:

`TransportRef = pid() | regname()`
`OptionList = [Option]`
`Option = {host, Ipaddr} | {port, integer()} |{options, list()} |{receive_handle, term()} |{module, atom()}`
`Handle = socket_handle()`
`ControlPid = pid()`
`Reason = term()`

This function is used to open a TPKT connection.

The `module` option makes it possible for the user to provide their own callback module. The `receive_message/4` or `process_received_message/4` functions 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.

`close(Handle) -> ok`

Types:

`Handle = socket_handle()`

This function is used for closing an active TPKT connection.

`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.

`send_message(Handle, Message) -> ok`

Types:

`Handle = socket_handle()`
`Message = binary() | iolist()`

Sends a message on a connection.

`block(Handle) -> ok`

Types:

`Handle = socket_handle()`

Stop receiving incomming messages on the socket.

`unblock(Handle) -> ok`

Types:

`Handle = socket_handle()`

Starting to receive incomming messages from the socket again.

`upgrade_receive_handle(ControlPid) -> ok`

Types:

`ControlPid = pid()`

Update the receive handle of the control process (e.g. after having changed protocol version).

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

Types:

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

Retreive the TCP related (SNMP) statistics counters.

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

Types:

`SendHandle = send_handle()`

Reset all TCP related (SNMP) statistics counters.

### AUTHORS

Lars Thorsén - support@erlang.ericsson.se

megaco 3.5
Copyright © 1991-2006 Ericsson AB