File: TelEngine__ISDNQ931Monitor.html

package info (click to toggle)
yate 2.2.0-1~dfsg-1.1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 17,496 kB
  • ctags: 21,687
  • sloc: cpp: 126,248; ansic: 11,462; sh: 3,573; php: 3,229; python: 2,014; makefile: 1,504; perl: 465; awk: 8
file content (268 lines) | stat: -rw-r--r-- 16,593 bytes parent folder | download
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
<HTML>
<HEAD>
<TITLE>class ISDNQ931Monitor</TITLE>

<META NAME="Generator" CONTENT="KDOC ">
</HEAD>
<BODY bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000099" alink= "#ffffff">
<TABLE WIDTH="100%" BORDER="0">
<TR>
<TD>
	<TABLE BORDER="0">
		<TR><TD valign="top" align="left" cellspacing="10">
		<h1>class ISDNQ931Monitor</h1>
		</TD>
		<TD valign="top" align="right" colspan="1">ISDN Q.931 implementation on top of Q.921 of call controller monitor. <small><A HREF="#longdesc">More...</A></small></TD></TR>
	</TABLE>
	<HR>
	<TABLE BORDER="0">
		<TR><TH>Full name</TH><TD><code><A HREF="TelEngine.html">TelEngine</A>::ISDNQ931Monitor</code></TD></TR>
<TR><TH>Definition</TH><TD><code>#include &lt;<A HREF="libs___ysig___yatesig_h.html">libs/ysig/yatesig.h</A>&gt;</code></TD></TR>
<TR><TH>Inherits</TH><TD><i><A HREF="TelEngine__ISDNLayer3.html">TelEngine::ISDNLayer3</A></i> <small>[public ]</small>, <A HREF="TelEngine__SignallingCallControl.html">TelEngine::SignallingCallControl</A> <small>[public ]</small></TD></TR>
<TR><TH><A HREF="full-list-TelEngine__ISDNQ931Monitor.html">List of all Methods</A></TH></TR>
	</TABLE>
	</TD>
<TD align="right"><TABLE BORDER="0"><TR><TD><small><A HREF="index-long.html">Annotated List</A></small></TD></TR>
<TR><TD><small><A HREF="header-list.html">Files</A></small></TD></TR>
<TR><TD><small><A HREF="all-globals.html">Globals</A></small></TD></TR>
<TR><TD><small><A HREF="hier.html">Hierarchy</A></small></TD></TR>
<TR><TD><small><A HREF="index.html">Index</A></small></TD></TR>
</TABLE></TD></TR></TABLE>
<h4>Public Methods</h4><ul><LI>&nbsp;<b><A HREF="#ref2">ISDNQ931Monitor</A></b> (const NamedList& params, const char* name = 0) 
</LI>
<LI>virtual  &nbsp;<b><A HREF="#ref3">~ISDNQ931Monitor</A></b> () 
</LI>
<LI>virtual  bool &nbsp;<b><A HREF="#ref4">initialize</A></b> (const NamedList* config) 
</LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref5">dataLinkState</A></b> (<A HREF="#u_int8_t">u_int8_t</A> tei, bool cmd, bool value, ISDNLayer2* layer2) 
</LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref6">idleTimeout</A></b> (ISDNLayer2* layer2) 
</LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref7">receiveData</A></b> (const DataBlock& data, <A HREF="#u_int8_t">u_int8_t</A> tei, ISDNLayer2* layer2) 
</LI>
<LI>virtual  ISDNQ921Passive* &nbsp;<b><A HREF="#ref8">attach</A></b> (ISDNQ921Passive* q921, bool net) 
</LI>
<LI>virtual  SignallingCircuitGroup* &nbsp;<b><A HREF="#ref9">attach</A></b> (SignallingCircuitGroup* circuits, bool net) 
</LI>
<LI>inline ISDNQ921Passive* &nbsp;<b><A HREF="#ref10">circuits</A></b> (bool net)  const
</LI>
<LI>inline void &nbsp;<b><A HREF="#ref11">setDebug</A></b> (bool printMsg, bool extendedDebug) 
</LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref12">cleanup</A></b> (const char* reason = "offline") 
</LI>
<LI>void &nbsp;<b><A HREF="#ref13">terminateMonitor</A></b> (ISDNQ931CallMonitor* mon, const char* reason) 
</LI>
</ul><h4>Protected Methods</h4><ul><LI>virtual  void &nbsp;<b><A HREF="#ref14">destroyed</A></b> () 
</LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref15">timerTick</A></b> (const Time& when) 
</LI>
<LI>bool &nbsp;<b><A HREF="#ref16">reserveCircuit</A></b> (unsigned int code, bool netInit,
	SignallingCircuit** caller, SignallingCircuit** called) 
