| /* $Id$ */ |
| /* |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| #ifndef __PJSIP_SIP_TYPES_H__ |
| #define __PJSIP_SIP_TYPES_H__ |
| |
| |
| /* |
| * My note: Doxygen PJSIP and PJSIP_CORE group is declared in |
| * sip_config.h |
| */ |
| |
| /** |
| * @file sip_types.h |
| * @brief Basic PJSIP types. |
| */ |
| |
| #include <pjsip/sip_config.h> |
| #include <pj/types.h> |
| |
| /** |
| * @addtogroup PJSIP_BASE |
| */ |
| |
| /* @defgroup PJSIP_TYPES Basic Data Types |
| * @ingroup PJSIP_BASE |
| * @brief Basic data types. |
| * @{ |
| */ |
| |
| |
| |
| /** |
| * Forward declaration for SIP transport. |
| */ |
| typedef struct pjsip_transport pjsip_transport; |
| |
| /** |
| * Forward declaration for transport manager. |
| */ |
| typedef struct pjsip_tpmgr pjsip_tpmgr; |
| |
| /** |
| * Transport types. |
| */ |
| typedef enum pjsip_transport_type_e |
| { |
| /** Unspecified. */ |
| PJSIP_TRANSPORT_UNSPECIFIED, |
| |
| /** UDP. */ |
| PJSIP_TRANSPORT_UDP, |
| |
| /** TCP. */ |
| PJSIP_TRANSPORT_TCP, |
| |
| /** TLS. */ |
| PJSIP_TRANSPORT_TLS, |
| |
| /** SCTP. */ |
| PJSIP_TRANSPORT_SCTP, |
| |
| /** Loopback (stream, reliable) */ |
| PJSIP_TRANSPORT_LOOP, |
| |
| /** Loopback (datagram, unreliable) */ |
| PJSIP_TRANSPORT_LOOP_DGRAM, |
| |
| /** Start of user defined transport */ |
| PJSIP_TRANSPORT_START_OTHER, |
| |
| /** Start of IPv6 transports */ |
| PJSIP_TRANSPORT_IPV6 = 128, |
| |
| /** UDP over IPv6 */ |
| PJSIP_TRANSPORT_UDP6 = PJSIP_TRANSPORT_UDP + PJSIP_TRANSPORT_IPV6, |
| |
| /** TCP over IPv6 */ |
| PJSIP_TRANSPORT_TCP6 = PJSIP_TRANSPORT_TCP + PJSIP_TRANSPORT_IPV6, |
| |
| /** TLS over IPv6 */ |
| PJSIP_TRANSPORT_TLS6 = PJSIP_TRANSPORT_TLS + PJSIP_TRANSPORT_IPV6 |
| |
| } pjsip_transport_type_e; |
| |
| |
| /** |
| * Forward declaration for endpoint (sip_endpoint.h). |
| */ |
| typedef struct pjsip_endpoint pjsip_endpoint; |
| |
| /** |
| * Forward declaration for transactions (sip_transaction.h). |
| */ |
| typedef struct pjsip_transaction pjsip_transaction; |
| |
| /** |
| * Forward declaration for events (sip_event.h). |
| */ |
| typedef struct pjsip_event pjsip_event; |
| |
| /** |
| * Forward declaration for transmit data/buffer (sip_transport.h). |
| */ |
| typedef struct pjsip_tx_data pjsip_tx_data; |
| |
| /** |
| * Forward declaration for receive data/buffer (sip_transport.h). |
| */ |
| typedef struct pjsip_rx_data pjsip_rx_data; |
| |
| /** |
| * Forward declaration for message (sip_msg.h). |
| */ |
| typedef struct pjsip_msg pjsip_msg; |
| |
| /** |
| * Forward declaration for message body (sip_msg.h). |
| */ |
| typedef struct pjsip_msg_body pjsip_msg_body; |
| |
| /** |
| * Forward declaration for header field (sip_msg.h). |
| */ |
| typedef struct pjsip_hdr pjsip_hdr; |
| |
| /** |
| * Forward declaration for URI (sip_uri.h). |
| */ |
| typedef struct pjsip_uri pjsip_uri; |
| |
| /** |
| * Forward declaration for SIP method (sip_msg.h) |
| */ |
| typedef struct pjsip_method pjsip_method; |
| |
| /** |
| * Opaque data type for the resolver engine (sip_resolve.h). |
| */ |
| typedef struct pjsip_resolver_t pjsip_resolver_t; |
| |
| /** |
| * Forward declaration for credential. |
| */ |
| typedef struct pjsip_cred_info pjsip_cred_info; |
| |
| |
| /** |
| * Forward declaration for module (sip_module.h). |
| */ |
| typedef struct pjsip_module pjsip_module; |
| |
| |
| /** |
| * Forward declaration for user agent type (sip_ua_layer.h). |
| */ |
| typedef pjsip_module pjsip_user_agent; |
| |
| /** |
| * Forward declaration for dialog (sip_dialog.h). |
| */ |
| typedef struct pjsip_dialog pjsip_dialog; |
| |
| /** |
| * Transaction role. |
| */ |
| typedef enum pjsip_role_e |
| { |
| PJSIP_ROLE_UAC, /**< Role is UAC. */ |
| PJSIP_ROLE_UAS, /**< Role is UAS. */ |
| |
| /* Alias: */ |
| |
| PJSIP_UAC_ROLE = PJSIP_ROLE_UAC, /**< Role is UAC. */ |
| PJSIP_UAS_ROLE = PJSIP_ROLE_UAS /**< Role is UAS. */ |
| |
| } pjsip_role_e; |
| |
| |
| /** |
| * General purpose buffer. |
| */ |
| typedef struct pjsip_buffer |
| { |
| /** The start of the buffer. */ |
| char *start; |
| |
| /** Pointer to current end of the buffer, which also indicates the position |
| of subsequent buffer write. |
| */ |
| char *cur; |
| |
| /** The absolute end of the buffer. */ |
| char *end; |
| |
| } pjsip_buffer; |
| |
| |
| /** |
| * General host:port pair, used for example as Via sent-by. |
| */ |
| typedef struct pjsip_host_port |
| { |
| pj_str_t host; /**< Host part or IP address. */ |
| int port; /**< Port number. */ |
| } pjsip_host_port; |
| |
| /** |
| * Host information. |
| */ |
| typedef struct pjsip_host_info |
| { |
| unsigned flag; /**< Flags of pjsip_transport_flags_e. */ |
| pjsip_transport_type_e type; /**< Transport type. */ |
| pjsip_host_port addr; /**< Address information. */ |
| } pjsip_host_info; |
| |
| |
| /** |
| * Convert exception ID into pj_status_t status. |
| * |
| * @param exception_id Exception Id. |
| * |
| * @return Error code for the specified exception Id. |
| */ |
| PJ_DECL(pj_status_t) pjsip_exception_to_status(int exception_id); |
| |
| /** |
| * Return standard pj_status_t status from current exception. |
| */ |
| #define PJSIP_RETURN_EXCEPTION() pjsip_exception_to_status(PJ_GET_EXCEPTION()) |
| |
| /** |
| * Attributes to inform that the function may throw exceptions. |
| */ |
| #define PJSIP_THROW_SPEC(list) |
| |
| |
| /** |
| * @} |
| */ |
| |
| #endif /* __PJSIP_SIP_TYPES_H__ */ |
| |