Add IAX provisioning support to Asterisk
[asterisk/asterisk.git] / channels / iax2-provision.h
1 /*
2  * IAX Provisioning Protocol 
3  *
4  * Sub-information elements
5  *
6  * Copyright (C) 2003, Digium
7  *
8  * Mark Spencer <markster@digium.com>
9  *
10  */
11
12 #include "iax2-parser.h"
13
14 #define PROV_IE_USEDHCP         1       /* Presense only */
15 #define PROV_IE_IPADDR          2       /* 32-bit */
16 #define PROV_IE_SUBNET          3       /* 32-bit */
17 #define PROV_IE_GATEWAY         4       /* 32-bit */
18 #define PROV_IE_PORTNO          5       /* 16-bit */
19 #define PROV_IE_USER            6       /* < 20 bytes */
20 #define PROV_IE_PASS            7       /* < 20 bytes */
21 #define PROV_IE_SERVERUSER      8       /* < 20 bytes */
22 #define PROV_IE_SERVERPASS      9       /* < 20 bytes */
23 #define PROV_IE_LANG            10      /* < 10 bytes */
24 #define PROV_IE_TOS                     11      /* 8-bits */
25 #define PROV_IE_FLAGS           12      /* 32-bits */
26 #define PROV_IE_FORMAT          13      /* 32-bits */
27 #define PROV_IE_AESKEY          14      /* 128-bits */
28 #define PROV_IE_SERVERIP        15      /* 32-bits */
29 #define PROV_IE_SERVERPORT      16      /* 16-bits */
30 #define PROV_IE_NEWAESKEY       17      /* 128-bits */
31 #define PROV_IE_PROVVER         18      /* 32-bits */
32 #define PROV_IE_ALTSERVER       19      /* 32-bits */
33
34 #define PROV_FLAG_REGISTER              (1 << 0)
35 #define PROV_FLAG_SECURE                (1 << 1)
36 #define PROV_FLAG_HEARTBEAT             (1 << 2)
37 #define PROV_FLAG_DEBUG                 (1 << 3)
38
39 extern char *iax_provflags2str(char *buf, int buflen, unsigned int flags);
40 extern int iax_provision_reload(void);
41 extern int iax_provision_build(struct iax_ie_data *provdata, unsigned int *signature, const char *template, int force);
42 extern int iax_provision_version(unsigned int *signature, const char *template, int force);
43 extern char *iax_prov_complete_template(char *line, char *word, int pos, int state);