</LI>
<LI>bool &nbsp;<b><A HREF="#ref17">releaseCircuit</A></b> (SignallingCircuit* circuit) 
</LI>
<LI>void &nbsp;<b><A HREF="#ref18">processMsgRestart</A></b> (ISDNQ931Message* msg) 
</LI>
</ul><HR><H2><A NAME="longdesc">Detailed Description</A></H2><p>
 Q.931 ISDN Layer 3 implementation on top of a Layer 2. Manage Q.931 monitors
</p>
<A NAME="ISDNQ931Monitor"></A><A NAME="ref2"></A><table width="100%"><tr bgcolor="#eeeeee"><td>&nbsp;<strong>ISDNQ931Monitor</strong> (const NamedList& params, const char* name = 0)
<br></td><td align="right"><h3><strong>ISDNQ931Monitor</strong></h3></td></tr></table><p></p><p>
 Constructor
 Initialize this object and the component
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>params</i></TD><TD align="left" valign="top">Layer's parameters and parser settings
</TD></TR>
<TR><TD align="left" valign="top"><i>name</i></TD><TD align="left" valign="top">Name of this component
     </TD></TR>
</TABLE></P>
<A NAME="~ISDNQ931Monitor"></A><A NAME="ref3"></A><table width="100%"><tr bgcolor="#eeeeee"><td> &nbsp;<strong>~ISDNQ931Monitor</strong> ()
<br></td><td align="right"><h3><strong>~ISDNQ931Monitor</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Destructor
 Destroy all calls
     </p>
<A NAME="initialize"></A><A NAME="ref4"></A><table width="100%"><tr bgcolor="#eeeeee"><td> bool &nbsp;<strong>initialize</strong> (const NamedList* config)
<br></td><td align="right"><h3><strong>initialize</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Configure and initialize the Q.931 monitor and its interfaces
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>config</i></TD><TD align="left" valign="top">Optional configuration parameters override
</TD></TR>
</TABLE></P>
<p><b>Returns</b>: True if Q.931 monitor and both interfaces were initialized properly
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingComponent.html#initialize">SignallingComponent</A>.</p>
<A NAME="dataLinkState"></A><A NAME="ref5"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void &nbsp;<strong>dataLinkState</strong> (<A HREF="#u_int8_t">u_int8_t</A> tei, bool cmd, bool value, ISDNLayer2* layer2)
<br></td><td align="right"><h3><strong>dataLinkState</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Notification from layer 2 of data link set/release command or response
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>tei</i></TD><TD align="left" valign="top">The TEI of the notification
</TD></TR>
<TR><TD align="left" valign="top"><i>cmd</i></TD><TD align="left" valign="top">True if received a command, false if received a response
</TD></TR>
<TR><TD align="left" valign="top"><i>value</i></TD><TD align="left" valign="top">The value of the notification
	If 'cmd' is true (command), the value is true if a request to establish data link was received
   or false if received a request to release data link
	If 'cmd' is false (response), the value is the response
</TD></TR>
<TR><TD align="left" valign="top"><i>layer2</i></TD><TD align="left" valign="top">Pointer to the notifier
     </TD></TR>
</TABLE></P>
<p>Reimplemented from <A HREF="TelEngine__ISDNLayer3.html#dataLinkState">ISDNLayer3</A>.</p>
<A NAME="idleTimeout"></A><A NAME="ref6"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void &nbsp;<strong>idleTimeout</strong> (ISDNLayer2* layer2)
<br></td><td align="right"><h3><strong>idleTimeout</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Notification from layer 2 of data link idle timeout
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>layer2</i></TD><TD align="left" valign="top">Pointer to the notifier
     </TD></TR>
