Asterisk - The Open Source Telephony Project GIT-master-27fb039
Loading...
Searching...
No Matches
dundi-parser.h
Go to the documentation of this file.
1/*
2 * Distributed Universal Number Discovery (DUNDi)
3 *
4 * Copyright (C) 2004 - 2005, Digium Inc.
5 *
6 * Written by Mark Spencer <markster@digium.com>
7 *
8 * This program is Free Software distributed under the terms of
9 * of the GNU General Public License.
10 */
11
12#ifndef _DUNDI_PARSER_H
13#define _DUNDI_PARSER_H
14
15#include "asterisk/dundi.h"
16#include "asterisk/crypto.h"
17
18#define DUNDI_MAX_STACK 512
19#define DUNDI_MAX_ANSWERS 100
20
53
55 int pos;
56 unsigned char buf[8192];
57};
58
59/* Choose a different function for output */
60extern void dundi_set_output(void (*output)(const char *data));
61/* Choose a different function for errors */
62extern void dundi_set_error(void (*output)(const char *data));
63extern void dundi_showframe(struct dundi_hdr *fhi, int rx, struct ast_sockaddr *sin, int datalen);
64
65extern const char *dundi_ie2str(int ie);
66
67extern int dundi_ie_append_raw(struct dundi_ie_data *ied, unsigned char ie, void *data, int datalen);
68extern int dundi_ie_append_addr(struct dundi_ie_data *ied, unsigned char ie, struct sockaddr_in *sin);
69extern int dundi_ie_append_int(struct dundi_ie_data *ied, unsigned char ie, unsigned int value);
70extern int dundi_ie_append_short(struct dundi_ie_data *ied, unsigned char ie, unsigned short value);
71extern int dundi_ie_append_str(struct dundi_ie_data *ied, unsigned char ie, char *str);
72extern int dundi_ie_append_eid(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid);
73extern int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, char *desc);
74extern int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned short flags, char *data);
75extern int dundi_ie_append_answer(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid, unsigned char protocol, unsigned short flags, unsigned short weight, char *desc);
76extern int dundi_ie_append_encdata(struct dundi_ie_data *ied, unsigned char ie, unsigned char *iv, void *data, int datalen);
77extern int dundi_ie_append_byte(struct dundi_ie_data *ied, unsigned char ie, unsigned char dat);
78extern int dundi_ie_append(struct dundi_ie_data *ied, unsigned char ie);
79extern int dundi_parse_ies(struct dundi_ies *ies, unsigned char *data, int datalen);
80extern char *dundi_eid_to_str_short(char *s, int maxlen, dundi_eid *eid);
81extern int dundi_str_short_to_eid(dundi_eid *eid, const char *s);
82extern int dundi_eid_zero(dundi_eid *eid);
83extern char *dundi_flags2str(char *s, int maxlen, int flags);
84extern char *dundi_hint2str(char *s, int maxlen, int flags);
85#endif
char weight
const char * str
Definition app_jack.c:150
static const char desc[]
Definition cdr_radius.c:84
Provide cryptographic signature routines.
int dundi_ie_append_int(struct dundi_ie_data *ied, unsigned char ie, unsigned int value)
int dundi_ie_append_encdata(struct dundi_ie_data *ied, unsigned char ie, unsigned char *iv, void *data, int datalen)
char * dundi_flags2str(char *s, int maxlen, int flags)
int dundi_ie_append_raw(struct dundi_ie_data *ied, unsigned char ie, void *data, int datalen)
int dundi_str_short_to_eid(dundi_eid *eid, const char *s)
int dundi_ie_append_eid(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid)
int dundi_ie_append_byte(struct dundi_ie_data *ied, unsigned char ie, unsigned char dat)
int dundi_ie_append_short(struct dundi_ie_data *ied, unsigned char ie, unsigned short value)
int dundi_ie_append_addr(struct dundi_ie_data *ied, unsigned char ie, struct sockaddr_in *sin)
int dundi_ie_append(struct dundi_ie_data *ied, unsigned char ie)
int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, char *desc)
int dundi_parse_ies(struct dundi_ies *ies, unsigned char *data, int datalen)
#define DUNDI_MAX_STACK
void dundi_showframe(struct dundi_hdr *fhi, int rx, struct ast_sockaddr *sin, int datalen)
int dundi_ie_append_str(struct dundi_ie_data *ied, unsigned char ie, char *str)
char * dundi_hint2str(char *s, int maxlen, int flags)
char * dundi_eid_to_str_short(char *s, int maxlen, dundi_eid *eid)
int dundi_eid_zero(dundi_eid *eid)
#define DUNDI_MAX_ANSWERS
const char * dundi_ie2str(int ie)
int dundi_ie_append_answer(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid, unsigned char protocol, unsigned short flags, unsigned short weight, char *desc)
void dundi_set_error(void(*output)(const char *data))
void dundi_set_output(void(*output)(const char *data))
int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned short flags, char *data)
Distributed Universal Number Discovery (DUNDi) See also.
An Entity ID is essentially a MAC address, brief and unique.
Definition utils.h:853
Socket address structure.
Definition netsock2.h:97
unsigned char buf[8192]
struct dundi_answer * answers[DUNDI_MAX_ANSWERS+1]
char * causestr
char * q_org
dundi_eid * reqeid
dundi_eid * eids[DUNDI_MAX_STACK+1]
char * called_context
int eid_direct[DUNDI_MAX_STACK+1]
char * q_country
char * q_phone
char * q_locality
char * q_ipaddr
char * called_number
unsigned long keycrc32
unsigned char * encsharedkey
struct dundi_hint * hint
char * q_email
unsigned char * encsig
char * q_dept
char * q_stateprov
unsigned char * pubkey
struct dundi_encblock * encblock
int value
Definition syslog.c:37