hc
2023-08-30 862c27fc9920c83318c784bfdadf43a65df1ec8f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/* $Id: l3ni1.h,v 2.3.6.2 2001/09/23 22:24:50 kai Exp $
 *
 * NI1 D-channel protocol
 *
 * Author       Matt Henderson & Guy Ellis
 * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
 *
 * This software may be used and distributed according to the terms
 * of the GNU General Public License, incorporated herein by reference.
 *
 * 2000.6.6 Initial implementation of routines for US NI1
 * Layer 3 protocol based on the EURO/DSS1 D-channel protocol
 * driver written by Karsten Keil et al.  Thanks also for the
 * code provided by Ragnar Paulson.
 *
 */
 
#ifndef l3ni1_process
 
#define T302    15000
#define T303    4000
#define T304    30000
#define T305    30000
#define T308    4000
/* for layer 1 certification T309 < layer1 T3 (e.g. 4000) */
/* This makes some tests easier and quicker */
#define T309    40000
#define T310    30000
#define T313    4000
#define T318    4000
#define T319    4000
#define TSPID    5000 /* was 2000 - Guy Ellis */
 
/*
 * Message-Types
 */
 
#define MT_ALERTING        0x01
#define MT_CALL_PROCEEDING    0x02
#define MT_CONNECT        0x07
#define MT_CONNECT_ACKNOWLEDGE    0x0f
#define MT_PROGRESS        0x03
#define MT_SETUP        0x05
#define MT_SETUP_ACKNOWLEDGE    0x0d
#define MT_RESUME        0x26
#define MT_RESUME_ACKNOWLEDGE    0x2e
#define MT_RESUME_REJECT    0x22
#define MT_SUSPEND        0x25
#define MT_SUSPEND_ACKNOWLEDGE    0x2d
#define MT_SUSPEND_REJECT    0x21
#define MT_USER_INFORMATION    0x20
#define MT_DISCONNECT        0x45
#define MT_RELEASE        0x4d
#define MT_RELEASE_COMPLETE    0x5a
#define MT_RESTART        0x46
#define MT_RESTART_ACKNOWLEDGE    0x4e
#define MT_SEGMENT        0x60
#define MT_CONGESTION_CONTROL    0x79
#define MT_INFORMATION        0x7b
#define MT_FACILITY        0x62
#define MT_NOTIFY        0x6e
#define MT_STATUS        0x7d
#define MT_STATUS_ENQUIRY    0x75
#define MT_DL_ESTABLISHED    0xfe
 
#define IE_SEGMENT    0x00
#define IE_BEARER    0x04
#define IE_CAUSE    0x08
#define IE_CALL_ID    0x10
#define IE_CALL_STATE    0x14
#define IE_CHANNEL_ID    0x18
#define IE_FACILITY    0x1c
#define IE_PROGRESS    0x1e
#define IE_NET_FAC    0x20
#define IE_NOTIFY    0x27
#define IE_DISPLAY    0x28
#define IE_DATE        0x29
#define IE_KEYPAD    0x2c
#define IE_SIGNAL    0x34
#define IE_SPID        0x3a
#define IE_ENDPOINT_ID    0x3b
#define IE_INFORATE    0x40
#define IE_E2E_TDELAY    0x42
#define IE_TDELAY_SEL    0x43
#define IE_PACK_BINPARA    0x44
#define IE_PACK_WINSIZE    0x45
#define IE_PACK_SIZE    0x46
#define IE_CUG        0x47
#define    IE_REV_CHARGE    0x4a
#define IE_CONNECT_PN    0x4c
#define IE_CONNECT_SUB    0x4d
#define IE_CALLING_PN    0x6c
#define IE_CALLING_SUB    0x6d
#define IE_CALLED_PN    0x70
#define IE_CALLED_SUB    0x71
#define IE_REDIR_NR    0x74
#define IE_TRANS_SEL    0x78
#define IE_RESTART_IND    0x79
#define IE_LLC        0x7c
#define IE_HLC        0x7d
#define IE_USER_USER    0x7e
#define IE_ESCAPE    0x7f
#define IE_SHIFT    0x90
#define IE_MORE_DATA    0xa0
#define IE_COMPLETE    0xa1
#define IE_CONGESTION    0xb0
#define IE_REPEAT    0xd0
 
#define IE_MANDATORY    0x0100
/* mandatory not in every case */
#define IE_MANDATORY_1    0x0200
 
#define ERR_IE_COMPREHENSION     1
#define ERR_IE_UNRECOGNIZED    -1
#define ERR_IE_LENGTH        -2
#define ERR_IE_SEQUENCE        -3
 
#else /* only l3ni1_process */
 
/* l3ni1 specific data in l3 process */
typedef struct
{ unsigned char invoke_id; /* used invoke id in remote ops, 0 = not active */
   ulong ll_id; /* remebered ll id */
   u8 remote_operation; /* handled remote operation, 0 = not active */
   int proc; /* rememered procedure */
   ulong remote_result; /* result of remote operation for statcallb */
   char uus1_data[35]; /* data send during alerting or disconnect */
} ni1_proc_priv;
 
/* l3dni1 specific data in protocol stack */
typedef struct
{ unsigned char last_invoke_id; /* last used value for invoking */
   unsigned char invoke_used[32]; /* 256 bits for 256 values */
} ni1_stk_priv;
 
#endif /* only l3dni1_process */