FreeSWITCH API Documentation
1.7.0
|
Modules | |
IP Protocol Definitions for use when creating sockets | |
Macros | |
#define | SWITCH_SO_LINGER 1 |
#define | SWITCH_SO_KEEPALIVE 2 |
#define | SWITCH_SO_DEBUG 4 |
#define | SWITCH_SO_NONBLOCK 8 |
#define | SWITCH_SO_REUSEADDR 16 |
#define | SWITCH_SO_SNDBUF 64 |
#define | SWITCH_SO_RCVBUF 128 |
#define | SWITCH_SO_DISCONNECTED 256 |
#define | SWITCH_SO_TCP_NODELAY 512 |
#define | SWITCH_SO_TCP_KEEPIDLE 520 |
#define | SWITCH_SO_TCP_KEEPINTVL 530 |
#define | SWITCH_INET AF_INET |
#define | SWITCH_INET6 0 |
#define | SWITCH_UNSPEC 0 |
Typedefs | |
typedef struct apr_socket_t | switch_socket_t |
typedef struct apr_sockaddr_t | switch_sockaddr_t |
Enumerations | |
enum | switch_shutdown_how_e { SWITCH_SHUTDOWN_READ, SWITCH_SHUTDOWN_WRITE, SWITCH_SHUTDOWN_READWRITE } |
#define SWITCH_INET AF_INET |
Not all platforms have these defined, so we'll define them here The default values come from FreeBSD 4.1.1
Definition at line 1009 of file switch_apr.h.
#define SWITCH_INET6 0 |
Definition at line 1013 of file switch_apr.h.
#define SWITCH_SO_DEBUG 4 |
Definition at line 993 of file switch_apr.h.
#define SWITCH_SO_DISCONNECTED 256 |
Definition at line 998 of file switch_apr.h.
#define SWITCH_SO_KEEPALIVE 2 |
Definition at line 992 of file switch_apr.h.
#define SWITCH_SO_LINGER 1 |
Definition at line 991 of file switch_apr.h.
#define SWITCH_SO_NONBLOCK 8 |
Definition at line 994 of file switch_apr.h.
Referenced by do_flush(), init_nat_monitor(), switch_rtp_clear_flag(), switch_rtp_set_flag(), switch_rtp_set_flags(), switch_rtp_set_local_address(), switch_rtp_udptl_mode(), and switch_stun_lookup().
#define SWITCH_SO_RCVBUF 128 |
Definition at line 997 of file switch_apr.h.
Referenced by switch_rtp_set_local_address().
#define SWITCH_SO_REUSEADDR 16 |
Definition at line 995 of file switch_apr.h.
Referenced by enable_local_rtcp_socket(), init_nat_monitor(), and switch_rtp_set_local_address().
#define SWITCH_SO_SNDBUF 64 |
Definition at line 996 of file switch_apr.h.
Referenced by switch_rtp_set_local_address().
#define SWITCH_SO_TCP_KEEPIDLE 520 |
Definition at line 1000 of file switch_apr.h.
Referenced by switch_socket_opt_set().
#define SWITCH_SO_TCP_KEEPINTVL 530 |
Definition at line 1001 of file switch_apr.h.
Referenced by switch_socket_opt_set().
#define SWITCH_SO_TCP_NODELAY 512 |
Definition at line 999 of file switch_apr.h.
#define SWITCH_UNSPEC 0 |
Let the system decide which address family to use
Definition at line 1022 of file switch_apr.h.
Referenced by enable_local_rtcp_socket(), enable_remote_rtcp_socket(), handle_ice(), init_nat_monitor(), switch_ivr_activate_unicast(), switch_rtp_activate_ice(), switch_rtp_activate_rtcp(), switch_rtp_set_local_address(), switch_rtp_set_remote_address(), switch_stun_host_lookup(), switch_stun_lookup(), and test_port().
typedef struct apr_sockaddr_t switch_sockaddr_t |
Freeswitch's socket address type, used to ensure protocol independence
Definition at line 1029 of file switch_apr.h.
typedef struct apr_socket_t switch_socket_t |
A structure to represent sockets
Definition at line 1026 of file switch_apr.h.
Enumerator | |
---|---|
SWITCH_SHUTDOWN_READ |
no longer allow read request |
SWITCH_SHUTDOWN_WRITE |
no longer allow write requests |
SWITCH_SHUTDOWN_READWRITE |
no longer allow read or write requests |
Definition at line 1031 of file switch_apr.h.
const char* switch_get_addr | ( | char * | buf, |
switch_size_t | len, | ||
switch_sockaddr_t * | in | ||
) |
Definition at line 894 of file switch_apr.c.
References buf, get_addr(), get_addr6(), memset(), and SWITCH_BLANK_STRING.
Referenced by check_rtcp_and_ice(), enable_local_rtcp_socket(), enable_remote_rtcp_socket(), handle_ice(), handle_nack(), read_rtp_packet(), rtp_common_read(), rtp_common_write(), switch_print_host(), switch_rtp_activate_ice(), and switch_stun_host_lookup().
switch_status_t switch_getnameinfo | ( | char ** | hostname, |
switch_sockaddr_t * | sa, | ||
int32_t | flags | ||
) |
Definition at line 926 of file switch_apr.c.
switch_status_t switch_mcast_hops | ( | switch_socket_t * | sock, |
uint8_t | ttl | ||
) |
Set the Multicast Time to Live (ttl) for a multicast transmission.
sock | The socket to set the multicast ttl |
ttl | Time to live to Assign. 0-255, default=1 |
Definition at line 876 of file switch_apr.c.
Referenced by switch_rtp_set_local_address().
switch_status_t switch_mcast_interface | ( | switch_socket_t * | sock, |
switch_sockaddr_t * | iface | ||
) |
Definition at line 886 of file switch_apr.c.
Referenced by switch_rtp_set_local_address().
switch_status_t switch_mcast_join | ( | switch_socket_t * | sock, |
switch_sockaddr_t * | join, | ||
switch_sockaddr_t * | iface, | ||
switch_sockaddr_t * | source | ||
) |
Join a Multicast Group
sock | The socket to join a multicast group |
join | The address of the multicast group to join |
iface | Address of the interface to use. If NULL is passed, the default multicast interface will be used. (OS Dependent) |
source | Source Address to accept transmissions from (non-NULL implies Source-Specific Multicast) |
Definition at line 871 of file switch_apr.c.
Referenced by init_nat_monitor(), and switch_rtp_set_local_address().
switch_status_t switch_mcast_loopback | ( | switch_socket_t * | sock, |
uint8_t | opt | ||
) |
Definition at line 881 of file switch_apr.c.
switch_status_t switch_sockaddr_create | ( | switch_sockaddr_t ** | sa, |
switch_memory_pool_t * | pool | ||
) |
Definition at line 795 of file switch_apr.c.
References memset(), pool, switch_assert, and SWITCH_STATUS_SUCCESS.
Referenced by switch_rtp_create().
int switch_sockaddr_equal | ( | const switch_sockaddr_t * | sa1, |
const switch_sockaddr_t * | sa2 | ||
) |
Definition at line 866 of file switch_apr.c.
int32_t switch_sockaddr_get_family | ( | switch_sockaddr_t * | sa | ) |
Definition at line 921 of file switch_apr.c.
Referenced by enable_local_rtcp_socket(), enable_remote_rtcp_socket(), switch_rtp_set_local_address(), and switch_rtp_set_remote_address().
uint16_t switch_sockaddr_get_port | ( | switch_sockaddr_t * | sa | ) |
Definition at line 916 of file switch_apr.c.
Referenced by check_rtcp_and_ice(), enable_local_rtcp_socket(), handle_ice(), handle_nack(), read_rtp_packet(), rtp_common_read(), rtp_common_write(), switch_print_host(), and switch_rtp_activate_ice().
switch_status_t switch_sockaddr_info_get | ( | switch_sockaddr_t ** | sa, |
const char * | hostname, | ||
int32_t | family, | ||
switch_port_t | port, | ||
int32_t | flags, | ||
switch_memory_pool_t * | pool | ||
) |
Create apr_sockaddr_t from hostname, address family, and port.
sa | The new apr_sockaddr_t. |
hostname | The hostname or numeric address string to resolve/parse, or NULL to build an address that corresponds to 0.0.0.0 or :: |
family | The address family to use, or SWITCH_UNSPEC if the system should decide. |
port | The port number. |
flags | Special processing flags: APR_IPV4_ADDR_OK first query for IPv4 addresses; only look for IPv6 addresses if the first query failed; only valid if family is APR_UNSPEC and hostname isn't NULL; mutually exclusive with APR_IPV6_ADDR_OK APR_IPV6_ADDR_OK first query for IPv6 addresses; only look for IPv4 addresses if the first query failed; only valid if family is APR_UNSPEC and hostname isn't NULL and APR_HAVE_IPV6; mutually exclusive with APR_IPV4_ADDR_OK |
pool | The pool for the apr_sockaddr_t and associated storage. |
Definition at line 817 of file switch_apr.c.
Referenced by enable_local_rtcp_socket(), enable_remote_rtcp_socket(), handle_ice(), init_nat_monitor(), switch_ivr_activate_unicast(), switch_rtp_activate_ice(), switch_rtp_activate_rtcp(), switch_rtp_set_local_address(), switch_rtp_set_remote_address(), switch_stun_host_lookup(), switch_stun_lookup(), and test_port().
switch_status_t switch_sockaddr_ip_get | ( | char ** | addr, |
switch_sockaddr_t * | sa | ||
) |
Definition at line 861 of file switch_apr.c.
switch_status_t switch_socket_accept | ( | switch_socket_t ** | new_sock, |
switch_socket_t * | sock, | ||
switch_memory_pool_t * | pool | ||
) |
Accept a new connection request
new_sock | A copy of the socket that is connected to the socket that made the connection request. This is the socket which should be used for all future communication. |
sock | The socket we are listening on. |
pool | The pool for the new socket. |
Definition at line 729 of file switch_apr.c.
switch_status_t switch_socket_atmark | ( | switch_socket_t * | sock, |
int * | atmark | ||
) |
Definition at line 931 of file switch_apr.c.
switch_status_t switch_socket_bind | ( | switch_socket_t * | sock, |
switch_sockaddr_t * | sa | ||
) |
Bind the socket to its associated port
sock | The socket to bind |
sa | The socket address to bind to |
Definition at line 719 of file switch_apr.c.
Referenced by enable_local_rtcp_socket(), init_nat_monitor(), switch_ivr_activate_unicast(), switch_rtp_set_local_address(), switch_stun_lookup(), and test_port().
switch_status_t switch_socket_close | ( | switch_socket_t * | sock | ) |
Close a socket.
sock | The socket to close |
Definition at line 714 of file switch_apr.c.
Referenced by enable_local_rtcp_socket(), enable_remote_rtcp_socket(), init_nat_monitor(), switch_ivr_deactivate_unicast(), switch_rtp_destroy(), switch_rtp_set_local_address(), switch_rtp_set_remote_address(), switch_rtp_udptl_mode(), switch_stun_lookup(), and test_port().
switch_status_t switch_socket_connect | ( | switch_socket_t * | sock, |
switch_sockaddr_t * | sa | ||
) |
Issue a connection request to a socket either on the same machine or a different one.
sock | The socket we wish to use for our side of the connection |
sa | The address of the machine we wish to connect to. |
Definition at line 734 of file switch_apr.c.
switch_status_t switch_socket_create | ( | switch_socket_t ** | new_sock, |
int | family, | ||
int | type, | ||
int | protocol, | ||
switch_memory_pool_t * | pool | ||
) |
Create a socket.
new_sock | The new socket that has been set up. |
family | The address family of the socket (e.g., SWITCH_INET). |
type | The type of the socket (e.g., SOCK_STREAM). |
protocol | The protocol of the socket (e.g., SWITCH_PROTO_TCP). |
pool | The pool to use |
Definition at line 704 of file switch_apr.c.
Referenced by enable_local_rtcp_socket(), enable_remote_rtcp_socket(), init_nat_monitor(), switch_ivr_activate_unicast(), switch_rtp_set_local_address(), switch_rtp_set_remote_address(), switch_stun_lookup(), and test_port().
int switch_socket_fd_get | ( | switch_socket_t * | sock | ) |
Get socket fd for the switch socket passed
sock | The socket we wish to have fd |
Definition at line 911 of file switch_apr.c.
switch_status_t switch_socket_listen | ( | switch_socket_t * | sock, |
int32_t | backlog | ||
) |
Listen to a bound socket for connections.
sock | The socket to listen on |
backlog | The number of outstanding connections allowed in the sockets listen queue. If this value is less than zero, the listen queue size is set to zero. |
Definition at line 724 of file switch_apr.c.
switch_status_t switch_socket_opt_set | ( | switch_socket_t * | sock, |
int32_t | opt, | ||
int32_t | on | ||
) |
Setup socket options for the specified socket
sock | The socket to set up. |
opt | The option we would like to configure. One of: APR_SO_DEBUG -- turn on debugging information APR_SO_KEEPALIVE -- keep connections active APR_SO_LINGER -- lingers on close if data is present APR_SO_NONBLOCK -- Turns blocking on/off for socket When this option is enabled, use the APR_STATUS_IS_EAGAIN() macro to see if a send or receive function could not transfer data without blocking. APR_SO_REUSEADDR -- The rules used in validating addresses supplied to bind should allow reuse of local addresses. APR_SO_SNDBUF -- Set the SendBufferSize APR_SO_RCVBUF -- Set the ReceiveBufferSize |
on | Value for the option. |
Definition at line 823 of file switch_apr.c.
References SWITCH_SO_TCP_KEEPIDLE, SWITCH_SO_TCP_KEEPINTVL, SWITCH_STATUS_FALSE, SWITCH_STATUS_NOTIMPL, and SWITCH_STATUS_SUCCESS.
Referenced by do_flush(), enable_local_rtcp_socket(), init_nat_monitor(), switch_rtp_clear_flag(), switch_rtp_set_flag(), switch_rtp_set_flags(), switch_rtp_set_local_address(), switch_rtp_udptl_mode(), and switch_stun_lookup().
switch_status_t switch_socket_recv | ( | switch_socket_t * | sock, |
char * | buf, | ||
switch_size_t * | len | ||
) |
Read data from a network.
sock | The socket to read the data from. |
buf | The buffer to store the data in. |
len | On entry, the number of bytes to receive; on exit, the number of bytes received. |
This functions acts like a blocking read by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually received is stored in argument 3.
It is possible for both bytes to be received and an APR_EOF or other error to be returned.
APR_EINTR is never returned.
Definition at line 782 of file switch_apr.c.
References SWITCH_STATUS_BREAK.
Referenced by unicast_thread_run().
switch_status_t switch_socket_recvfrom | ( | switch_sockaddr_t * | from, |
switch_socket_t * | sock, | ||
int32_t | flags, | ||
char * | buf, | ||
size_t * | len | ||
) |
from | The apr_sockaddr_t to fill in the recipient info |
sock | The socket to use |
flags | The flags to use |
buf | The buffer to use |
len | The length of the available buffer |
Definition at line 936 of file switch_apr.c.
References SWITCH_STATUS_BREAK, and SWITCH_STATUS_GENERR.
Referenced by do_flush(), read_rtcp_packet(), read_rtp_packet(), switch_nat_multicast_runtime(), switch_rtp_set_local_address(), and switch_stun_lookup().
switch_status_t switch_socket_send | ( | switch_socket_t * | sock, |
const char * | buf, | ||
switch_size_t * | len | ||
) |
Send data over a network.
sock | The socket to send the data over. |
buf | The buffer which contains the data to be sent. |
len | On entry, the number of bytes to send; on exit, the number of bytes sent. |
This functions acts like a blocking write by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option.
It is possible for both bytes to be sent and an error to be returned.
APR_EINTR is never returned.
Definition at line 739 of file switch_apr.c.
References SWITCH_STATUS_BREAK, SWITCH_STATUS_FALSE, SWITCH_STATUS_SUCCESS, and switch_yield.
switch_status_t switch_socket_send_nonblock | ( | switch_socket_t * | sock, |
const char * | buf, | ||
switch_size_t * | len | ||
) |
Definition at line 764 of file switch_apr.c.
References SWITCH_STATUS_GENERR.
switch_status_t switch_socket_sendto | ( | switch_socket_t * | sock, |
switch_sockaddr_t * | where, | ||
int32_t | flags, | ||
const char * | buf, | ||
switch_size_t * | len | ||
) |
sock | The socket to send from |
where | The apr_sockaddr_t describing where to send the data |
flags | The flags to use |
buf | The data to send |
len | The length of the data to send |
Definition at line 773 of file switch_apr.c.
References SWITCH_STATUS_GENERR.
Referenced by check_rtcp_and_ice(), do_dtls(), handle_ice(), ice_out(), ping_socket(), rtp_common_read(), rtp_common_write(), switch_ivr_park(), switch_rtp_set_local_address(), switch_rtp_write_frame(), switch_rtp_write_raw(), and switch_stun_lookup().
switch_status_t switch_socket_shutdown | ( | switch_socket_t * | sock, |
switch_shutdown_how_e | how | ||
) |
Shutdown either reading, writing, or both sides of a socket.
sock | The socket to close |
how | How to shutdown the socket. One of: SWITCH_SHUTDOWN_READ no longer allow read requests SWITCH_SHUTDOWN_WRITE no longer allow write requests SWITCH_SHUTDOWN_READWRITE no longer allow read or write requests |
Definition at line 709 of file switch_apr.c.
Referenced by switch_ivr_deactivate_unicast(), switch_rtp_kill_socket(), switch_rtp_udptl_mode(), and switch_stun_lookup().
switch_status_t switch_socket_timeout_set | ( | switch_socket_t * | sock, |
switch_interval_time_t | t | ||
) |
Setup socket timeout for the specified socket
sock | The socket to set up. |
t | Value for the timeout. t > 0 – read and write calls return APR_TIMEUP if specified time elapsess with no data read or written t == 0 – read and write calls never block t < 0 – read and write calls block |
Definition at line 856 of file switch_apr.c.