Loading...
Searching...
No Matches
janus_voicemail.c File Reference
Plugins

Janus VoiceMail plugin. More...

`#include "plugin.h"`
`#include <jansson.h>`
`#include <sys/stat.h>`
`#include <sys/time.h>`
`#include <ogg/ogg.h>`
`#include "../debug.h"`
`#include "../apierror.h"`
`#include "../config.h"`
`#include "../mutex.h"`
`#include "../rtp.h"`
`#include "../utils.h"`
Include dependency graph for janus_voicemail.c:

## Data Structures

struct | janus_voicemail_message
struct | janus_voicemail_session

## Macros

#define | JANUS_VOICEMAIL_VERSION 7
#define | JANUS_VOICEMAIL_VERSION_STRING "0.0.7"
#define | JANUS_VOICEMAIL_DESCRIPTION "This is a plugin implementing a very simple VoiceMail service for Janus, recording Opus streams."
#define | JANUS_VOICEMAIL_NAME "JANUS VoiceMail plugin"
#define | JANUS_VOICEMAIL_AUTHOR "Meetecho s.r.l."
#define | JANUS_VOICEMAIL_PACKAGE "janus.plugin.voicemail"
#define | sdp_template
#define | JANUS_VOICEMAIL_ERROR_UNKNOWN_ERROR 499
#define | JANUS_VOICEMAIL_ERROR_NO_MESSAGE 460
#define | JANUS_VOICEMAIL_ERROR_INVALID_JSON 461
#define | JANUS_VOICEMAIL_ERROR_INVALID_REQUEST 462
#define | JANUS_VOICEMAIL_ERROR_MISSING_ELEMENT 463
#define | JANUS_VOICEMAIL_ERROR_INVALID_ELEMENT 464
#define | JANUS_VOICEMAIL_ERROR_ALREADY_RECORDING 465
#define | JANUS_VOICEMAIL_ERROR_IO_ERROR 466
#define | JANUS_VOICEMAIL_ERROR_LIBOGG_ERROR 467
#define | JANUS_VOICEMAIL_ERROR_INVALID_STATE 468

## Typedefs

typedef struct janus_voicemail_message | janus_voicemail_message
typedef struct janus_voicemail_session | janus_voicemail_session

## Functions

janus_plugin * | create (void)
int | janus_voicemail_init (janus_callbacks *callback, const char *config_path)
void | janus_voicemail_destroy (void)
int | janus_voicemail_get_api_compatibility (void)
int | janus_voicemail_get_version (void)
const char * | janus_voicemail_get_version_string (void)
const char * | janus_voicemail_get_description (void)
const char * | janus_voicemail_get_name (void)
const char * | janus_voicemail_get_author (void)
const char * | janus_voicemail_get_package (void)
void | janus_voicemail_create_session (janus_plugin_session *handle, int *error)
struct janus_plugin_result * | janus_voicemail_handle_message (janus_plugin_session *handle, char *transaction, json_t *message, json_t *jsep)
void | janus_voicemail_setup_media (janus_plugin_session *handle)
void | janus_voicemail_incoming_rtp (janus_plugin_session *handle, janus_plugin_rtp *packet)
void | janus_voicemail_incoming_rtcp (janus_plugin_session *handle, janus_plugin_rtcp *packet)
void | janus_voicemail_hangup_media (janus_plugin_session *handle)
void | janus_voicemail_destroy_session (janus_plugin_session *handle, int *error)
json_t * | janus_voicemail_query_session (janus_plugin_session *handle)
void | le32 (unsigned char *p, int v)
void | le16 (unsigned char *p, int v)
ogg_packet * | op_opushead (void)
ogg_packet * | op_opustags (void)
ogg_packet * | op_from_pkt (const unsigned char *pkt, int len)
void | op_free (ogg_packet *op)
int | ogg_write (janus_voicemail_session *session)
int | ogg_flush (janus_voicemail_session *session)

## Detailed Description

Janus VoiceMail plugin.

Author
  Lorenzo Miniero loren.nosp@m.zo@m.nosp@m.eetec.nosp@m.ho.c.nosp@m.om

Copyright
  GNU General Public License v3

Check the VoiceMail plugin documentation for more details.

Plugins

## Macro Definition Documentation

## JANUS_VOICEMAIL_AUTHOR

#define JANUS_VOICEMAIL_AUTHOR "Meetecho s.r.l."

## JANUS_VOICEMAIL_DESCRIPTION

#define JANUS_VOICEMAIL_DESCRIPTION "This is a plugin implementing a very simple VoiceMail service for Janus, recording Opus streams."

## JANUS_VOICEMAIL_ERROR_ALREADY_RECORDING

#define JANUS_VOICEMAIL_ERROR_ALREADY_RECORDING 465

## JANUS_VOICEMAIL_ERROR_INVALID_ELEMENT

#define JANUS_VOICEMAIL_ERROR_INVALID_ELEMENT 464

## JANUS_VOICEMAIL_ERROR_INVALID_JSON

#define JANUS_VOICEMAIL_ERROR_INVALID_JSON 461

## JANUS_VOICEMAIL_ERROR_INVALID_REQUEST

#define JANUS_VOICEMAIL_ERROR_INVALID_REQUEST 462

