---
name: "eXosip.h"
section: "3"
platform: "linux"
package: "libexosip2-dev"
version: "4.1.0-2.1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/eXosip.h"
---

# eXosip.h(3)

eXosip API

## NAME

eXosip.h - eXosip API

## SYNOPSIS

`#include <eXosip2/eX_setup.h>`\
 `#include <eXosip2/eX_register.h>`\
 `#include <eXosip2/eX_call.h>`\
 `#include <eXosip2/eX_options.h>`\
 `#include <eXosip2/eX_subscribe.h>`\
 `#include <eXosip2/eX_refer.h>`\
 `#include <eXosip2/eX_message.h>`\
 `#include <eXosip2/eX_publish.h>`\
 `#include <osipparser2/osip_parser.h>`\
 `#include <osipparser2/sdp_message.h>`\
 `#include <time.h>`\

### Data Structures

struct **eXosip\_event**\

### Typedefs

typedef struct **eXosip\_event** **eXosip\_event\_t**\

### Enumerations

enum **eXosip\_event\_type** { **EXOSIP\_REGISTRATION\_SUCCESS**, **EXOSIP\_REGISTRATION\_FAILURE**, **EXOSIP\_CALL\_INVITE**, **EXOSIP\_CALL\_REINVITE**, **EXOSIP\_CALL\_NOANSWER**, **EXOSIP\_CALL\_PROCEEDING**, **EXOSIP\_CALL\_RINGING**, **EXOSIP\_CALL\_ANSWERED**, **EXOSIP\_CALL\_REDIRECTED**, **EXOSIP\_CALL\_REQUESTFAILURE**, **EXOSIP\_CALL\_SERVERFAILURE**, **EXOSIP\_CALL\_GLOBALFAILURE**, **EXOSIP\_CALL\_ACK**, **EXOSIP\_CALL\_CANCELLED**, **EXOSIP\_CALL\_MESSAGE\_NEW**, **EXOSIP\_CALL\_MESSAGE\_PROCEEDING**, **EXOSIP\_CALL\_MESSAGE\_ANSWERED**, **EXOSIP\_CALL\_MESSAGE\_REDIRECTED**, **EXOSIP\_CALL\_MESSAGE\_REQUESTFAILURE**, **EXOSIP\_CALL\_MESSAGE\_SERVERFAILURE**, **EXOSIP\_CALL\_MESSAGE\_GLOBALFAILURE**, **EXOSIP\_CALL\_CLOSED**, **EXOSIP\_CALL\_RELEASED**, **EXOSIP\_MESSAGE\_NEW**, **EXOSIP\_MESSAGE\_PROCEEDING**, **EXOSIP\_MESSAGE\_ANSWERED**, **EXOSIP\_MESSAGE\_REDIRECTED**, **EXOSIP\_MESSAGE\_REQUESTFAILURE**, **EXOSIP\_MESSAGE\_SERVERFAILURE**, **EXOSIP\_MESSAGE\_GLOBALFAILURE**, **EXOSIP\_SUBSCRIPTION\_NOANSWER**, **EXOSIP\_SUBSCRIPTION\_PROCEEDING**, **EXOSIP\_SUBSCRIPTION\_ANSWERED**, **EXOSIP\_SUBSCRIPTION\_REDIRECTED**, **EXOSIP\_SUBSCRIPTION\_REQUESTFAILURE**, **EXOSIP\_SUBSCRIPTION\_SERVERFAILURE**, **EXOSIP\_SUBSCRIPTION\_GLOBALFAILURE**, **EXOSIP\_SUBSCRIPTION\_NOTIFY**, **EXOSIP\_IN\_SUBSCRIPTION\_NEW**, **EXOSIP\_NOTIFICATION\_NOANSWER**, **EXOSIP\_NOTIFICATION\_PROCEEDING**, **EXOSIP\_NOTIFICATION\_ANSWERED**, **EXOSIP\_NOTIFICATION\_REDIRECTED**, **EXOSIP\_NOTIFICATION\_REQUESTFAILURE**, **EXOSIP\_NOTIFICATION\_SERVERFAILURE**, **EXOSIP\_NOTIFICATION\_GLOBALFAILURE**, **EXOSIP\_EVENT\_COUNT** }\

### Functions

int **eXosip\_add\_authentication\_info** (struct eXosip\_t \*excontext, const char \*username, const char \*userid, const char \*passwd, const char \*ha1, const char \*realm)\
 int **eXosip\_remove\_authentication\_info** (struct eXosip\_t \*excontext, const char \*username, const char \*realm)\
 int **eXosip\_clear\_authentication\_info** (struct eXosip\_t \*excontext)\
 int **eXosip\_default\_action** (struct eXosip\_t \*excontext, **eXosip\_event\_t** \*je)\
 void **eXosip\_automatic\_refresh** (struct eXosip\_t \*excontext)\
 void **eXosip\_automatic\_action** (struct eXosip\_t \*excontext)\
 int **eXosip\_insubscription\_automatic** (struct eXosip\_t \*excontext, **eXosip\_event\_t** \*evt)\
 int **eXosip\_generate\_random** (char \*buf, int buf\_size)\
 sdp\_message\_t \* **eXosip\_get\_remote\_sdp** (struct eXosip\_t \*excontext, int did)\
 sdp\_message\_t \* **eXosip\_get\_local\_sdp** (struct eXosip\_t \*excontext, int did)\
 sdp\_message\_t \* **eXosip\_get\_previous\_local\_sdp** (struct eXosip\_t \*excontext, int did)\
 sdp\_message\_t \* **eXosip\_get\_remote\_sdp\_from\_tid** (struct eXosip\_t \*excontext, int tid)\
 sdp\_message\_t \* **eXosip\_get\_local\_sdp\_from\_tid** (struct eXosip\_t \*excontext, int tid)\
 sdp\_message\_t \* **eXosip\_get\_sdp\_info** (osip\_message\_t \*message)\
 sdp\_connection\_t \* **eXosip\_get\_audio\_connection** (sdp\_message\_t \*sdp)\
 sdp\_media\_t \* **eXosip\_get\_audio\_media** (sdp\_message\_t \*sdp)\
 sdp\_connection\_t \* **eXosip\_get\_video\_connection** (sdp\_message\_t \*sdp)\
 sdp\_media\_t \* **eXosip\_get\_video\_media** (sdp\_message\_t \*sdp)\
 sdp\_connection\_t \* **eXosip\_get\_connection** (sdp\_message\_t \*sdp, const char \*media)\
 sdp\_media\_t \* **eXosip\_get\_media** (sdp\_message\_t \*sdp, const char \*media)\
 void **eXosip\_event\_free** (**eXosip\_event\_t** \*je)\
 **eXosip\_event\_t** \* **eXosip\_event\_wait** (struct eXosip\_t \*excontext, int tv\_s, int tv\_ms)\
 **eXosip\_event\_t** \* **eXosip\_event\_get** (struct eXosip\_t \*excontext)\
 int **eXosip\_event\_geteventsocket** (struct eXosip\_t \*excontext)\

## 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:

- •

  SIP User-Agents

- •

  SIP Voicemail or IVR

- •

  SIP B2BUA

- •

  any SIP server acting as an endpoint (music server...)

If you need to implement proxy or complex SIP applications, you should consider using osip instead.

Here are the eXosip capabilities:

```
   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!
```

## Typedef Documentation

### eXosip\_event\_t

Structure for event description.

## Author

Generated automatically by Doxygen for libeXosip2 from the source code.
