Janus SIP plugin.
More...
#include "plugin.h"
#include <arpa/inet.h>
#include <net/if.h>
#include <jansson.h>
#include <sofia-sip/msg_header.h>
#include <sofia-sip/nua.h>
#include <sofia-sip/nua_tag.h>
#include <sofia-sip/sdp.h>
#include <sofia-sip/sip_header.h>
#include <sofia-sip/sip_status.h>
#include <sofia-sip/url.h>
#include <sofia-sip/tport_tag.h>
#include <sofia-sip/su_log.h>
#include <sofia-sip/sofia_features.h>
#include "../debug.h"
#include "../apierror.h"
#include "../config.h"
#include "../mutex.h"
#include "../record.h"
#include "../rtp.h"
#include "../rtpsrtp.h"
#include "../rtcp.h"
#include "../sdp-utils.h"
#include "../utils.h"
#include "../ip-utils.h"
|
enum | janus_sip_registration_status {
janus_sip_registration_status_disabled = -2
, janus_sip_registration_status_failed = -1
, janus_sip_registration_status_unregistered = 0
, janus_sip_registration_status_registering
,
janus_sip_registration_status_registered
, janus_sip_registration_status_unregistering
} |
|
enum | janus_sip_call_status {
janus_sip_call_status_idle = 0
, janus_sip_call_status_inviting
, janus_sip_call_status_invited
, janus_sip_call_status_incall
,
janus_sip_call_status_incall_reinviting
, janus_sip_call_status_incall_reinvited
, janus_sip_call_status_closing
} |
|
enum | janus_sip_secret_type { janus_sip_secret_type_plaintext = 1
, janus_sip_secret_type_hashed = 2
, janus_sip_secret_type_unknown
} |
|
|
janus_plugin * | create (void) |
|
int | janus_sip_init (janus_callbacks *callback, const char *config_path) |
|
void | janus_sip_destroy (void) |
|
int | janus_sip_get_api_compatibility (void) |
|
int | janus_sip_get_version (void) |
|
const char * | janus_sip_get_version_string (void) |
|
const char * | janus_sip_get_description (void) |
|
const char * | janus_sip_get_name (void) |
|
const char * | janus_sip_get_author (void) |
|
const char * | janus_sip_get_package (void) |
|
void | janus_sip_create_session (janus_plugin_session *handle, int *error) |
|
struct janus_plugin_result * | janus_sip_handle_message (janus_plugin_session *handle, char *transaction, json_t *message, json_t *jsep) |
|
void | janus_sip_setup_media (janus_plugin_session *handle) |
|
void | janus_sip_incoming_rtp (janus_plugin_session *handle, janus_plugin_rtp *packet) |
|
void | janus_sip_incoming_rtcp (janus_plugin_session *handle, janus_plugin_rtcp *packet) |
|
void | janus_sip_hangup_media (janus_plugin_session *handle) |
|
void | janus_sip_destroy_session (janus_plugin_session *handle, int *error) |
|
json_t * | janus_sip_query_session (janus_plugin_session *handle) |
|
gpointer | janus_sip_sofia_thread (gpointer user_data) |
|
void | janus_sip_sofia_callback (nua_event_t event, int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]) |
|
void | janus_sip_save_reason (sip_t const *sip, janus_sip_session *session) |
|
void | janus_sip_sdp_process (janus_sip_session *session, janus_sdp *sdp, gboolean answer, gboolean update, gboolean *changed) |
|
char * | janus_sip_sdp_manipulate (janus_sip_session *session, janus_sdp *sdp, gboolean answer) |
|
Janus SIP 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 SIP plugin documentation for more details.
Plugins
◆ JANUS_DEFAULT_REGISTER_TTL
#define JANUS_DEFAULT_REGISTER_TTL 3600 |
◆ JANUS_DEFAULT_SIP_TIMER_T1X64
#define JANUS_DEFAULT_SIP_TIMER_T1X64 32000 |
◆ JANUS_DEFAULT_SUBSCRIBE_TTL
#define JANUS_DEFAULT_SUBSCRIBE_TTL 3600 |
◆ JANUS_SIP_AUTHOR
#define JANUS_SIP_AUTHOR "Meetecho s.r.l." |
◆ JANUS_SIP_DESCRIPTION
#define JANUS_SIP_DESCRIPTION "This is a simple SIP plugin for Janus, allowing WebRTC peers to register at a SIP server and call SIP user agents through a Janus instance." |
◆ JANUS_SIP_ERROR_ALREADY_REGISTERED
#define JANUS_SIP_ERROR_ALREADY_REGISTERED 445 |
◆ JANUS_SIP_ERROR_HELPER_ERROR
#define JANUS_SIP_ERROR_HELPER_ERROR 453 |
◆ JANUS_SIP_ERROR_INVALID_ADDRESS
#define JANUS_SIP_ERROR_INVALID_ADDRESS 446 |
◆ JANUS_SIP_ERROR_INVALID_ELEMENT
#define JANUS_SIP_ERROR_INVALID_ELEMENT 444 |
◆ JANUS_SIP_ERROR_INVALID_JSON
#define JANUS_SIP_ERROR_INVALID_JSON 441 |
◆ JANUS_SIP_ERROR_INVALID_REQUEST
#define JANUS_SIP_ERROR_INVALID_REQUEST 442 |
◆ JANUS_SIP_ERROR_IO_ERROR
#define JANUS_SIP_ERROR_IO_ERROR 450 |
◆ JANUS_SIP_ERROR_LIBSOFIA_ERROR
#define JANUS_SIP_ERROR_LIBSOFIA_ERROR 449 |
◆ JANUS_SIP_ERROR_MISSING_ELEMENT
#define JANUS_SIP_ERROR_MISSING_ELEMENT 443 |
◆ JANUS_SIP_ERROR_MISSING_SDP
#define JANUS_SIP_ERROR_MISSING_SDP 448 |
◆ JANUS_SIP_ERROR_NO_MESSAGE
#define JANUS_SIP_ERROR_NO_MESSAGE 440 |
◆ JANUS_SIP_ERROR_NO_SUCH_CALLID
#define JANUS_SIP_ERROR_NO_SUCH_CALLID 454 |
◆ JANUS_SIP_ERROR_RECORDING_ERROR
#define JANUS_SIP_ERROR_RECORDING_ERROR 451 |
◆ JANUS_SIP_ERROR_TOO_STRICT
#define JANUS_SIP_ERROR_TOO_STRICT 452 |
◆ JANUS_SIP_ERROR_UNKNOWN_ERROR
#define JANUS_SIP_ERROR_UNKNOWN_ERROR 499 |
◆ JANUS_SIP_ERROR_WRONG_STATE
#define JANUS_SIP_ERROR_WRONG_STATE 447 |
◆ JANUS_SIP_NAME
#define JANUS_SIP_NAME "JANUS SIP plugin" |
◆ JANUS_SIP_PACKAGE
#define JANUS_SIP_PACKAGE "janus.plugin.sip" |
◆ JANUS_SIP_URI_MAXLEN
#define JANUS_SIP_URI_MAXLEN 1024 |
◆ JANUS_SIP_VERSION
#define JANUS_SIP_VERSION 9 |
◆ JANUS_SIP_VERSION_STRING
#define JANUS_SIP_VERSION_STRING "0.0.9" |
◆ NUA_HMAGIC_T
◆ NUA_MAGIC_T
◆ SU_ROOT_MAGIC_T
#define SU_ROOT_MAGIC_T ssip_t |
◆ janus_sip_account
typedef struct janus_sip_account janus_sip_account |
◆ janus_sip_dtmf
typedef struct janus_sip_dtmf janus_sip_dtmf |
◆ janus_sip_media
typedef struct janus_sip_media janus_sip_media |
◆ janus_sip_message
typedef struct janus_sip_message janus_sip_message |
◆ janus_sip_session
typedef struct janus_sip_session janus_sip_session |
◆ janus_sip_transfer
typedef struct janus_sip_transfer janus_sip_transfer |
◆ ssip_oper_t
◆ ssip_t
◆ janus_sip_call_status
Enumerator |
---|
janus_sip_call_status_idle | |
janus_sip_call_status_inviting | |
janus_sip_call_status_invited | |
janus_sip_call_status_incall | |
janus_sip_call_status_incall_reinviting | |
janus_sip_call_status_incall_reinvited | |
janus_sip_call_status_closing | |
◆ janus_sip_registration_status
Enumerator |
---|
janus_sip_registration_status_disabled | |
janus_sip_registration_status_failed | |
janus_sip_registration_status_unregistered | |
janus_sip_registration_status_registering | |
janus_sip_registration_status_registered | |
janus_sip_registration_status_unregistering | |
◆ janus_sip_secret_type
Enumerator |
---|
janus_sip_secret_type_plaintext | |
janus_sip_secret_type_hashed | |
janus_sip_secret_type_unknown | |
◆ create()
◆ janus_sip_create_session()
◆ janus_sip_destroy()
void janus_sip_destroy |
( |
void | | ) |
|
◆ janus_sip_destroy_session()
◆ janus_sip_get_api_compatibility()
int janus_sip_get_api_compatibility |
( |
void | | ) |
|
◆ janus_sip_get_author()
const char * janus_sip_get_author |
( |
void | | ) |
|
◆ janus_sip_get_description()
const char * janus_sip_get_description |
( |
void | | ) |
|
◆ janus_sip_get_name()
const char * janus_sip_get_name |
( |
void | | ) |
|
◆ janus_sip_get_package()
const char * janus_sip_get_package |
( |
void | | ) |
|
◆ janus_sip_get_version()
int janus_sip_get_version |
( |
void | | ) |
|
◆ janus_sip_get_version_string()
const char * janus_sip_get_version_string |
( |
void | | ) |
|
◆ janus_sip_handle_message()
◆ janus_sip_hangup_media()
◆ janus_sip_incoming_rtcp()
◆ janus_sip_incoming_rtp()
◆ janus_sip_init()
int janus_sip_init |
( |
janus_callbacks * | callback, |
|
|
const char * | config_path ) |
◆ janus_sip_query_session()
◆ janus_sip_save_reason()
◆ janus_sip_sdp_manipulate()
◆ janus_sip_sdp_process()
◆ janus_sip_setup_media()
◆ janus_sip_sofia_callback()
void janus_sip_sofia_callback |
( |
nua_event_t | event, |
|
|
int | status, |
|
|
char const * | phrase, |
|
|
nua_t * | nua, |
|
|
nua_magic_t * | magic, |
|
|
nua_handle_t * | nh, |
|
|
nua_hmagic_t * | hmagic, |
|
|
sip_t const * | sip, |
|
|
tagi_t | tags[] ) |
◆ janus_sip_sofia_thread()
gpointer janus_sip_sofia_thread |
( |
gpointer | user_data | ) |
|
◆ append
◆ call_id
◆ skip
◆ sofia_log
◆ started