Janus GelfEventHandler plugin. More...
#include "eventhandler.h"
#include <math.h>
#include "../debug.h"
#include "../config.h"
#include "../mutex.h"
#include "../utils.h"
#include "../events.h"
#include <netdb.h>
#include <errno.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include "../ip-utils.h"
Macros | |
#define | JANUS_GELFEVH_VERSION 1 |
#define | JANUS_GELFEVH_VERSION_STRING "0.0.1" |
#define | JANUS_GELFEVH_DESCRIPTION "This is event handler plugin for Janus, which forwards events via TCP/UDP to GELF server." |
#define | JANUS_GELFEVH_NAME "JANUS GelfEventHandler plugin" |
#define | JANUS_GELFEVH_AUTHOR "Mirko Brankovic <mirkobrankovic@gmail.com>" |
#define | JANUS_GELFEVH_PACKAGE "janus.eventhandler.gelfevh" |
#define | MAX_GELF_CHUNKS 128 |
#define | JANUS_GELFEVH_ERROR_INVALID_REQUEST 411 |
#define | JANUS_GELFEVH_ERROR_MISSING_ELEMENT 412 |
#define | JANUS_GELFEVH_ERROR_INVALID_ELEMENT 413 |
#define | JANUS_GELFEVH_ERROR_UNKNOWN_ERROR 499 |
Typedefs | |
typedef enum janus_gelfevh_socket_type | janus_gelfevh_socket_type |
Enumerations | |
enum | janus_gelfevh_socket_type { JANUS_GELFEVH_SOCKET_TYPE_TCP = 1 , JANUS_GELFEVH_SOCKET_TYPE_UDP = 2 } |
Functions | |
janus_eventhandler * | create (void) |
int | janus_gelfevh_init (const char *config_path) |
void | janus_gelfevh_destroy (void) |
int | janus_gelfevh_get_api_compatibility (void) |
int | janus_gelfevh_get_version (void) |
const char * | janus_gelfevh_get_version_string (void) |
const char * | janus_gelfevh_get_description (void) |
const char * | janus_gelfevh_get_name (void) |
const char * | janus_gelfevh_get_author (void) |
const char * | janus_gelfevh_get_package (void) |
void | janus_gelfevh_incoming_event (json_t *event) |
json_t * | janus_gelfevh_handle_request (json_t *request) |
Janus GelfEventHandler plugin.
This is a GELF event handler plugin for Janus, which is supposed to send json events to GELF (Graylog logger https://docs.graylog.org/en/3.2/pages/gelf.html). Necessary headers are prepended. For sending, you can use TCP which is not recommended in case there will be a lot of messages. There is also UDP support, but you need to limit the payload size with max_message_len and remember to leave room for 12 bytes for special headers. UDP messages will be chunked automatically. There is also compression available for UDP protocol, to save network bandwidth while using a bit more CPU. This is not available for TCP due to GELF limitations
#define JANUS_GELFEVH_AUTHOR "Mirko Brankovic <mirkobrankovic@gmail.com>" |
#define JANUS_GELFEVH_DESCRIPTION "This is event handler plugin for Janus, which forwards events via TCP/UDP to GELF server." |
#define JANUS_GELFEVH_ERROR_INVALID_ELEMENT 413 |
#define JANUS_GELFEVH_ERROR_INVALID_REQUEST 411 |
#define JANUS_GELFEVH_ERROR_MISSING_ELEMENT 412 |
#define JANUS_GELFEVH_ERROR_UNKNOWN_ERROR 499 |
#define JANUS_GELFEVH_NAME "JANUS GelfEventHandler plugin" |
#define JANUS_GELFEVH_PACKAGE "janus.eventhandler.gelfevh" |
#define JANUS_GELFEVH_VERSION 1 |
#define JANUS_GELFEVH_VERSION_STRING "0.0.1" |
#define MAX_GELF_CHUNKS 128 |
typedef enum janus_gelfevh_socket_type janus_gelfevh_socket_type |
janus_eventhandler * create | ( | void | ) |
void janus_gelfevh_destroy | ( | void | ) |
int janus_gelfevh_get_api_compatibility | ( | void | ) |
const char * janus_gelfevh_get_author | ( | void | ) |
const char * janus_gelfevh_get_description | ( | void | ) |
const char * janus_gelfevh_get_name | ( | void | ) |
const char * janus_gelfevh_get_package | ( | void | ) |
int janus_gelfevh_get_version | ( | void | ) |
const char * janus_gelfevh_get_version_string | ( | void | ) |
void janus_gelfevh_incoming_event | ( | json_t * | event | ) |
int janus_gelfevh_init | ( | const char * | config_path | ) |