</TABLE></P>
<p>Reimplemented from <A HREF="TelEngine__ISDNLayer3.html#idleTimeout">ISDNLayer3</A>.</p>
<A NAME="receiveData"></A><A NAME="ref7"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void &nbsp;<strong>receiveData</strong> (const DataBlock& data, <A HREF="#u_int8_t">u_int8_t</A> tei, ISDNLayer2* layer2)
<br></td><td align="right"><h3><strong>receiveData</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Implements Q.921 DL-DATA and DL-UNIT DATA indication primitives
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>data</i></TD><TD align="left" valign="top">Received data
</TD></TR>
<TR><TD align="left" valign="top"><i>tei</i></TD><TD align="left" valign="top">The TEI of the Layer 2
</TD></TR>
<TR><TD align="left" valign="top"><i>layer2</i></TD><TD align="left" valign="top">Pointer to the sender
     </TD></TR>
</TABLE></P>
<p>Reimplemented from <A HREF="TelEngine__ISDNLayer3.html#receiveData">ISDNLayer3</A>.</p>
<A NAME="attach"></A><A NAME="ref8"></A><table width="100%"><tr bgcolor="#eeeeee"><td> ISDNQ921Passive* &nbsp;<strong>attach</strong> (ISDNQ921Passive* q921, bool net)
<br></td><td align="right"><h3><strong>attach</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Attach ISDN Q.921 pasive transport that monitors one side of the link
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>q921</i></TD><TD align="left" valign="top">Pointer to the monitor to attach
</TD></TR>
<TR><TD align="left" valign="top"><i>net</i></TD><TD align="left" valign="top">True if this is the network side of the data link, false for user (CPE) side
</TD></TR>
</TABLE></P>
<p><b>Returns</b>: Pointer to detached monitor or NULL
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingCallControl.html#attach">SignallingCallControl</A>.</p>
<A NAME="attach"></A><A NAME="ref9"></A><table width="100%"><tr bgcolor="#eeeeee"><td> SignallingCircuitGroup* &nbsp;<strong>attach</strong> (SignallingCircuitGroup* circuits, bool net)
<br></td><td align="right"><h3><strong>attach</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Attach a circuit group to this call controller
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>circuits</i></TD><TD align="left" valign="top">Pointer to the SignallingCircuitGroup to attach
</TD></TR>
<TR><TD align="left" valign="top"><i>net</i></TD><TD align="left" valign="top">True if this group belongs to the network side of the data link, false for user (CPE) side
</TD></TR>
</TABLE></P>
<p><b>Returns</b>: Pointer to the old group that was detached, NULL if none or no change
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingCallControl.html#attach">SignallingCallControl</A>.</p>
<A NAME="circuits"></A><A NAME="ref10"></A><table width="100%"><tr bgcolor="#eeeeee"><td>inline ISDNQ921Passive* &nbsp;<strong>circuits</strong> (bool net)
<br></td><td align="right"><h3><strong>circuits</strong></h3></td></tr></table><p> <small>[const]</small></p><p>
 Get a pointer to the NET or CPE circuit group
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>net</i></TD><TD align="left" valign="top">True to get the network side circuits, false for user (CPE) side
</TD></TR>
</TABLE></P>
<p><b>Returns</b>: Pointer to the circuit group requested, NULL if none attached
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingCallControl.html#circuits">SignallingCallControl</A>.</p>
<A NAME="setDebug"></A><A NAME="ref11"></A><table width="100%"><tr bgcolor="#eeeeee"><td>inline void &nbsp;<strong>setDebug</strong> (bool printMsg, bool extendedDebug)
<br></td><td align="right"><h3><strong>setDebug</strong></h3></td></tr></table><p></p><p>
 Set debug data of this call controller
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>printMsg</i></TD><TD align="left" valign="top">Enable/disable message printing on output
</TD></TR>
<TR><TD align="left" valign="top"><i>extendedDebug</i></TD><TD align="left" valign="top">Enable/disable hex data dump if print messages is enabled
     </TD></TR>
</TABLE></P>
<A NAME="cleanup"></A><A NAME="ref12"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void &nbsp;<strong>cleanup</strong> (const char* reason = "offline")
<br></td><td align="right"><h3><strong>cleanup</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p>
 Terminate all monitors
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>reason</i></TD><TD align="left" valign="top">Cleanup reason
     </TD></TR>
