SIP Witch 1.9.15
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
eXosip2 configuration API

Data Structures

struct  eXosip_dns_cache
 structure used to for inserting a DNS cache entry and avoid DNS resolution. More...
 
struct  eXosip_account_info
 
struct  eXosip_http_auth
 
struct  eXosip_tls_credentials_s
 structure used to describe credentials for a client or server consists of a certificate, a corresponding private key and its password More...
 
struct  eXosip_tls_ctx_s
 structure to describe the whole TLS-context for eXosip consists of a certificate, a corresponding private key and its password More...
 

Macros

#define EXOSIP_OPT_BASE_OPTION   0
 
#define EXOSIP_OPT_UDP_KEEP_ALIVE   (EXOSIP_OPT_BASE_OPTION+1)
 int *: interval for keep alive packets (UDP, TCP, TLS, DTLS) More...
 
#define EXOSIP_OPT_UDP_LEARN_PORT   (EXOSIP_OPT_BASE_OPTION+2)
 int *: specific re-usage of "rport" More...
 
#define EXOSIP_OPT_USE_RPORT   (EXOSIP_OPT_BASE_OPTION+7)
 int *: enable or disable rport in via More...
 
#define EXOSIP_OPT_SET_IPV4_FOR_GATEWAY   (EXOSIP_OPT_BASE_OPTION+8)
 char *: usually, this is the proxy address More...
 
#define EXOSIP_OPT_ADD_DNS_CACHE   (EXOSIP_OPT_BASE_OPTION+9)
 struct eXosip_dns_cache *: force some cache entry to avoid DNS More...
 
#define EXOSIP_OPT_DELETE_DNS_CACHE   (EXOSIP_OPT_BASE_OPTION+10)
 struct eXosip_dns_cache *: force removal of some cache entry to avoid DNS More...
 
#define EXOSIP_OPT_SET_IPV6_FOR_GATEWAY   (EXOSIP_OPT_BASE_OPTION+12)
 char *: usually, this is the proxy address More...
 
#define EXOSIP_OPT_ADD_ACCOUNT_INFO   (EXOSIP_OPT_BASE_OPTION+13)
 struct eXosip_account_info *: internal stuff More...
 
#define EXOSIP_OPT_DNS_CAPABILITIES   (EXOSIP_OPT_BASE_OPTION+14)
 int *: 0 to disable, 2 to use NAPTR/SRV record More...
 
#define EXOSIP_OPT_SET_DSCP   (EXOSIP_OPT_BASE_OPTION+15)
 int *: set a dscp value for SIP socket More...
 
#define EXOSIP_OPT_REGISTER_WITH_DATE   (EXOSIP_OPT_BASE_OPTION+16)
 int *: enable usage of Date header in REGISTER More...
 
#define EXOSIP_OPT_SET_HEADER_USER_AGENT   (EXOSIP_OPT_BASE_OPTION+17)
 char *: set the User-Agent header More...
 
#define EXOSIP_OPT_SET_TLS_VERIFY_CERTIFICATE   (EXOSIP_OPT_BASE_OPTION+500)
 int *: enable verification of certificate for TLS connection More...
 
#define EXOSIP_OPT_SET_TLS_CERTIFICATES_INFO   (EXOSIP_OPT_BASE_OPTION+501)
 eXosip_tls_ctx_t *: client and/or server certificate/ca-root/key info More...
 
#define EXOSIP_OPT_SET_TLS_CLIENT_CERTIFICATE_NAME   (EXOSIP_OPT_BASE_OPTION+502)
 char*: user can choose a specific certifcate present in Windows Certificate Store More...
 
#define EXOSIP_OPT_SET_TLS_SERVER_CERTIFICATE_NAME   (EXOSIP_OPT_BASE_OPTION+503)
 char*: user can choose a specific certifcate present in Windows Certificate Store More...
 
#define EXOSIP_OPT_KEEP_ALIVE_OPTIONS_METHOD   (EXOSIP_OPT_BASE_OPTION+1000)
 

Typedefs

typedef struct
eXosip_tls_credentials_s 
eXosip_tls_credentials_t
 
typedef struct eXosip_tls_ctx_s eXosip_tls_ctx_t
 
typedef void(* CbSipCallback )(osip_message_t *msg, int received)
 

Enumerations

enum  eXosip_tls_ctx_error {
  TLS_OK = 0, TLS_ERR_NO_RAND = -1, TLS_ERR_NO_DH_PARAM = -2, TLS_ERR_NO_PW = -3,
  TLS_ERR_NO_ROOT_CA = -4, TLS_ERR_MISSING_AUTH_PART = -5
}
 An enumeration which describes the error which can occur while setting the eXosip_tls_ctx. More...
 

