\section{eXosip.h File Reference} \label{eXosip_8h}\index{eXosip.h@{eXosip.h}} eXosip API {\tt \#include $<$eXosip2/eX\_\-setup.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-register.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-call.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-options.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-subscribe.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-refer.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-message.h$>$}\par {\tt \#include $<$eXosip2/eX\_\-publish.h$>$}\par {\tt \#include $<$osipparser2/osip\_\-parser.h$>$}\par {\tt \#include $<$osipparser2/sdp\_\-message.h$>$}\par {\tt \#include $<$time.h$>$}\par \subsection*{Data Structures} \begin{CompactItemize} \item struct {\bf eXosip\_\-event} \end{CompactItemize} \subsection*{Typedefs} \begin{CompactItemize} \item typedef struct {\bf eXosip\_\-event} {\bf eXosip\_\-event\_\-t} \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf eXosip\_\-event\_\-type} \{ \par {\bf EXOSIP\_\-REGISTRATION\_\-NEW}, \par {\bf EXOSIP\_\-REGISTRATION\_\-SUCCESS}, \par {\bf EXOSIP\_\-REGISTRATION\_\-FAILURE}, \par {\bf EXOSIP\_\-REGISTRATION\_\-REFRESHED}, \par {\bf EXOSIP\_\-REGISTRATION\_\-TERMINATED}, \par {\bf EXOSIP\_\-CALL\_\-INVITE}, \par {\bf EXOSIP\_\-CALL\_\-REINVITE}, \par {\bf EXOSIP\_\-CALL\_\-NOANSWER}, \par {\bf EXOSIP\_\-CALL\_\-PROCEEDING}, \par {\bf EXOSIP\_\-CALL\_\-RINGING}, \par {\bf EXOSIP\_\-CALL\_\-ANSWERED}, \par {\bf EXOSIP\_\-CALL\_\-REDIRECTED}, \par {\bf EXOSIP\_\-CALL\_\-REQUESTFAILURE}, \par {\bf EXOSIP\_\-CALL\_\-SERVERFAILURE}, \par {\bf EXOSIP\_\-CALL\_\-GLOBALFAILURE}, \par {\bf EXOSIP\_\-CALL\_\-ACK}, \par {\bf EXOSIP\_\-CALL\_\-CANCELLED}, \par {\bf EXOSIP\_\-CALL\_\-TIMEOUT}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-NEW}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-PROCEEDING}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-ANSWERED}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-REDIRECTED}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-REQUESTFAILURE}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-SERVERFAILURE}, \par {\bf EXOSIP\_\-CALL\_\-MESSAGE\_\-GLOBALFAILURE}, \par {\bf EXOSIP\_\-CALL\_\-CLOSED}, \par {\bf EXOSIP\_\-CALL\_\-RELEASED}, \par {\bf EXOSIP\_\-MESSAGE\_\-NEW}, \par {\bf EXOSIP\_\-MESSAGE\_\-PROCEEDING}, \par {\bf EXOSIP\_\-MESSAGE\_\-ANSWERED}, \par {\bf EXOSIP\_\-MESSAGE\_\-REDIRECTED}, \par {\bf EXOSIP\_\-MESSAGE\_\-REQUESTFAILURE}, \par {\bf EXOSIP\_\-MESSAGE\_\-SERVERFAILURE}, \par {\bf EXOSIP\_\-MESSAGE\_\-GLOBALFAILURE}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-UPDATE}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-CLOSED}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-NOANSWER}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-PROCEEDING}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-ANSWERED}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-REDIRECTED}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-REQUESTFAILURE}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-SERVERFAILURE}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-GLOBALFAILURE}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-NOTIFY}, \par {\bf EXOSIP\_\-SUBSCRIPTION\_\-RELEASED}, \par {\bf EXOSIP\_\-IN\_\-SUBSCRIPTION\_\-NEW}, \par {\bf EXOSIP\_\-IN\_\-SUBSCRIPTION\_\-RELEASED}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-NOANSWER}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-PROCEEDING}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-ANSWERED}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-REDIRECTED}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-REQUESTFAILURE}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-SERVERFAILURE}, \par {\bf EXOSIP\_\-NOTIFICATION\_\-GLOBALFAILURE}, \par {\bf EXOSIP\_\-EVENT\_\-COUNT} \} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item int {\bf eXosip\_\-add\_\-authentication\_\-info} (const char $\ast$username, const char $\ast$userid, const char $\ast$passwd, const char $\ast$ha1, const char $\ast$realm) \item int {\bf eXosip\_\-clear\_\-authentication\_\-info} (void) \item int {\bf eXosip\_\-default\_\-action} ({\bf eXosip\_\-event\_\-t} $\ast$je) \item void {\bf eXosip\_\-automatic\_\-refresh} (void) \item void {\bf eXosip\_\-automatic\_\-action} (void) \item int {\bf eXosip\_\-insubscription\_\-automatic} ({\bf eXosip\_\-event\_\-t} $\ast$evt) \item int {\bf eXosip\_\-generate\_\-random} (char $\ast$buf, int buf\_\-size) \item sdp\_\-message\_\-t $\ast$ {\bf eXosip\_\-get\_\-remote\_\-sdp} (int did) \item sdp\_\-message\_\-t $\ast$ {\bf eXosip\_\-get\_\-local\_\-sdp} (int did) \item sdp\_\-message\_\-t $\ast$ {\bf eXosip\_\-get\_\-previous\_\-local\_\-sdp} (int did) \item sdp\_\-message\_\-t $\ast$ {\bf eXosip\_\-get\_\-remote\_\-sdp\_\-from\_\-tid} (int tid) \item sdp\_\-message\_\-t $\ast$ {\bf eXosip\_\-get\_\-local\_\-sdp\_\-from\_\-tid} (int tid) \item sdp\_\-message\_\-t $\ast$ {\bf eXosip\_\-get\_\-sdp\_\-info} (osip\_\-message\_\-t $\ast$message) \item sdp\_\-connection\_\-t $\ast$ {\bf eXosip\_\-get\_\-audio\_\-connection} (sdp\_\-message\_\-t $\ast$sdp) \item sdp\_\-media\_\-t $\ast$ {\bf eXosip\_\-get\_\-audio\_\-media} (sdp\_\-message\_\-t $\ast$sdp) \item sdp\_\-connection\_\-t $\ast$ {\bf eXosip\_\-get\_\-video\_\-connection} (sdp\_\-message\_\-t $\ast$sdp) \item sdp\_\-media\_\-t $\ast$ {\bf eXosip\_\-get\_\-video\_\-media} (sdp\_\-message\_\-t $\ast$sdp) \item sdp\_\-connection\_\-t $\ast$ {\bf eXosip\_\-get\_\-connection} (sdp\_\-message\_\-t $\ast$sdp, const char $\ast$media) \item sdp\_\-media\_\-t $\ast$ {\bf eXosip\_\-get\_\-media} (sdp\_\-message\_\-t $\ast$sdp, const char $\ast$media) \item void {\bf eXosip\_\-event\_\-free} ({\bf eXosip\_\-event\_\-t} $\ast$je) \item {\bf eXosip\_\-event\_\-t} $\ast$ {\bf eXosip\_\-event\_\-wait} (int tv\_\-s, int tv\_\-ms) \item {\bf eXosip\_\-event\_\-t} $\ast$ {\bf eXosip\_\-event\_\-get} (void) \item int {\bf eXosip\_\-event\_\-geteventsocket} (void) \end{CompactItemize} \label{_details} \subsection{Detailed Description} eXosip API eXosip is a high layer library for rfc3261: the SIP protocol. It offers a simple API to make it easy to use. eXosip2 offers great flexibility for implementing SIP endpoint like: \begin{itemize} \item SIP User-Agents \item SIP Voicemail or IVR \item SIP B2BUA \item any SIP server acting as an endpoint (music server...) \end{itemize} If you need to implement proxy or complex SIP applications, you should consider using osip instead. Here are the eXosip capabilities: \small\begin{alltt} REGISTER to handle registration. INVITE/BYE to start/stop VoIP sessions. INFO to send DTMF within a VoIP sessions. OPTIONS to simulate VoIP sessions. re-INVITE to modify VoIP sessions REFER/NOTIFY to transfer calls. MESSAGE to send Instant Message. SUBSCRIBE/NOTIFY to handle presence capabilities. any other request to handle what you want! \end{alltt} \normalsize \subsection{Typedef Documentation} \index{eXosip.h@{eXosip.h}!eXosip\_\-event\_\-t@{eXosip\_\-event\_\-t}} \index{eXosip\_\-event\_\-t@{eXosip\_\-event\_\-t}!eXosip.h@{eXosip.h}} \subsubsection[{eXosip\_\-event\_\-t}]{\setlength{\rightskip}{0pt plus 5cm}{\bf eXosip\_\-event\_\-t}}\label{eXosip_8h_a3882aaa91b8d81419bde71dc98caee7} Structure for event description.