</TABLE></P>
<p>Reimplemented from <A HREF="TelEngine__SignallingCallControl.html#cleanup">SignallingCallControl</A>.</p>
<A NAME="terminateMonitor"></A><A NAME="ref13"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void &nbsp;<strong>terminateMonitor</strong> (ISDNQ931CallMonitor* mon, const char* reason)
<br></td><td align="right"><h3><strong>terminateMonitor</strong></h3></td></tr></table><p></p><p>
 Terminate all monitors or only one
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>mon</i></TD><TD align="left" valign="top">The monitor to terminate, 0 to terminate all
</TD></TR>
<TR><TD align="left" valign="top"><i>reason</i></TD><TD align="left" valign="top">The termination reason
     </TD></TR>
</TABLE></P>
<A NAME="destroyed"></A><A NAME="ref14"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void &nbsp;<strong>destroyed</strong> ()
<br></td><td align="right"><h3><strong>destroyed</strong></h3></td></tr></table><p> <small>[protected virtual]</small></p><p>
 Detach links. Disposes memory
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingComponent.html#destroyed">SignallingComponent</A>.</p>
<A NAME="timerTick"></A><A NAME="ref15"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void &nbsp;<strong>timerTick</strong> (const Time& when)
<br></td><td align="right"><h3><strong>timerTick</strong></h3></td></tr></table><p> <small>[protected virtual]</small></p><p>
 Method called periodically to check timeouts
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>when</i></TD><TD align="left" valign="top">Time to use as computing base for events and timeouts
     </TD></TR>
</TABLE></P>
<p>Reimplemented from <A HREF="TelEngine__SignallingComponent.html#timerTick">SignallingComponent</A>.</p>
<A NAME="reserveCircuit"></A><A NAME="ref16"></A><table width="100%"><tr bgcolor="#eeeeee"><td>bool &nbsp;<strong>reserveCircuit</strong> (unsigned int code, bool netInit,
	SignallingCircuit** caller, SignallingCircuit** called)
<br></td><td align="right"><h3><strong>reserveCircuit</strong></h3></td></tr></table><p> <small>[protected]</small></p><p>
 Reserve the same circuit code from both circuit groups
 This is an atomic operation: if one circuit fails to be reserved, both of them will fail
 Release both circuits on failure
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>code</i></TD><TD align="left" valign="top">The circuit code to reserve
</TD></TR>
<TR><TD align="left" valign="top"><i>netInit</i></TD><TD align="left" valign="top">True if the caller is from the network side of the link, false if it's from CPE side
</TD></TR>
<TR><TD align="left" valign="top"><i>caller</i></TD><TD align="left" valign="top">The destination caller circuit
</TD></TR>
<TR><TD align="left" valign="top"><i>called</i></TD><TD align="left" valign="top">The destination called circuit
</TD></TR>
</TABLE></P>
<p><b>Returns</b>: True on success
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingCallControl.html#reserveCircuit">SignallingCallControl</A>.</p>
<A NAME="releaseCircuit"></A><A NAME="ref17"></A><table width="100%"><tr bgcolor="#eeeeee"><td>bool &nbsp;<strong>releaseCircuit</strong> (SignallingCircuit* circuit)
<br></td><td align="right"><h3><strong>releaseCircuit</strong></h3></td></tr></table><p> <small>[protected]</small></p><p>
 Release a circuit
 This method is thread safe
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>circuit</i></TD><TD align="left" valign="top">The circuit to release
</TD></TR>
</TABLE></P>
<p><b>Returns</b>: True on success
     </p>
<p>Reimplemented from <A HREF="TelEngine__SignallingCallControl.html#releaseCircuit">SignallingCallControl</A>.</p>
<A NAME="processMsgRestart"></A><A NAME="ref18"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void &nbsp;<strong>processMsgRestart</strong> (ISDNQ931Message* msg)
<br></td><td align="right"><h3><strong>processMsgRestart</strong></h3></td></tr></table><p> <small>[protected]</small></p><p>
 Process a restart or restart acknoledge message
 Terminate the monitor having the circuit given in restart message
</p>
<p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5">
<TR><TD align="left" valign="top"><i>msg</i></TD><TD align="left" valign="top">The received message
     </TD></TR>
</TABLE></P>
<HR>
	<table>
	<tr><td><small>Generated by: paulc on bussard on Mon Mar  8 12:18:15 2010, using kdoc 2.0a54.</small></td></tr>
	</table>
</BODY>
</HTML>