## JANUS_VOICEMAIL_ERROR_INVALID_STATE

#define JANUS_VOICEMAIL_ERROR_INVALID_STATE 468

## JANUS_VOICEMAIL_ERROR_IO_ERROR

#define JANUS_VOICEMAIL_ERROR_IO_ERROR 466

## JANUS_VOICEMAIL_ERROR_LIBOGG_ERROR

#define JANUS_VOICEMAIL_ERROR_LIBOGG_ERROR 467

## JANUS_VOICEMAIL_ERROR_MISSING_ELEMENT

#define JANUS_VOICEMAIL_ERROR_MISSING_ELEMENT 463

## JANUS_VOICEMAIL_ERROR_NO_MESSAGE

#define JANUS_VOICEMAIL_ERROR_NO_MESSAGE 460

## JANUS_VOICEMAIL_ERROR_UNKNOWN_ERROR

#define JANUS_VOICEMAIL_ERROR_UNKNOWN_ERROR 499

## JANUS_VOICEMAIL_NAME

#define JANUS_VOICEMAIL_NAME "JANUS VoiceMail plugin"

## JANUS_VOICEMAIL_PACKAGE

#define JANUS_VOICEMAIL_PACKAGE "janus.plugin.voicemail"

## JANUS_VOICEMAIL_VERSION

#define JANUS_VOICEMAIL_VERSION 7

## JANUS_VOICEMAIL_VERSION_STRING

#define JANUS_VOICEMAIL_VERSION_STRING "0.0.7"

## sdp_template

#define sdp_template

Value:
"v=0\r\n" \
"o=- %"SCNu64" %"SCNu64" IN IP4 127.0.0.1\r\n" /* We need current time here */ \
"s=VoiceMail %"SCNu64"\r\n" /* VoiceMail recording ID */ \
"t=0 0\r\n" \
"m=audio 1 RTP/SAVPF %d\r\n" /* Opus payload type */ \
"c=IN IP4 1.1.1.1\r\n" \
"a=rtpmap:%d opus/48000/2\r\n" /* Opus payload type */ \
"a=recvonly\r\n" /* This plugin doesn't send any frames */

## Typedef Documentation

## janus_voicemail_message

typedef struct janus_voicemail_message janus_voicemail_message

## janus_voicemail_session

typedef struct janus_voicemail_session janus_voicemail_session

## Function Documentation

## create()

janus_plugin * create | ( | void |  | ) |

## janus_voicemail_create_session()

void janus_voicemail_create_session | ( | janus_plugin_session * | handle,
|  | int * | error )

## janus_voicemail_destroy()

void janus_voicemail_destroy | ( | void |  | ) |

## janus_voicemail_destroy_session()

void janus_voicemail_destroy_session | ( | janus_plugin_session * | handle,
|  | int * | error )

## janus_voicemail_get_api_compatibility()

int janus_voicemail_get_api_compatibility | ( | void |  | ) |

## janus_voicemail_get_author()

const char * janus_voicemail_get_author | ( | void |  | ) |

## janus_voicemail_get_description()

const char * janus_voicemail_get_description | ( | void |  | ) |

## janus_voicemail_get_name()

const char * janus_voicemail_get_name | ( | void |  | ) |

## janus_voicemail_get_package()

const char * janus_voicemail_get_package | ( | void |  | ) |

## janus_voicemail_get_version()

int janus_voicemail_get_version | ( | void |  | ) |

## janus_voicemail_get_version_string()

const char * janus_voicemail_get_version_string | ( | void |  | ) |

## janus_voicemail_handle_message()

struct janus_plugin_result * janus_voicemail_handle_message | ( | janus_plugin_session * | handle,
|  | char * | transaction,
|  | json_t * | message,
|  | json_t * | jsep )

## janus_voicemail_hangup_media()

void janus_voicemail_hangup_media | ( | janus_plugin_session * | handle | ) |

## janus_voicemail_incoming_rtcp()

void janus_voicemail_incoming_rtcp | ( | janus_plugin_session * | handle,
|  | janus_plugin_rtcp * | packet )

## janus_voicemail_incoming_rtp()

void janus_voicemail_incoming_rtp | ( | janus_plugin_session * | handle,
|  | janus_plugin_rtp * | packet )

## janus_voicemail_init()

int janus_voicemail_init | ( | janus_callbacks * | callback,
|  | const char * | config_path )

## janus_voicemail_query_session()

json_t * janus_voicemail_query_session | ( | janus_plugin_session * | handle | ) |

## janus_voicemail_setup_media()

void janus_voicemail_setup_media | ( | janus_plugin_session * | handle | ) |

## le16()

void le16 | ( | unsigned char * | p,
|  | int | v )

## le32()

void le32 | ( | unsigned char * | p,
|  | int | v )

## ogg_flush()

int ogg_flush | ( | janus_voicemail_session * | session | ) |

## ogg_write()

int ogg_write | ( | janus_voicemail_session * | session | ) |

## op_free()

void op_free | ( | ogg_packet * | op | ) |

## op_from_pkt()

ogg_packet * op_from_pkt | ( | const unsigned char * | pkt,
|  | int | len )

## op_opushead()

ogg_packet * op_opushead | ( | void |  | ) |

## op_opustags()

ogg_packet * op_opustags | ( | void |  | ) |