Functions

struct eXosip_t * eXosip_malloc (void)
 Allocate an eXosip context. More...
 
int eXosip_init (struct eXosip_t *excontext)
 Initiate the eXtented oSIP library. More...
 
void eXosip_quit (struct eXosip_t *excontext)
 Release ressource used by the eXtented oSIP library. More...
 
int eXosip_lock (struct eXosip_t *excontext)
 Lock the eXtented oSIP library. More...
 
int eXosip_unlock (struct eXosip_t *excontext)
 UnLock the eXtented oSIP library. More...
 
int eXosip_execute (struct eXosip_t *excontext)
 Process (non-threaded mode ONLY) eXosip events. More...
 
int eXosip_set_option (struct eXosip_t *excontext, int opt, const void *value)
 Set eXosip options. More...
 
struct osip_naptreXosip_dnsutils_naptr (struct eXosip_t *excontext, const char *domain, const char *protocol, const char *transport, int keep_in_cache)
 Start and return osip_naptr context. More...
 
int eXosip_dnsutils_dns_process (struct osip_naptr *output_record, int force)
 Continue to process asynchronous DNS request (if implemented). More...
 
int eXosip_dnsutils_rotate_srv (struct osip_srv_record *output_record)
 Rotate first SRV entry to last SRV entry. More...
 
int eXosip_listen_addr (struct eXosip_t *excontext, int transport, const char *addr, int port, int family, int secure)
 Listen on a specified socket. More...
 
int eXosip_reset_transports (struct eXosip_t *excontext)
 Reset transport sockets. More...
 
int eXosip_set_socket (struct eXosip_t *excontext, int transport, int socket, int port)
 Listen on a specified socket. More...
 
void eXosip_set_user_agent (struct eXosip_t *excontext, const char *user_agent)
 Set the SIP User-Agent: header string. More...
 
const char * eXosip_get_version (void)
 Get the eXosip version as a sring. More...
 
int eXosip_set_cbsip_message (struct eXosip_t *excontext, CbSipCallback cbsipCallback)
 Set a callback to get sent and received SIP messages. More...
 
void eXosip_enable_ipv6 (int ipv6_enable)
 Use IPv6 instead of IPv4. More...
 
void eXosip_masquerade_contact (struct eXosip_t *excontext, const char *public_address, int port)
 This method is used to replace contact address with the public address of your NAT. More...
 
int eXosip_find_free_port (struct eXosip_t *excontext, int free_port, int transport)
 This method is used to find out an free IPPROTO_UDP or IPPROTO_TCP port. More...
 
void eXosip_wakeup_event (struct eXosip_t *excontext)
 Wake Up the eXosip_event_wait method. More...
 

Detailed Description

Macro Definition Documentation

#define EXOSIP_OPT_ADD_ACCOUNT_INFO   (EXOSIP_OPT_BASE_OPTION+13)

#include <eX_setup.h>

struct eXosip_account_info *: internal stuff

Definition at line 106 of file eX_setup.h.

#define EXOSIP_OPT_ADD_DNS_CACHE   (EXOSIP_OPT_BASE_OPTION+9)

#include <eX_setup.h>

struct eXosip_dns_cache *: force some cache entry to avoid DNS

Definition at line 103 of file eX_setup.h.

#define EXOSIP_OPT_BASE_OPTION   0

#include <eX_setup.h>

Definition at line 98 of file eX_setup.h.

#define EXOSIP_OPT_DELETE_DNS_CACHE   (EXOSIP_OPT_BASE_OPTION+10)

#include <eX_setup.h>

struct eXosip_dns_cache *: force removal of some cache entry to avoid DNS

Definition at line 104 of file eX_setup.h.

#define EXOSIP_OPT_DNS_CAPABILITIES   (EXOSIP_OPT_BASE_OPTION+14)

#include <eX_setup.h>

int *: 0 to disable, 2 to use NAPTR/SRV record

Definition at line 107 of file eX_setup.h.

#define EXOSIP_OPT_KEEP_ALIVE_OPTIONS_METHOD   (EXOSIP_OPT_BASE_OPTION+1000)

#include <eX_setup.h>

Definition at line 118 of file eX_setup.h.

#define EXOSIP_OPT_REGISTER_WITH_DATE   (EXOSIP_OPT_BASE_OPTION+16)

#include <eX_setup.h>

int *: enable usage of Date header in REGISTER

Definition at line 109 of file eX_setup.h.

