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 <<A HREF="libs___ysig___yatesig_h.html">libs/ysig/yatesig.h</A>></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> <b><A HREF="#ref2">ISDNQ931Monitor</A></b> (const NamedList& params, const char* name = 0)
</LI>
<LI>virtual <b><A HREF="#ref3">~ISDNQ931Monitor</A></b> ()
</LI>
<LI>virtual bool <b><A HREF="#ref4">initialize</A></b> (const NamedList* config)
</LI>
<LI>virtual void <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 <b><A HREF="#ref6">idleTimeout</A></b> (ISDNLayer2* layer2)
</LI>
<LI>virtual void <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* <b><A HREF="#ref8">attach</A></b> (ISDNQ921Passive* q921, bool net)
</LI>
<LI>virtual SignallingCircuitGroup* <b><A HREF="#ref9">attach</A></b> (SignallingCircuitGroup* circuits, bool net)
</LI>
<LI>inline ISDNQ921Passive* <b><A HREF="#ref10">circuits</A></b> (bool net) const
</LI>
<LI>inline void <b><A HREF="#ref11">setDebug</A></b> (bool printMsg, bool extendedDebug)
</LI>
<LI>virtual void <b><A HREF="#ref12">cleanup</A></b> (const char* reason = "offline")
</LI>
<LI>void <b><A HREF="#ref13">terminateMonitor</A></b> (ISDNQ931CallMonitor* mon, const char* reason)
</LI>
</ul><h4>Protected Methods</h4><ul><LI>virtual void <b><A HREF="#ref14">destroyed</A></b> ()
</LI>
<LI>virtual void <b><A HREF="#ref15">timerTick</A></b> (const Time& when)
</LI>
<LI>bool <b><A HREF="#ref16">reserveCircuit</A></b> (unsigned int code, bool netInit,
SignallingCircuit** caller, SignallingCircuit** called)
</LI>
<LI>bool <b><A HREF="#ref17">releaseCircuit</A></b> (SignallingCircuit* circuit)
</LI>
<LI>void <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> <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> <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 <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 <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 <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 <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* <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* <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* <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 <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 <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 <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 <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 <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 <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 <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 <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>
|