Fix some aclocal warnings during autogen.sh
[obnox/wireshark/wip.git] / packet-iax2.h
1 /*
2  * Asterisk -- A telephony toolkit for Linux.
3  *
4  * Implementation of Inter-Asterisk eXchange
5  * 
6  * Copyright (C) 2003, Digium
7  *
8  * Mark Spencer <markster@linux-support.net>
9  *
10  * $Id: packet-iax2.h,v 1.1 2004/01/27 01:35:25 guy Exp $
11  *
12  * This program is free software, distributed under the terms of
13  * the GNU General Public License
14  */
15  
16 #ifndef _PACKET_IAX2_H
17 #define _PACKET_IAX2_H
18
19 /* Max version of IAX protocol we support */
20 #define IAX_PROTO_VERSION 2
21
22 #define IAX_MAX_CALLS 32768
23
24 #define IAX_FLAG_FULL           0x8000
25
26 #define IAX_FLAG_RETRANS        0x8000
27
28 #define IAX_FLAG_SC_LOG         0x80
29
30 #define IAX_MAX_SHIFT           0x1F
31
32 #define IAX_WINDOW                      64
33
34 #define AST_FRAME_DTMF      1       /* A DTMF digit, subclass is the digit */
35 #define AST_FRAME_VOICE     2       /* Voice data, subclass is AST_FORMAT_* */
36 #define AST_FRAME_VIDEO     3       /* Video frame, maybe?? :) */
37 #define AST_FRAME_CONTROL   4       /* A control frame, subclass is AST_CONTROL_* */
38 #define AST_FRAME_NULL      5       /* An empty, useless frame */
39 #define AST_FRAME_IAX       6       /* Inter Aterisk Exchange private frame type */
40 #define AST_FRAME_TEXT      7       /* Text messages */
41 #define AST_FRAME_IMAGE     8       /* Image Frames */
42 #define AST_FRAME_HTML      9       /* HTML Frames */
43
44 /* Subclass for AST_FRAME_IAX */
45 #define IAX_COMMAND_NEW         1
46 #define IAX_COMMAND_PING        2
47 #define IAX_COMMAND_PONG        3
48 #define IAX_COMMAND_ACK         4
49 #define IAX_COMMAND_HANGUP      5
50 #define IAX_COMMAND_REJECT      6
51 #define IAX_COMMAND_ACCEPT      7
52 #define IAX_COMMAND_AUTHREQ     8
53 #define IAX_COMMAND_AUTHREP     9
54 #define IAX_COMMAND_INVAL       10
55 #define IAX_COMMAND_LAGRQ       11
56 #define IAX_COMMAND_LAGRP       12
57 #define IAX_COMMAND_REGREQ      13      /* Registration request */
58 #define IAX_COMMAND_REGAUTH     14      /* Registration authentication required */
59 #define IAX_COMMAND_REGACK      15      /* Registration accepted */
60 #define IAX_COMMAND_REGREJ      16      /* Registration rejected */
61 #define IAX_COMMAND_REGREL      17      /* Force release of registration */
62 #define IAX_COMMAND_VNAK        18      /* If we receive voice before valid first voice frame, send this */
63 #define IAX_COMMAND_DPREQ       19      /* Request status of a dialplan entry */
64 #define IAX_COMMAND_DPREP       20      /* Request status of a dialplan entry */
65 #define IAX_COMMAND_DIAL        21      /* Request a dial on channel brought up TBD */
66 #define IAX_COMMAND_TXREQ       22      /* Transfer Request */
67 #define IAX_COMMAND_TXCNT       23      /* Transfer Connect */
68 #define IAX_COMMAND_TXACC       24      /* Transfer Accepted */
69 #define IAX_COMMAND_TXREADY     25      /* Transfer ready */
70 #define IAX_COMMAND_TXREL       26      /* Transfer release */
71 #define IAX_COMMAND_TXREJ       27      /* Transfer reject */
72 #define IAX_COMMAND_QUELCH      28      /* Stop audio/video transmission */
73 #define IAX_COMMAND_UNQUELCH 29 /* Resume audio/video transmission */
74 #define IAX_COMMAND_POKE    30  /* Like ping, but does not require an open connection */
75 #define IAX_COMMAND_PAGE        31      /* Paging description */
76 #define IAX_COMMAND_MWI 32      /* Stand-alone message waiting indicator */
77 #define IAX_COMMAND_UNSUPPORT   33      /* Unsupported message received */
78 #define IAX_COMMAND_TRANSFER    34      /* Request remote transfer */
79
80 #define IAX_DEFAULT_REG_EXPIRE  60      /* By default require re-registration once per minute */
81
82 #define IAX_LINGER_TIMEOUT              10 /* How long to wait before closing bridged call */
83
84 #define IAX_DEFAULT_PORTNO              4569
85
86 /* IAX Information elements */
87 #define IAX_IE_CALLED_NUMBER            1               /* Number/extension being called - string */
88 #define IAX_IE_CALLING_NUMBER           2               /* Calling number - string */
89 #define IAX_IE_CALLING_ANI                      3               /* Calling number ANI for billing  - string */
90 #define IAX_IE_CALLING_NAME                     4               /* Name of caller - string */
91 #define IAX_IE_CALLED_CONTEXT           5               /* Context for number - string */
92 #define IAX_IE_USERNAME                         6               /* Username (peer or user) for authentication - string */
93 #define IAX_IE_PASSWORD                         7               /* Password for authentication - string */
94 #define IAX_IE_CAPABILITY                       8               /* Actual codec capability - unsigned int */
95 #define IAX_IE_FORMAT                           9               /* Desired codec format - unsigned int */
96 #define IAX_IE_LANGUAGE                         10              /* Desired language - string */
97 #define IAX_IE_VERSION                          11              /* Protocol version - short */
98 #define IAX_IE_ADSICPE                          12              /* CPE ADSI capability - short */
99 #define IAX_IE_DNID                                     13              /* Originally dialed DNID - string */
100 #define IAX_IE_AUTHMETHODS                      14              /* Authentication method(s) - short */
101 #define IAX_IE_CHALLENGE                        15              /* Challenge data for MD5/RSA - string */
102 #define IAX_IE_MD5_RESULT                       16              /* MD5 challenge result - string */
103 #define IAX_IE_RSA_RESULT                       17              /* RSA challenge result - string */
104 #define IAX_IE_APPARENT_ADDR            18              /* Apparent address of peer - struct sockaddr_in */
105 #define IAX_IE_REFRESH                          19              /* When to refresh registration - short */
106 #define IAX_IE_DPSTATUS                         20              /* Dialplan status - short */
107 #define IAX_IE_CALLNO                           21              /* Call number of peer - short */
108 #define IAX_IE_CAUSE                            22              /* Cause - string */
109 #define IAX_IE_IAX_UNKNOWN                      23              /* Unknown IAX command - byte */
110 #define IAX_IE_MSGCOUNT                         24              /* How many messages waiting - short */
111 #define IAX_IE_AUTOANSWER                       25              /* Request auto-answering -- none */
112 #define IAX_IE_MUSICONHOLD                      26              /* Request musiconhold with QUELCH -- none or string */
113 #define IAX_IE_TRANSFERID                       27              /* Transfer Request Identifier -- int */
114 #define IAX_IE_RDNIS                            28              /* Referring DNIS -- string */
115
116 #define IAX_AUTH_PLAINTEXT                      (1 << 0)
117 #define IAX_AUTH_MD5                            (1 << 1)
118 #define IAX_AUTH_RSA                            (1 << 2)
119
120 #define IAX_META_TRUNK                          1               /* Trunk meta-message */
121 #define IAX_META_VIDEO                          2               /* Video frame */
122
123 #define IAX_DPSTATUS_EXISTS                     (1 << 0)
124 #define IAX_DPSTATUS_CANEXIST           (1 << 1)
125 #define IAX_DPSTATUS_NONEXISTANT        (1 << 2)
126 #define IAX_DPSTATUS_IGNOREPAT          (1 << 14)
127 #define IAX_DPSTATUS_MATCHMORE          (1 << 15)
128
129 #define AST_FORMAT_G723_1   (1 << 0)    /* G.723.1 compression */
130 #define AST_FORMAT_GSM      (1 << 1)    /* GSM compression */
131 #define AST_FORMAT_ULAW     (1 << 2)    /* Raw mu-law data (G.711) */
132 #define AST_FORMAT_ALAW     (1 << 3)    /* Raw A-law data (G.711) */
133 #define AST_FORMAT_MP3      (1 << 4)    /* MPEG-2 layer 3 */
134 #define AST_FORMAT_ADPCM    (1 << 5)    /* ADPCM (whose?) */
135 #define AST_FORMAT_SLINEAR  (1 << 6)    /* Raw 16-bit Signed Linear (8000 Hz) PCM */
136 #define AST_FORMAT_LPC10    (1 << 7)    /* LPC10, 180 samples/frame */
137 #define AST_FORMAT_G729A    (1 << 8)    /* G.729a Audio */
138
139 #endif