<!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: SignallingCall 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_1SignallingCall.html">SignallingCall</a> </div> </div> <div class="contents"> <h1>SignallingCall Class Reference</h1><!-- doxytag: class="TelEngine::SignallingCall" --><!-- doxytag: inherits="TelEngine::RefObject" -->Abstract single phone call. <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 SignallingCall:</div> <div class="dynsection"> <p><center><img src="classTelEngine_1_1SignallingCall.png" usemap="#SignallingCall_map" border="0" alt=""></center> <map name="SignallingCall_map"> <area href="classTelEngine_1_1RefObject.html" alt="RefObject" shape="rect" coords="147,56,284,80"> <area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="147,0,284,24"> <area href="classTelEngine_1_1ISDNQ931Call.html" alt="ISDNQ931Call" shape="rect" coords="0,168,137,192"> <area href="classTelEngine_1_1ISDNQ931CallMonitor.html" alt="ISDNQ931CallMonitor" shape="rect" coords="147,168,284,192"> <area href="classTelEngine_1_1SS7ISUPCall.html" alt="SS7ISUPCall" shape="rect" coords="294,168,431,192"> </map> </div> <p> <a href="classTelEngine_1_1SignallingCall-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 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_1SignallingCall.html#cc364277054db9f44b6bf61a6e93b255">SignallingCall</a> (<a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a> *controller, bool outgoing, bool signalOnly=false)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#f86ab0733db5f9a52cb0da7c02cd3262">~SignallingCall</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#bf0a85f6a7ff9ab42c7f7d86b1bc0da8">outgoing</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#e7a976b6c35954c6a8e6eb14e3ac564d">controller</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#c7f4c8364376714c29de6ecbb60db14d">userdata</a> (void *data)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#c040899dcc80031ba3daeb9f06208e3f">userdata</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_1SignallingCall.html#ceb82dd37c99b7658252c22c23d5ca17">signalOnly</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_1SignallingCall.html#fabf4b61e29a47f4ea1b6b8d0cb4882c">sendEvent</a> (<a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> *event)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#3ee099c6661a8026dc49dd92b9ed7f85">getEvent</a> (const <a class="el" href="classTelEngine_1_1Time.html">Time</a> &when)=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_1SignallingCall.html#dfb33696db2f51da2ae9e27a40773df4">eventTerminated</a> (<a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> *event)</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#aefeb4075f4fe51d63102871eab3cb78">enqueue</a> (<a class="el" href="classTelEngine_1_1SignallingMessage.html">SignallingMessage</a> *msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1SignallingMessage.html">SignallingMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#11dd07bdc50d179313010f6431666ea4">dequeue</a> (bool remove=true)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#7b7f09ace42f57bf958a1a379e935ea9">clearQueue</a> ()</td></tr> <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1Mutex.html">Mutex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#8227b1726957396495f64d295e731344">m_callMutex</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCall.html#56d473e326b49b92ba544a6b9f9de06a">m_lastEvent</a></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Abstract single phone call. <p> Interface of protocol independent phone call <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="cc364277054db9f44b6bf61a6e93b255"></a><!-- doxytag: member="TelEngine::SignallingCall::SignallingCall" ref="cc364277054db9f44b6bf61a6e93b255" args="(SignallingCallControl *controller, bool outgoing, bool signalOnly=false)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a> * </td> <td class="paramname"> <em>controller</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>outgoing</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>signalOnly</em> = <code>false</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>controller</em> </td><td>The call controller owning this call </td></tr> <tr><td valign="top"></td><td valign="top"><em>outgoing</em> </td><td>Call direction (true for outgoing) </td></tr> <tr><td valign="top"></td><td valign="top"><em>signalOnly</em> </td><td>Just signalling (no voice) flag </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="f86ab0733db5f9a52cb0da7c02cd3262"></a><!-- doxytag: member="TelEngine::SignallingCall::~SignallingCall" ref="f86ab0733db5f9a52cb0da7c02cd3262" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor, notifies the controller </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="7b7f09ace42f57bf958a1a379e935ea9"></a><!-- doxytag: member="TelEngine::SignallingCall::clearQueue" ref="7b7f09ace42f57bf958a1a379e935ea9" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void clearQueue </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Clear incoming messages queue </div> </div><p> <a class="anchor" name="e7a976b6c35954c6a8e6eb14e3ac564d"></a><!-- doxytag: member="TelEngine::SignallingCall::controller" ref="e7a976b6c35954c6a8e6eb14e3ac564d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a>* controller </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retreive the controller of this call </div> </div><p> <a class="anchor" name="11dd07bdc50d179313010f6431666ea4"></a><!-- doxytag: member="TelEngine::SignallingCall::dequeue" ref="11dd07bdc50d179313010f6431666ea4" args="(bool remove=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1SignallingMessage.html">SignallingMessage</a>* dequeue </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>remove</em> = <code>true</code> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Dequeue a received message. Just return it if remove is false 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>remove</em> </td><td>True to remove the message from queue </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="classTelEngine_1_1SignallingMessage.html" title="Abstract signalling message.">SignallingMessage</a> pointer or 0 if no more messages </dd></dl> </div> </div><p> <a class="anchor" name="aefeb4075f4fe51d63102871eab3cb78"></a><!-- doxytag: member="TelEngine::SignallingCall::enqueue" ref="aefeb4075f4fe51d63102871eab3cb78" args="(SignallingMessage *msg)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void enqueue </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingMessage.html">SignallingMessage</a> * </td> <td class="paramname"> <em>msg</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Enqueue a received message. 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>msg</em> </td><td>The received message </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="dfb33696db2f51da2ae9e27a40773df4"></a><!-- doxytag: member="TelEngine::SignallingCall::eventTerminated" ref="dfb33696db2f51da2ae9e27a40773df4" args="(SignallingEvent *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void eventTerminated </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> * </td> <td class="paramname"> <em>event</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Event terminated notification. No event will be generated until the current event is terminated 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>event</em> </td><td>The terminated event </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="3ee099c6661a8026dc49dd92b9ed7f85"></a><!-- doxytag: member="TelEngine::SignallingCall::getEvent" ref="3ee099c6661a8026dc49dd92b9ed7f85" args="(const Time &when)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a>* getEvent </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1Time.html">Time</a> & </td> <td class="paramname"> <em>when</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get an event from this call if not already got one 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>when</em> </td><td>The current time </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="classTelEngine_1_1SignallingEvent.html" title="A single signalling related event.">SignallingEvent</a> pointer or 0 if no events or this call has a not terminated event </dd></dl> <p>Implemented in <a class="el" href="classTelEngine_1_1SS7ISUPCall.html#60b984499483882d3ed71e6888a79201">SS7ISUPCall</a>, <a class="el" href="classTelEngine_1_1ISDNQ931Call.html#60b984499483882d3ed71e6888a79201">ISDNQ931Call</a>, and <a class="el" href="classTelEngine_1_1ISDNQ931CallMonitor.html#60b984499483882d3ed71e6888a79201">ISDNQ931CallMonitor</a>.</p> </div> </div><p> <a class="anchor" name="bf0a85f6a7ff9ab42c7f7d86b1bc0da8"></a><!-- doxytag: member="TelEngine::SignallingCall::outgoing" ref="bf0a85f6a7ff9ab42c7f7d86b1bc0da8" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool outgoing </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 is an outgoing call <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if it's an outgoing call </dd></dl> <p>Referenced by <a class="el" href="yatesig_8h-source.html#l07464">ISDNQ931::sendRelease()</a>, and <a class="el" href="yatesig_8h-source.html#l07446">ISDNQ931::sendStatus()</a>.</p> </div> </div><p> <a class="anchor" name="fabf4b61e29a47f4ea1b6b8d0cb4882c"></a><!-- doxytag: member="TelEngine::SignallingCall::sendEvent" ref="fabf4b61e29a47f4ea1b6b8d0cb4882c" args="(SignallingEvent *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool sendEvent </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> * </td> <td class="paramname"> <em>event</em> </td> <td> ) </td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Send an event to this call <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>event</em> </td><td>The event to send </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the operation succedded </dd></dl> <p>Reimplemented in <a class="el" href="classTelEngine_1_1SS7ISUPCall.html#fabf4b61e29a47f4ea1b6b8d0cb4882c">SS7ISUPCall</a>, and <a class="el" href="classTelEngine_1_1ISDNQ931Call.html#fabf4b61e29a47f4ea1b6b8d0cb4882c">ISDNQ931Call</a>.</p> </div> </div><p> <a class="anchor" name="ceb82dd37c99b7658252c22c23d5ca17"></a><!-- doxytag: member="TelEngine::SignallingCall::signalOnly" ref="ceb82dd37c99b7658252c22c23d5ca17" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool signalOnly </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 call is just a signalling (no voice) one <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if no audio data can be negotiated for this call </dd></dl> </div> </div><p> <a class="anchor" name="c040899dcc80031ba3daeb9f06208e3f"></a><!-- doxytag: member="TelEngine::SignallingCall::userdata" ref="c040899dcc80031ba3daeb9f06208e3f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* userdata </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retreive the private user data of this call <dl class="return" compact><dt><b>Returns:</b></dt><dd>User data </dd></dl> </div> </div><p> <a class="anchor" name="c7f4c8364376714c29de6ecbb60db14d"></a><!-- doxytag: member="TelEngine::SignallingCall::userdata" ref="c7f4c8364376714c29de6ecbb60db14d" args="(void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void userdata </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set this call's private user data <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>New user data </td></tr> </table> </dl> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="8227b1726957396495f64d295e731344"></a><!-- doxytag: member="TelEngine::SignallingCall::m_callMutex" ref="8227b1726957396495f64d295e731344" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1Mutex.html">Mutex</a> <a class="el" href="classTelEngine_1_1SignallingCall.html#8227b1726957396495f64d295e731344">m_callMutex</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <a class="el" href="classTelEngine_1_1Mutex.html" title="Mutex support.">Mutex</a> used to lock call operations </div> </div><p> <a class="anchor" name="56d473e326b49b92ba544a6b9f9de06a"></a><!-- doxytag: member="TelEngine::SignallingCall::m_lastEvent" ref="56d473e326b49b92ba544a6b9f9de06a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a>* <a class="el" href="classTelEngine_1_1SignallingCall.html#56d473e326b49b92ba544a6b9f9de06a">m_lastEvent</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Last event generated by this call. Used to serialize events </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:13 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>