#define EXOSIP_OPT_SET_DSCP   (EXOSIP_OPT_BASE_OPTION+15)

#include <eX_setup.h>

int *: set a dscp value for SIP socket

Definition at line 108 of file eX_setup.h.

#define EXOSIP_OPT_SET_HEADER_USER_AGENT   (EXOSIP_OPT_BASE_OPTION+17)

#include <eX_setup.h>

char *: set the User-Agent header

Definition at line 110 of file eX_setup.h.

#define EXOSIP_OPT_SET_IPV4_FOR_GATEWAY   (EXOSIP_OPT_BASE_OPTION+8)

#include <eX_setup.h>

char *: usually, this is the proxy address

Definition at line 102 of file eX_setup.h.

#define EXOSIP_OPT_SET_IPV6_FOR_GATEWAY   (EXOSIP_OPT_BASE_OPTION+12)

#include <eX_setup.h>

char *: usually, this is the proxy address

Definition at line 105 of file eX_setup.h.

#define EXOSIP_OPT_SET_TLS_CERTIFICATES_INFO   (EXOSIP_OPT_BASE_OPTION+501)

#include <eX_setup.h>

eXosip_tls_ctx_t *: client and/or server certificate/ca-root/key info

Definition at line 113 of file eX_setup.h.

#define EXOSIP_OPT_SET_TLS_CLIENT_CERTIFICATE_NAME   (EXOSIP_OPT_BASE_OPTION+502)

#include <eX_setup.h>

char*: user can choose a specific certifcate present in Windows Certificate Store

Definition at line 114 of file eX_setup.h.

#define EXOSIP_OPT_SET_TLS_SERVER_CERTIFICATE_NAME   (EXOSIP_OPT_BASE_OPTION+503)

#include <eX_setup.h>

char*: user can choose a specific certifcate present in Windows Certificate Store

Definition at line 115 of file eX_setup.h.

#define EXOSIP_OPT_SET_TLS_VERIFY_CERTIFICATE   (EXOSIP_OPT_BASE_OPTION+500)

#include <eX_setup.h>

int *: enable verification of certificate for TLS connection

Definition at line 112 of file eX_setup.h.

#define EXOSIP_OPT_UDP_KEEP_ALIVE   (EXOSIP_OPT_BASE_OPTION+1)

#include <eX_setup.h>

int *: interval for keep alive packets (UDP, TCP, TLS, DTLS)

Definition at line 99 of file eX_setup.h.

#define EXOSIP_OPT_UDP_LEARN_PORT   (EXOSIP_OPT_BASE_OPTION+2)

#include <eX_setup.h>

int *: specific re-usage of "rport"

Definition at line 100 of file eX_setup.h.

#define EXOSIP_OPT_USE_RPORT   (EXOSIP_OPT_BASE_OPTION+7)

#include <eX_setup.h>

int *: enable or disable rport in via

Definition at line 101 of file eX_setup.h.

Typedef Documentation

typedef void(* CbSipCallback)(osip_message_t *msg, int received)

#include <eX_setup.h>

Definition at line 262 of file eX_setup.h.

#include <eX_setup.h>

#include <eX_setup.h>

Enumeration Type Documentation

#include <eX_setup.h>

An enumeration which describes the error which can occur while setting the eXosip_tls_ctx.

Enumerator
TLS_OK 

yippieh, everything is fine :)

TLS_ERR_NO_RAND 

no absolute path to the random file was specified

TLS_ERR_NO_DH_PARAM 

no absolute path to the diifie hellman file was specified

TLS_ERR_NO_PW 

no password was specified

TLS_ERR_NO_ROOT_CA 

no absolute path to the rootCA file was specified

TLS_ERR_MISSING_AUTH_PART 

something is missing: the private key or the certificate

Definition at line 182 of file eX_setup.h.

Function Documentation

int eXosip_dnsutils_dns_process ( struct osip_naptr output_record,
int  force 
)

#include <eX_setup.h>

Continue to process asynchronous DNS request (if implemented).

Parameters
output_recordresult structure.
forceforce waiting for final answer if >0
struct osip_naptr* eXosip_dnsutils_naptr ( struct eXosip_t *  excontext,
const char *  domain,
const char *  protocol,
const char *  transport,
int  keep_in_cache 
)

#include <eX_setup.h>

Start and return osip_naptr context.

Note that DNS results might not yet be available.

Parameters
excontexteXosip_t instance.
domaindomain name for NAPTR record
protocolprotocol to use ("SIP")
transporttransport to use ("UDP")
keep_in_cachekeep result in cache if >0
int eXosip_dnsutils_rotate_srv ( struct osip_srv_record output_record)

