diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-03-03 18:13:26 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-03-03 18:13:26 +0000 |
commit | 67da2f8263b4e9bb5522fa59b27e143381d69774 (patch) | |
tree | e69baf2b1594606e9ea2e80d26d691a10bd23831 /1.2-netsec/pbx/dundi-parser.h | |
parent | 187ac8fdb51443812933047136b96b5a532dd857 (diff) |
Creating tag for the release of asterisk-1.2.5
git-svn-id: http://svn.digium.com/svn/asterisk/tags/1.2.5@11747 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to '1.2-netsec/pbx/dundi-parser.h')
-rw-r--r-- | 1.2-netsec/pbx/dundi-parser.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/1.2-netsec/pbx/dundi-parser.h b/1.2-netsec/pbx/dundi-parser.h new file mode 100644 index 000000000..62bbf4384 --- /dev/null +++ b/1.2-netsec/pbx/dundi-parser.h @@ -0,0 +1,88 @@ +/* + * Distributed Universal Number Discovery (DUNDi) + * + * Copyright (C) 2004 - 2005, Digium Inc. + * + * Written by Mark Spencer <markster@digium.com> + * + * This program is Free Software distributed under the terms of + * of the GNU General Public License. + */ + +#ifndef _DUNDI_PARSER_H +#define _DUNDI_PARSER_H + +#include "asterisk/dundi.h" +#include "asterisk/aes.h" + +#define DUNDI_MAX_STACK 512 +#define DUNDI_MAX_ANSWERS 100 + +struct dundi_ies { + dundi_eid *eids[DUNDI_MAX_STACK + 1]; + int eid_direct[DUNDI_MAX_STACK + 1]; + dundi_eid *reqeid; + int eidcount; + char *called_context; + char *called_number; + struct dundi_answer *answers[DUNDI_MAX_ANSWERS + 1]; + struct dundi_hint *hint; + int anscount; + int ttl; + int version; + int expiration; + int unknowncmd; + unsigned char *pubkey; + int cause; + char *q_dept; + char *q_org; + char *q_locality; + char *q_stateprov; + char *q_country; + char *q_email; + char *q_phone; + char *q_ipaddr; + char *causestr; + unsigned char *encsharedkey; + unsigned char *encsig; + unsigned long keycrc32; + struct dundi_encblock *encblock; + int enclen; + int cbypass; +}; + +struct dundi_ie_data { + int pos; + unsigned char buf[8192]; +}; + +/* Choose a different function for output */ +extern void dundi_set_output(void (*output)(const char *data)); +/* Choose a different function for errors */ +extern void dundi_set_error(void (*output)(const char *data)); +extern void dundi_showframe(struct dundi_hdr *fhi, int rx, struct sockaddr_in *sin, int datalen); + +extern const char *dundi_ie2str(int ie); + +extern int dundi_ie_append_raw(struct dundi_ie_data *ied, unsigned char ie, void *data, int datalen); +extern int dundi_ie_append_addr(struct dundi_ie_data *ied, unsigned char ie, struct sockaddr_in *sin); +extern int dundi_ie_append_int(struct dundi_ie_data *ied, unsigned char ie, unsigned int value); +extern int dundi_ie_append_short(struct dundi_ie_data *ied, unsigned char ie, unsigned short value); +extern int dundi_ie_append_str(struct dundi_ie_data *ied, unsigned char ie, char *str); +extern int dundi_ie_append_eid(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid); +extern int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, char *desc); +extern int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned short flags, char *data); +extern 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); +extern int dundi_ie_append_encdata(struct dundi_ie_data *ied, unsigned char ie, unsigned char *iv, void *data, int datalen); +extern int dundi_ie_append_byte(struct dundi_ie_data *ied, unsigned char ie, unsigned char dat); +extern int dundi_ie_append(struct dundi_ie_data *ied, unsigned char ie); +extern int dundi_parse_ies(struct dundi_ies *ies, unsigned char *data, int datalen); +extern char *dundi_eid_to_str(char *s, int maxlen, dundi_eid *eid); +extern char *dundi_eid_to_str_short(char *s, int maxlen, dundi_eid *eid); +extern int dundi_str_to_eid(dundi_eid *eid, char *s); +extern int dundi_str_short_to_eid(dundi_eid *eid, char *s); +extern int dundi_eid_zero(dundi_eid *eid); +extern int dundi_eid_cmp(dundi_eid *eid1, dundi_eid *eid2); +extern char *dundi_flags2str(char *s, int maxlen, int flags); +extern char *dundi_hint2str(char *s, int maxlen, int flags); +#endif |