<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Yate: ISDNLayer2 Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceTelEngine.html">TelEngine</a>::<a class="el" href="classTelEngine_1_1ISDNLayer2.html">ISDNLayer2</a> </div> </div> <div class="contents"> <h1>ISDNLayer2 Class Reference</h1><!-- doxytag: class="TelEngine::ISDNLayer2" --><!-- doxytag: inherits="TelEngine::SignallingComponent" -->Abstract ISDN layer 2 (Q.921) message transport. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yatesig_8h-source.html">yatesig.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for ISDNLayer2:</div> <div class="dynsection"> <p><center><img src="classTelEngine_1_1ISDNLayer2.png" usemap="#ISDNLayer2_map" border="0" alt=""></center> <map name="ISDNLayer2_map"> <area href="classTelEngine_1_1SignallingComponent.html" alt="SignallingComponent" shape="rect" coords="140,56,270,80"> <area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="70,0,200,24"> <area href="classTelEngine_1_1DebugEnabler.html" alt="DebugEnabler" shape="rect" coords="210,0,340,24"> <area href="classTelEngine_1_1ISDNIUA.html" alt="ISDNIUA" shape="rect" coords="0,168,130,192"> <area href="classTelEngine_1_1ISDNQ921.html" alt="ISDNQ921" shape="rect" coords="140,168,270,192"> <area href="classTelEngine_1_1ISDNQ921Pasive.html" alt="ISDNQ921Pasive" shape="rect" coords="280,168,410,192"> </map> </div> <p> <a href="classTelEngine_1_1ISDNLayer2-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> { <b>Released</b>, <b>WaitEstablish</b>, <b>Established</b>, <b>WaitRelease</b> }</td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#54512f80426b89f92a612049b7a56112">~ISDNLayer2</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#3804c9648e6d1325751536cca350f2bf">state</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#45f12e40fcdd3311bdc8ef48543f8ee6">network</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#eee5ca456ef4637c3382bb2322da63d0">detectType</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#df7d32712d59039b8bb0197fd3213741">sapi</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#096c806d6454ac81799d96095b50cd7b">tei</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#cf605cd4e608f2c28c7948ca0f438712">maxUserData</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#b965a9c05ff1b169fe7ca33108f0a098">teiAssigned</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#2b72208ac3f1f65fd83e765da21ee0cf">allowUnack</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#30ccbb01d4d93184a25853182fceff1f">autoRestart</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5f90db9a745acf7a72873f31b403594f">multipleFrame</a> (bool establish, bool force)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#f3a7de973e9a72158dd243d398783574">sendData</a> (const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &data, bool ack)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#8f94dc33a3804ab30f2d2289ccd0494a">cleanup</a> ()=0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5f193c8ad439c312c17acad5bbd4f1a6">attach</a> (<a class="el" href="classTelEngine_1_1ISDNLayer3.html">ISDNLayer3</a> *layer3)</td></tr> <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#a0b73adfca93f0ad7aefe8ad9291a36e">stateName</a> (<a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> s)</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#97a8951aea14a696097f892a6ab493ee">ISDNLayer2</a> (const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &params, const char *name=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#a0601ea7b5f42709d07f18d700ba02a2">multipleFrameEstablished</a> (bool confirm, bool timeout)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#05ffea7c1574d0a231cc64859616ade9">multipleFrameReleased</a> (bool confirm, bool timeout)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#8890b5d45b271c84ed777f1e2b2f8cdd">dataLinkState</a> (bool cmd, bool value)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#faecd115b9979ef6e9243cd79271b2aa">idleTimeout</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#f65e68d4cd1a47f5b759331706afe82e">receiveData</a> (const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &data, bool ack)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#0eab329636564af2458323c3c1e96116">teiAssigned</a> (bool status)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#1577509118f887e9718396d2e91d0dcd">changeState</a> (<a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> newState)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#58229d663a9af8af6375075100361fac">changeType</a> ()</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Abstract ISDN layer 2 (Q.921) message transport. <p> An interface to a Layer 2 (Q.921) ISDN message transport <hr><h2>Member Enumeration Documentation</h2> <a class="anchor" name="5d74787dedbc4e11c1ab15bf487e61f8"></a><!-- doxytag: member="TelEngine::ISDNLayer2::State" ref="5d74787dedbc4e11c1ab15bf487e61f8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Layer states if it has a TEI assigned </div> </div><p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="54512f80426b89f92a612049b7a56112"></a><!-- doxytag: member="TelEngine::ISDNLayer2::~ISDNLayer2" ref="54512f80426b89f92a612049b7a56112" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1ISDNLayer2.html">ISDNLayer2</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor </div> </div><p> <a class="anchor" name="97a8951aea14a696097f892a6ab493ee"></a><!-- doxytag: member="TelEngine::ISDNLayer2::ISDNLayer2" ref="97a8951aea14a696097f892a6ab493ee" args="(const NamedList &params, const char *name=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1ISDNLayer2.html">ISDNLayer2</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor Initialize this interface and the component <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>Layer's parameters </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Optional name of the component </td></tr> </table> </dl> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="2b72208ac3f1f65fd83e765da21ee0cf"></a><!-- doxytag: member="TelEngine::ISDNLayer2::allowUnack" ref="2b72208ac3f1f65fd83e765da21ee0cf" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool allowUnack </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if unacknoledged data is allowed to pass through this interface <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if unacknoledged data is allowed to pass through this interface </dd></dl> </div> </div><p> <a class="anchor" name="5f193c8ad439c312c17acad5bbd4f1a6"></a><!-- doxytag: member="TelEngine::ISDNLayer2::attach" ref="5f193c8ad439c312c17acad5bbd4f1a6" args="(ISDNLayer3 *layer3)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void attach </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1ISDNLayer3.html">ISDNLayer3</a> * </td> <td class="paramname"> <em>layer3</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Attach an ISDN Q.931 Layer 3 if the given parameter is different from the one we have Cleanup the object before ataching the new Layer 3 This method is thread safe <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>layer3</em> </td><td>Pointer to the Q.931 Layer 3 to attach </td></tr> </table> </dl> <p>Referenced by <a class="el" href="yatesig_8h-source.html#l06348">ISDNQ921Pasive::destruct()</a>, and <a class="el" href="yatesig_8h-source.html#l06176">ISDNQ921::destruct()</a>.</p> </div> </div><p> <a class="anchor" name="30ccbb01d4d93184a25853182fceff1f"></a><!-- doxytag: member="TelEngine::ISDNLayer2::autoRestart" ref="30ccbb01d4d93184a25853182fceff1f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool autoRestart </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if this interface will automatically re-establish when released <dl class="return" compact><dt><b>Returns:</b></dt><dd>The auto restart flag </dd></dl> </div> </div><p> <a class="anchor" name="1577509118f887e9718396d2e91d0dcd"></a><!-- doxytag: member="TelEngine::ISDNLayer2::changeState" ref="1577509118f887e9718396d2e91d0dcd" args="(State newState)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void changeState </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> </td> <td class="paramname"> <em>newState</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the state Descendants are responsable for multiple frame status management <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>newState</em> </td><td>The new state </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="58229d663a9af8af6375075100361fac"></a><!-- doxytag: member="TelEngine::ISDNLayer2::changeType" ref="58229d663a9af8af6375075100361fac" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool changeType </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Change the interface type <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if interface type changed </dd></dl> </div> </div><p> <a class="anchor" name="8f94dc33a3804ab30f2d2289ccd0494a"></a><!-- doxytag: member="TelEngine::ISDNLayer2::cleanup" ref="8f94dc33a3804ab30f2d2289ccd0494a" args="()=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void cleanup </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Emergency release. Descendants must implement this method to cleanup/reset data <p>Implemented in <a class="el" href="classTelEngine_1_1ISDNQ921.html#09f4fe805fa9a54d4d68c5b29c1502e1">ISDNQ921</a>, and <a class="el" href="classTelEngine_1_1ISDNQ921Pasive.html#09f4fe805fa9a54d4d68c5b29c1502e1">ISDNQ921Pasive</a>.</p> </div> </div><p> <a class="anchor" name="8890b5d45b271c84ed777f1e2b2f8cdd"></a><!-- doxytag: member="TelEngine::ISDNLayer2::dataLinkState" ref="8890b5d45b271c84ed777f1e2b2f8cdd" args="(bool cmd, bool value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dataLinkState </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>cmd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Notify layer 3 of data link set/release command or response Used for stateless layer 2 <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cmd</em> </td><td>True if received a command, false if received a response </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>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> </table> </dl> </div> </div><p> <a class="anchor" name="eee5ca456ef4637c3382bb2322da63d0"></a><!-- doxytag: member="TelEngine::ISDNLayer2::detectType" ref="eee5ca456ef4637c3382bb2322da63d0" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool detectType </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if this interface should change its type <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if type change is allowed </dd></dl> </div> </div><p> <a class="anchor" name="faecd115b9979ef6e9243cd79271b2aa"></a><!-- doxytag: member="TelEngine::ISDNLayer2::idleTimeout" ref="faecd115b9979ef6e9243cd79271b2aa" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void idleTimeout </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Notify layer 3 of data link idle timeout Used for stateless layer 2 </div> </div><p> <a class="anchor" name="cf605cd4e608f2c28c7948ca0f438712"></a><!-- doxytag: member="TelEngine::ISDNLayer2::maxUserData" ref="cf605cd4e608f2c28c7948ca0f438712" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">u_int32_t maxUserData </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the maximum length of user data transported through this layer <dl class="return" compact><dt><b>Returns:</b></dt><dd>The maximum length of user data transported through this layer </dd></dl> </div> </div><p> <a class="anchor" name="5f90db9a745acf7a72873f31b403594f"></a><!-- doxytag: member="TelEngine::ISDNLayer2::multipleFrame" ref="5f90db9a745acf7a72873f31b403594f" args="(bool establish, bool force)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool multipleFrame </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>establish</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>force</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Implements Q.921 DL-ESTABLISH and DL-RELEASE request primitives Descendants must implement this method to fullfill the request <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>establish</em> </td><td>True to establish. False to release </td></tr> <tr><td valign="top"></td><td valign="top"><em>force</em> </td><td>True to establish even if we already are in this mode. This parameter is ignored if establish is false </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the request was accepted </dd></dl> <p>Reimplemented in <a class="el" href="classTelEngine_1_1ISDNQ921.html#5f90db9a745acf7a72873f31b403594f">ISDNQ921</a>.</p> </div> </div><p> <a class="anchor" name="a0601ea7b5f42709d07f18d700ba02a2"></a><!-- doxytag: member="TelEngine::ISDNLayer2::multipleFrameEstablished" ref="a0601ea7b5f42709d07f18d700ba02a2" args="(bool confirm, bool timeout)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void multipleFrameEstablished </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>confirm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>timeout</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Implements Q.921 DL-ESTABLISH indication/confirmation primitive of 'multiple frame acknoledged' mode established <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>confirm</em> </td><td>True if this is a confirmation of a previous request. False if it is an indication of state change on remote request </td></tr> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </td><td>True if the reason is a timeout. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="05ffea7c1574d0a231cc64859616ade9"></a><!-- doxytag: member="TelEngine::ISDNLayer2::multipleFrameReleased" ref="05ffea7c1574d0a231cc64859616ade9" args="(bool confirm, bool timeout)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void multipleFrameReleased </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>confirm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>timeout</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Implements Q.921 DL-RELEASE indication/confirmation primitive of 'multiple frame acknoledged' mode released <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>confirm</em> </td><td>True if this is a confirmation of a previous request. False if it is an indication of state change on remote request </td></tr> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </td><td>True if the reason is a timeout. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="45f12e40fcdd3311bdc8ef48543f8ee6"></a><!-- doxytag: member="TelEngine::ISDNLayer2::network" ref="45f12e40fcdd3311bdc8ef48543f8ee6" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool network </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if this interface is the network or CPE (user) side of the link <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if this interface is the network side of the link </dd></dl> </div> </div><p> <a class="anchor" name="f65e68d4cd1a47f5b759331706afe82e"></a><!-- doxytag: member="TelEngine::ISDNLayer2::receiveData" ref="f65e68d4cd1a47f5b759331706afe82e" args="(const DataBlock &data, bool ack)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void receiveData </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> & </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>ack</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Implements Q.921 DL-DATA and DL-UNIT DATA indication primitives Receive data from remote peer <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Received data </td></tr> <tr><td valign="top"></td><td valign="top"><em>ack</em> </td><td>True if data is an acknoledged frame, false if it is an unacknoledged one </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="df7d32712d59039b8bb0197fd3213741"></a><!-- doxytag: member="TelEngine::ISDNLayer2::sapi" ref="df7d32712d59039b8bb0197fd3213741" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">u_int8_t sapi </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the SAPI (Service Access Point Identifier) of this interface <dl class="return" compact><dt><b>Returns:</b></dt><dd>The SAPI (Service Access Point Identifier) of this interface </dd></dl> </div> </div><p> <a class="anchor" name="f3a7de973e9a72158dd243d398783574"></a><!-- doxytag: member="TelEngine::ISDNLayer2::sendData" ref="f3a7de973e9a72158dd243d398783574" args="(const DataBlock &data, bool ack)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool sendData </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> & </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>ack</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Implements Q.921 DL-DATA and DL-UNIT DATA request primitives Descendants must implement this method to fullfill the request <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Data to send </td></tr> <tr><td valign="top"></td><td valign="top"><em>ack</em> </td><td>True to send an acknoledged frame, false to send an unacknoledged one </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the request was accepted </dd></dl> <p>Reimplemented in <a class="el" href="classTelEngine_1_1ISDNQ921.html#f3a7de973e9a72158dd243d398783574">ISDNQ921</a>.</p> </div> </div><p> <a class="anchor" name="3804c9648e6d1325751536cca350f2bf"></a><!-- doxytag: member="TelEngine::ISDNLayer2::state" ref="3804c9648e6d1325751536cca350f2bf" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> state </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the layer's state <dl class="return" compact><dt><b>Returns:</b></dt><dd>The layer's state as enumeration </dd></dl> </div> </div><p> <a class="anchor" name="a0b73adfca93f0ad7aefe8ad9291a36e"></a><!-- doxytag: member="TelEngine::ISDNLayer2::stateName" ref="a0b73adfca93f0ad7aefe8ad9291a36e" args="(State s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static const char* stateName </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1ISDNLayer2.html#5d74787dedbc4e11c1ab15bf487e61f8">State</a> </td> <td class="paramname"> <em>s</em> </td> <td> ) </td> <td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the text associated with a given state <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>The state to get the text for </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The text associated with the given state </dd></dl> <p>References <a class="el" href="namespaceTelEngine.html#4668c9172c6ae5f59f5782ecc6e05516">TelEngine::lookup()</a>.</p> </div> </div><p> <a class="anchor" name="096c806d6454ac81799d96095b50cd7b"></a><!-- doxytag: member="TelEngine::ISDNLayer2::tei" ref="096c806d6454ac81799d96095b50cd7b" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">u_int8_t tei </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the TEI (Terminal Endpoint Identifier) of this interface <dl class="return" compact><dt><b>Returns:</b></dt><dd>The TEI (Terminal Endpoint Identifier) of this interface </dd></dl> </div> </div><p> <a class="anchor" name="0eab329636564af2458323c3c1e96116"></a><!-- doxytag: member="TelEngine::ISDNLayer2::teiAssigned" ref="0eab329636564af2458323c3c1e96116" args="(bool status)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void teiAssigned </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>status</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set TEI assigned status. Print a debug message. If status is false calls <a class="el" href="classTelEngine_1_1ISDNLayer2.html#8f94dc33a3804ab30f2d2289ccd0494a">cleanup()</a> Descendants are responsable for TEI assigned status management <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>status</em> </td><td>The new TEI assigned status </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b965a9c05ff1b169fe7ca33108f0a098"></a><!-- doxytag: member="TelEngine::ISDNLayer2::teiAssigned" ref="b965a9c05ff1b169fe7ca33108f0a098" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool teiAssigned </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if this interface has a TEI assigned <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if this interface has a TEI assigned </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="yatesig_8h-source.html">yatesig.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:14 2008 for Yate by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address> </body> </html>