Asterisk - The Open Source Telephony Project  21.4.1
Data Structures | Macros | Functions | Variables
parser.c File Reference

Implementation of Inter-Asterisk eXchange Protocol, v 2. More...

#include "asterisk.h"
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "asterisk/frame.h"
#include "asterisk/utils.h"
#include "asterisk/unaligned.h"
#include "asterisk/config.h"
#include "asterisk/lock.h"
#include "asterisk/threadstorage.h"
#include "asterisk/netsock2.h"
#include "asterisk/format_cache.h"
#include "asterisk/format_compatibility.h"
#include "include/iax2.h"
#include "include/parser.h"
#include "include/provision.h"
#include "include/codec_pref.h"

Go to the source code of this file.

Data Structures

struct  iax2_ie
 
struct  iax_frame_list
 This is just so iax_frames, a list head struct for holding a list of iax_frame structures, is defined. More...
 
struct  iax_frames
 

Macros

#define FRAME_CACHE_MAX_SIZE   20
 

Functions

static void __init_frame_cache (void)
 A per-thread cache of iax_frame structures.
 
static void dump_addr (char *output, int maxlen, void *value, int len)
 
static void dump_byte (char *output, int maxlen, void *value, int len)
 
static void dump_datetime (char *output, int maxlen, void *value, int len)
 
static void dump_ies (unsigned char *iedata, int len)
 
static void dump_int (char *output, int maxlen, void *value, int len)
 
static void dump_ipaddr (char *output, int maxlen, void *value, int len)
 
static void dump_prefs (char *output, int maxlen, void *value, int len)
 
static void dump_prov (char *output, int maxlen, void *value, int len)
 
static void dump_prov_flags (char *output, int maxlen, void *value, int len)
 
static void dump_prov_ies (char *output, int maxlen, unsigned char *iedata, int len)
 
static void dump_samprate (char *output, int maxlen, void *value, int len)
 
static void dump_short (char *output, int maxlen, void *value, int len)
 
static void dump_string (char *output, int maxlen, void *value, int len)
 
static void dump_string_hex (char *output, int maxlen, void *value, int len)
 
static void dump_versioned_codec (char *output, int maxlen, void *value, int len)
 
static void frame_cache_cleanup (void *data)
 
void iax_frame_free (struct iax_frame *fr)
 
struct iax_frameiax_frame_new (int direction, int datalen, unsigned int cacheable)
 
void iax_frame_subclass2str (enum iax_frame_subclass subclass, char *str, size_t len)
 
void iax_frame_wrap (struct iax_frame *fr, struct ast_frame *f)
 
int iax_get_frames (void)
 
int iax_get_iframes (void)
 
int iax_get_oframes (void)
 
const char * iax_ie2str (int ie)
 
int iax_ie_append (struct iax_ie_data *ied, unsigned char ie)
 
int iax_ie_append_addr (struct iax_ie_data *ied, unsigned char ie, const struct ast_sockaddr *addr)
 
int iax_ie_append_byte (struct iax_ie_data *ied, unsigned char ie, unsigned char dat)
 
int iax_ie_append_int (struct iax_ie_data *ied, unsigned char ie, unsigned int value)
 
int iax_ie_append_raw (struct iax_ie_data *ied, unsigned char ie, const void *data, int datalen)
 
int iax_ie_append_short (struct iax_ie_data *ied, unsigned char ie, unsigned short value)
 
int iax_ie_append_str (struct iax_ie_data *ied, unsigned char ie, const char *str)
 
int iax_ie_append_versioned_uint64 (struct iax_ie_data *ied, unsigned char ie, unsigned char version, uint64_t value)
 
int iax_parse_ies (struct iax_ies *ies, unsigned char *data, int datalen)
 
void iax_set_error (void(*func)(const char *))
 
void iax_set_output (void(*func)(const char *))
 
void iax_showframe (struct iax_frame *f, struct ast_iax2_full_hdr *fhi, int rx, struct ast_sockaddr *addr, int datalen)
 
static void internalerror (const char *str)
 
static void internaloutput (const char *str)
 

Variables

static void(* errorf )(const char *str) = internalerror
 
static struct ast_threadstorage frame_cache = { .once = PTHREAD_ONCE_INIT , .key_init = __init_frame_cache , .custom_init = NULL , }
 
static int frames = 0
 
static int iframes = 0
 
static struct iax2_ie infoelts []
 
static int oframes = 0
 
static void(* outputf )(const char *str) = internaloutput
 
static const struct iax2_ie prov_ies []
 

Detailed Description

Implementation of Inter-Asterisk eXchange Protocol, v 2.

Author
Mark Spencer marks.nosp@m.ter@.nosp@m.digiu.nosp@m.m.co.nosp@m.m

Definition in file parser.c.