#include <eX_setup.h>

Rotate first SRV entry to last SRV entry.

Parameters
output_recordresult structure.
void eXosip_enable_ipv6 ( int  ipv6_enable)

#include <eX_setup.h>

Use IPv6 instead of IPv4.

Parameters
ipv6_enableThis paramter should be set to 1 to enable IPv6 mode.
int eXosip_execute ( struct eXosip_t *  excontext)

#include <eX_setup.h>

Process (non-threaded mode ONLY) eXosip events.

Parameters
excontexteXosip_t instance.
int eXosip_find_free_port ( struct eXosip_t *  excontext,
int  free_port,
int  transport 
)

#include <eX_setup.h>

This method is used to find out an free IPPROTO_UDP or IPPROTO_TCP port.

Parameters
excontexteXosip_t instance.
free_portinitial port for search.
transportIPPROTO_UDP or IPPROTO_TCP protocol.
const char* eXosip_get_version ( void  )

#include <eX_setup.h>

Get the eXosip version as a sring.

int eXosip_init ( struct eXosip_t *  excontext)

#include <eX_setup.h>

Initiate the eXtented oSIP library.

Parameters
excontexteXosip_t instance.
int eXosip_listen_addr ( struct eXosip_t *  excontext,
int  transport,
const char *  addr,
int  port,
int  family,
int  secure 
)

#include <eX_setup.h>

Listen on a specified socket.

Parameters
excontexteXosip_t instance.
transportIPPROTO_UDP for udp. (soon to come: TCP/TLS?)
addrthe address to bind (NULL for all interface)
portthe listening port. (0 for random port)
familythe IP family (AF_INET or AF_INET6).
secure0 for UDP or TCP, 1 for TLS (with TCP).
int eXosip_lock ( struct eXosip_t *  excontext)

#include <eX_setup.h>

Lock the eXtented oSIP library.

Parameters
excontexteXosip_t instance.
struct eXosip_t* eXosip_malloc ( void  )

#include <eX_setup.h>

Allocate an eXosip context.

Returns
a new allocated eXosip_t instance.
void eXosip_masquerade_contact ( struct eXosip_t *  excontext,
const char *  public_address,
int  port 
)

#include <eX_setup.h>

This method is used to replace contact address with the public address of your NAT.

The ip address should be retreived manually (fixed IP address) or with STUN. This address will only be used when the remote correspondant appears to be on an DIFFERENT LAN.

Parameters
excontexteXosip_t instance.
public_addressthe ip address.
portthe port for masquerading.

If set to NULL, then the local ip address will be guessed automatically (returns to default mode).

void eXosip_quit ( struct eXosip_t *  excontext)

#include <eX_setup.h>

Release ressource used by the eXtented oSIP library.

Parameters
excontexteXosip_t instance.
int eXosip_reset_transports ( struct eXosip_t *  excontext)

#include <eX_setup.h>

Reset transport sockets.

Parameters
excontexteXosip_t instance.
int eXosip_set_cbsip_message ( struct eXosip_t *  excontext,
CbSipCallback  cbsipCallback 
)

#include <eX_setup.h>

Set a callback to get sent and received SIP messages.

Parameters
excontexteXosip_t instance.
cbsipCallbackthe callback to retreive messages.
int eXosip_set_option ( struct eXosip_t *  excontext,
int  opt,
const void *  value 
)

#include <eX_setup.h>

Set eXosip options.

See eXosip_option for available options.

Parameters
excontexteXosip_t instance.
optoption to configure.
valuevalue for options.
int eXosip_set_socket ( struct eXosip_t *  excontext,
int  transport,
int  socket,
int  port 
)

#include <eX_setup.h>

Listen on a specified socket.

Parameters
excontexteXosip_t instance.
transportIPPROTO_UDP for udp. (soon to come: TCP/TLS?)
socketsocket to use for listening to UDP sip messages.
portthe listening port for masquerading.
void eXosip_set_user_agent ( struct eXosip_t *  excontext,
const char *  user_agent 
)

#include <eX_setup.h>

Set the SIP User-Agent: header string.

Parameters
excontexteXosip_t instance.
user_agentthe User-Agent header to insert in messages.
int eXosip_unlock ( struct eXosip_t *  excontext)

#include <eX_setup.h>

UnLock the eXtented oSIP library.

Parameters
excontexteXosip_t instance.
void eXosip_wakeup_event ( struct eXosip_t *  excontext)

#include <eX_setup.h>

Wake Up the eXosip_event_wait method.

Parameters
excontexteXosip_t instance.