.TH "eXosip2_conf" 3 "Thu Dec 15 2016" "Version 4.1.0" "libeXosip2" \" -*- nroff -*- .ad l .nh .SH NAME eXosip2_conf \- eXosip2 configuration API .SS "Data Structures" .in +1c .ti -1c .RI "struct \fBeXosip_dns_cache\fP" .br .ti -1c .RI "struct \fBeXosip_tls_credentials_s\fP" .br .ti -1c .RI "struct \fBeXosip_tls_ctx_s\fP" .br .in -1c .SS "Macros" .in +1c .ti -1c .RI "#define \fBEXOSIP_OPT_UDP_KEEP_ALIVE\fP (EXOSIP_OPT_BASE_OPTION+1)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_UDP_LEARN_PORT\fP (EXOSIP_OPT_BASE_OPTION+2)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_USE_RPORT\fP (EXOSIP_OPT_BASE_OPTION+7)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_IPV4_FOR_GATEWAY\fP (EXOSIP_OPT_BASE_OPTION+8)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_ADD_DNS_CACHE\fP (EXOSIP_OPT_BASE_OPTION+9)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_DELETE_DNS_CACHE\fP (EXOSIP_OPT_BASE_OPTION+10)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_IPV6_FOR_GATEWAY\fP (EXOSIP_OPT_BASE_OPTION+12)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_ADD_ACCOUNT_INFO\fP (EXOSIP_OPT_BASE_OPTION+13)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_DNS_CAPABILITIES\fP (EXOSIP_OPT_BASE_OPTION+14)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_DSCP\fP (EXOSIP_OPT_BASE_OPTION+15)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_REGISTER_WITH_DATE\fP (EXOSIP_OPT_BASE_OPTION+16)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_HEADER_USER_AGENT\fP (EXOSIP_OPT_BASE_OPTION+17)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_ENABLE_DNS_CACHE\fP (EXOSIP_OPT_BASE_OPTION+18)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_ENABLE_AUTOANSWERBYE\fP (EXOSIP_OPT_BASE_OPTION+19)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_ENABLE_IPV6\fP (EXOSIP_OPT_BASE_OPTION+20)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_TLS_VERIFY_CERTIFICATE\fP (EXOSIP_OPT_BASE_OPTION+500)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_TLS_CERTIFICATES_INFO\fP (EXOSIP_OPT_BASE_OPTION+501)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_TLS_CLIENT_CERTIFICATE_NAME\fP (EXOSIP_OPT_BASE_OPTION+502)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_TLS_SERVER_CERTIFICATE_NAME\fP (EXOSIP_OPT_BASE_OPTION+503)" .br .ti -1c .RI "#define \fBEXOSIP_OPT_SET_TSC_SERVER\fP (EXOSIP_OPT_BASE_OPTION+1001)" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBeXosip_tls_ctx_error\fP { \fBTLS_OK\fP = 0, \fBTLS_ERR_NO_RAND\fP = -1, \fBTLS_ERR_NO_DH_PARAM\fP = -2, \fBTLS_ERR_NO_PW\fP = -3, \fBTLS_ERR_NO_ROOT_CA\fP = -4, \fBTLS_ERR_MISSING_AUTH_PART\fP = -5 }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "struct eXosip_t * \fBeXosip_malloc\fP (void)" .br .ti -1c .RI "int \fBeXosip_init\fP (struct eXosip_t *excontext)" .br .ti -1c .RI "void \fBeXosip_quit\fP (struct eXosip_t *excontext)" .br .ti -1c .RI "int \fBeXosip_lock\fP (struct eXosip_t *excontext)" .br .ti -1c .RI "int \fBeXosip_unlock\fP (struct eXosip_t *excontext)" .br .ti -1c .RI "int \fBeXosip_execute\fP (struct eXosip_t *excontext)" .br .ti -1c .RI "int \fBeXosip_set_option\fP (struct eXosip_t *excontext, int opt, const void *value)" .br .ti -1c .RI "struct osip_naptr * \fBeXosip_dnsutils_naptr\fP (struct eXosip_t *excontext, const char *domain, const char *protocol, const char *transport, int keep_in_cache)" .br .ti -1c .RI "int \fBeXosip_dnsutils_dns_process\fP (struct osip_naptr *output_record, int force)" .br .ti -1c .RI "int \fBeXosip_dnsutils_rotate_srv\fP (struct osip_srv_record *output_record)" .br .ti -1c .RI "int \fBeXosip_listen_addr\fP (struct eXosip_t *excontext, int transport, const char *addr, int port, int family, int secure)" .br .ti -1c .RI "int \fBeXosip_reset_transports\fP (struct eXosip_t *excontext)" .br .ti -1c .RI "int \fBeXosip_set_socket\fP (struct eXosip_t *excontext, int transport, int socket, int port)" .br .ti -1c .RI "void \fBeXosip_set_user_agent\fP (struct eXosip_t *excontext, const char *user_agent)" .br .ti -1c .RI "const char * \fBeXosip_get_version\fP (void)" .br .ti -1c .RI "int \fBeXosip_set_cbsip_message\fP (struct eXosip_t *excontext, CbSipCallback cbsipCallback)" .br .ti -1c .RI "void \fBeXosip_enable_ipv6\fP (int ipv6_enable)" .br .ti -1c .RI "void \fBeXosip_masquerade_contact\fP (struct eXosip_t *excontext, const char *public_address, int port)" .br .ti -1c .RI "int \fBeXosip_find_free_port\fP (struct eXosip_t *excontext, int free_port, int transport)" .br .in -1c .SH "Detailed Description" .PP .SH "Macro Definition Documentation" .PP .SS "#define EXOSIP_OPT_UDP_KEEP_ALIVE (EXOSIP_OPT_BASE_OPTION+1)" int *: interval for keep alive packets (UDP, TCP, TLS, DTLS) .SS "#define EXOSIP_OPT_UDP_LEARN_PORT (EXOSIP_OPT_BASE_OPTION+2)" int *: specific re-usage of 'rport' .SS "#define EXOSIP_OPT_USE_RPORT (EXOSIP_OPT_BASE_OPTION+7)" int *: enable or disable rport in via .SS "#define EXOSIP_OPT_SET_IPV4_FOR_GATEWAY (EXOSIP_OPT_BASE_OPTION+8)" char *: usually, this is the proxy address .SS "#define EXOSIP_OPT_ADD_DNS_CACHE (EXOSIP_OPT_BASE_OPTION+9)" struct \fBeXosip_dns_cache\fP *: force some cache entry to avoid DNS .SS "#define EXOSIP_OPT_DELETE_DNS_CACHE (EXOSIP_OPT_BASE_OPTION+10)" struct \fBeXosip_dns_cache\fP *: force removal of some cache entry to avoid DNS .SS "#define EXOSIP_OPT_SET_IPV6_FOR_GATEWAY (EXOSIP_OPT_BASE_OPTION+12)" char *: usually, this is the proxy address .SS "#define EXOSIP_OPT_ADD_ACCOUNT_INFO (EXOSIP_OPT_BASE_OPTION+13)" struct eXosip_account_info *: internal stuff .SS "#define EXOSIP_OPT_DNS_CAPABILITIES (EXOSIP_OPT_BASE_OPTION+14)" int *: 0 to disable, 2 to use NAPTR/SRV record .SS "#define EXOSIP_OPT_SET_DSCP (EXOSIP_OPT_BASE_OPTION+15)" int *: set a dscp value for SIP socket .SS "#define EXOSIP_OPT_REGISTER_WITH_DATE (EXOSIP_OPT_BASE_OPTION+16)" int *: enable usage of Date header in REGISTER .SS "#define EXOSIP_OPT_SET_HEADER_USER_AGENT (EXOSIP_OPT_BASE_OPTION+17)" char *: set the User-Agent header .SS "#define EXOSIP_OPT_ENABLE_DNS_CACHE (EXOSIP_OPT_BASE_OPTION+18)" int *: 0 to disable use of cache .SS "#define EXOSIP_OPT_ENABLE_AUTOANSWERBYE (EXOSIP_OPT_BASE_OPTION+19)" int *: 0 to disable automatic answer of BYE .SS "#define EXOSIP_OPT_ENABLE_IPV6 (EXOSIP_OPT_BASE_OPTION+20)" int *: 0 to disable -this is a per-eXosip_t parameter for using IPv6 DNS request .SS "#define EXOSIP_OPT_SET_TLS_VERIFY_CERTIFICATE (EXOSIP_OPT_BASE_OPTION+500)" int *: enable verification of certificate for TLS connection .SS "#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 .SS "#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 .SS "#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 .SS "#define EXOSIP_OPT_SET_TSC_SERVER (EXOSIP_OPT_BASE_OPTION+1001)" void*: set the tsc tunnel handle .SH "Enumeration Type Documentation" .PP .SS "enum \fBeXosip_tls_ctx_error\fP" An enumeration which describes the error which can occur while setting the eXosip_tls_ctx .PP \fBEnumerator\fP .in +1c .TP \fB\fITLS_OK \fP\fP yippieh, everything is fine :) .TP \fB\fITLS_ERR_NO_RAND \fP\fP no absolute path to the random file was specified .TP \fB\fITLS_ERR_NO_DH_PARAM \fP\fP no absolute path to the diifie hellman file was specified .TP \fB\fITLS_ERR_NO_PW \fP\fP no password was specified .TP \fB\fITLS_ERR_NO_ROOT_CA \fP\fP no absolute path to the rootCA file was specified .TP \fB\fITLS_ERR_MISSING_AUTH_PART \fP\fP something is missing: the private key or the certificate .SH "Function Documentation" .PP .SS "struct eXosip_t* eXosip_malloc (void)" Allocate an eXosip context\&. .PP \fBReturns:\fP .RS 4 a new allocated eXosip_t instance\&. .RE .PP .SS "int eXosip_init (struct eXosip_t * excontext)" Initiate the eXtented oSIP library\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .RE .PP .SS "void eXosip_quit (struct eXosip_t * excontext)" Release resource used by the eXtented oSIP library\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .RE .PP .SS "int eXosip_lock (struct eXosip_t * excontext)" Lock the eXtented oSIP library\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .RE .PP .SS "int eXosip_unlock (struct eXosip_t * excontext)" UnLock the eXtented oSIP library\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .RE .PP .SS "int eXosip_execute (struct eXosip_t * excontext)" Process (non-threaded mode ONLY) eXosip events\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .RE .PP .SS "int eXosip_set_option (struct eXosip_t * excontext, int opt, const void * value)" Set eXosip options\&. See eXosip_option for available options\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fIopt\fP option to configure\&. .br \fIvalue\fP value for options\&. .RE .PP .SS "struct osip_naptr* eXosip_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\&. Note that DNS results might not yet be available\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fIdomain\fP domain name for NAPTR record .br \fIprotocol\fP protocol to use ('SIP') .br \fItransport\fP transport to use ('UDP') .br \fIkeep_in_cache\fP keep result in cache if >0 .RE .PP .SS "int eXosip_dnsutils_dns_process (struct osip_naptr * output_record, int force)" Continue to process asynchronous DNS request (if implemented)\&. .PP \fBParameters:\fP .RS 4 \fIoutput_record\fP result structure\&. .br \fIforce\fP force waiting for final answer if >0 .RE .PP .SS "int eXosip_dnsutils_rotate_srv (struct osip_srv_record * output_record)" Rotate first SRV entry to last SRV entry\&. .PP \fBParameters:\fP .RS 4 \fIoutput_record\fP result structure\&. .RE .PP .SS "int eXosip_listen_addr (struct eXosip_t * excontext, int transport, const char * addr, int port, int family, int secure)" Listen on a specified socket\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fItransport\fP IPPROTO_UDP for udp\&. (soon to come: TCP/TLS?) .br \fIaddr\fP the address to bind (NULL for all interface) .br \fIport\fP the listening port\&. (0 for random port) .br \fIfamily\fP the IP family (AF_INET or AF_INET6)\&. .br \fIsecure\fP 0 for UDP or TCP, 1 for TLS (with TCP)\&. .RE .PP .SS "int eXosip_reset_transports (struct eXosip_t * excontext)" Reset transport sockets\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .RE .PP .SS "int eXosip_set_socket (struct eXosip_t * excontext, int transport, int socket, int port)" Listen on a specified socket\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fItransport\fP IPPROTO_UDP for udp\&. (soon to come: TCP/TLS?) .br \fIsocket\fP socket to use for listening to UDP sip messages\&. .br \fIport\fP the listening port for masquerading\&. .RE .PP .SS "void eXosip_set_user_agent (struct eXosip_t * excontext, const char * user_agent)" Set the SIP User-Agent: header string\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fIuser_agent\fP the User-Agent header to insert in messages\&. .RE .PP .SS "const char* eXosip_get_version (void)" Get the eXosip version as a sring .SS "int eXosip_set_cbsip_message (struct eXosip_t * excontext, CbSipCallback cbsipCallback)" Set a callback to get sent and received SIP messages\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fIcbsipCallback\fP the callback to retreive messages\&. .RE .PP .SS "void eXosip_enable_ipv6 (int ipv6_enable)" Use IPv6 instead of IPv4\&. (global setting) .PP DEPRECATED: you MUST use EXOSIP_OPT_ENABLE_IPV6 to configure each eXosip_t independently\&. .PP \fBTHIS CODE DOES NOTHING, REPLACE WITH\fP .PP eXosip_set_option(excontext, EXOSIP_OPT_ENABLE_IPV6, &val); .PP \fBParameters:\fP .RS 4 \fIipv6_enable\fP This parameter should be set to 1 to enable IPv6 mode\&. .RE .PP .SS "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\&. 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\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fIpublic_address\fP the ip address\&. .br \fIport\fP the port for masquerading\&. .RE .PP If set to NULL, then the local ip address will be guessed automatically (returns to default mode)\&. .SS "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\&. .PP \fBParameters:\fP .RS 4 \fIexcontext\fP eXosip_t instance\&. .br \fIfree_port\fP initial port for search\&. .br \fItransport\fP IPPROTO_UDP or IPPROTO_TCP protocol\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for libeXosip2 from the source code\&.