<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>CapiSuite: CallModule Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.8 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div> <h1>CallModule Class Reference</h1>Base class for all call handling modules. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="callmodule_8h-source.html">callmodule.h</a>></code> <p> <p>Inheritance diagram for CallModule: <p><center><img src="classCallModule.png" usemap="#CallModule_map" border="0" alt=""></center> <map name="CallModule_map"> <area href="classCallInterface.html" alt="CallInterface" shape="rect" coords="0,0,117,24"> <area href="classAudioReceive.html" alt="AudioReceive" shape="rect" coords="127,112,244,136"> <area href="classAudioSend.html" alt="AudioSend" shape="rect" coords="127,168,244,192"> <area href="classCallOutgoing.html" alt="CallOutgoing" shape="rect" coords="127,224,244,248"> <area href="classConnectModule.html" alt="ConnectModule" shape="rect" coords="127,280,244,304"> <area href="classDisconnectModule.html" alt="DisconnectModule" shape="rect" coords="127,336,244,360"> <area href="classFaxReceive.html" alt="FaxReceive" shape="rect" coords="127,392,244,416"> <area href="classFaxSend.html" alt="FaxSend" shape="rect" coords="127,448,244,472"> <area href="classReadDTMF.html" alt="ReadDTMF" shape="rect" coords="127,504,244,528"> <area href="classSwitch2FaxG3.html" alt="Switch2FaxG3" shape="rect" coords="127,560,244,584"> </map> <a href="classCallModule-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="classCallModule.html#a0">CallModule</a> (<a class="el" href="classConnection.html">Connection</a> *connection, int <a class="el" href="classCallModule.html#p5">timeout</a>=-1, bool <a class="el" href="classCallModule.html#p0">DTMF_exit</a>=false)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. Register this module at the according <a class="el" href="classConnection.html">Connection</a> object. <a href="#a0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a1">~CallModule</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. Deregister this module at the according <a class="el" href="classConnection.html">Connection</a> object. <a href="#a1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a2">mainLoop</a> () throw (CapiWrongState,CapiMsgError,CapiExternalError,CapiError)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Waits in busy loop until the module is completed. <a href="#a2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a3">transmissionComplete</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">empty here. <a href="#a3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a4">alerting</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">empty here. <a href="#a4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a5">callConnected</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">empty here. <a href="#a5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a6">callDisconnectedLogical</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">abort current modul if logical connection is lost. <a href="#a6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a7">callDisconnectedPhysical</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">abort current module if physical connection is lost. <a href="#a7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a8">gotDTMF</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">finish current module if DTMF is received. <a href="#a8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#a9">dataIn</a> (unsigned char *data, unsigned length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">empty here. <a href="#a9"></a><br></td></tr> <tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual long </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#b0">getTime</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get the current time in # of seconds sinc 1/1/1970 <a href="#b0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#b1">resetTimer</a> (int new_timeout)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">restart the timer with new timeout value <a href="#b1"></a><br></td></tr> <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#p0">DTMF_exit</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">if set to true, we will finish when we receive a DTMF signal <a href="#p0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#p1">finish</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">set this if the module should exit nicely for any reason <a href="#p1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#p2">abort</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">set this for hard exit because connection is lost, causes <a class="el" href="classCapiWrongState.html">CapiWrongState</a> to be throwed in mainLoop <a href="#p2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classConnection.html">Connection</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#p3">conn</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">reference to the according <a class="el" href="classConnection.html">Connection</a> object <a href="#p3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>long </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#p4">exit_time</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">time when the timeout should occur <a href="#p4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classCallModule.html#p5">timeout</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">timeout period in seconds <a href="#p5"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Base class for all call handling modules. <p> This class implements the <a class="el" href="classCallInterface.html">CallInterface</a>. It is the base class for all special call handling modules like FaxReceive/FaxSend, AudioReceive/AudioSend, etc. It contains basic code for registering with the according <a class="el" href="classConnection.html">Connection</a> object, realizing exits because of timeouts, received DTMF and call clearing from the other party.<p> The general usage is: create a CallModule object, then run <a class="el" href="classCallModule.html#a2">mainLoop()</a>. <a class="el" href="classCallModule.html#a2">mainLoop()</a> will exit if necessary.<p> To be able to recognize call clearing of the other party, the <a class="el" href="classCapiWrongState.html">CapiWrongState</a> exception is used. It is triggered by <a class="el" href="classCallModule.html#a2">mainLoop()</a>.<p> Sub classes will mainly overwrite <a class="el" href="classCallModule.html#a2">mainLoop()</a> and the other signals they need for their tasks.<p> If you don't change the semantics in the sub classes, the module will terminate when at least one of the following events occurs:<ul> <li>logical connection is ended</li><li>physical connection is ended</li><li>DTMF code is received (depending on the value of DTMF_exit given in the constructor)</li></ul> <p> <dl compact><dt><b>Author:</b></dt><dd>Gernot Hillier </dd></dl> <p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="a0" doxytag="CallModule::CallModule" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> CallModule::CallModule </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classConnection.html">Connection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>timeout</em> = <code>-1</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td></td> <td class="md" nowrap>bool </td> <td class="mdname" nowrap> <em>DTMF_exit</em> = <code>false</code></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Constructor. Register this module at the according <a class="el" href="classConnection.html">Connection</a> object. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign=top><em>connection</em> </td><td>reference to <a class="el" href="classConnection.html">Connection</a> object </td></tr> <tr><td></td><td valign=top><em>timeout</em> </td><td>timeout for this module in seconds (only considered in mainLoop!), -1=infinite (default) </td></tr> <tr><td></td><td valign=top><em>DTMF_exit</em> </td><td>if this is set to true, then the current module is exited if we receive a DTMF tone</td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="a1" doxytag="CallModule::~CallModule" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> CallModule::~<a class="el" href="classCallModule.html">CallModule</a> </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Destructor. Deregister this module at the according <a class="el" href="classConnection.html">Connection</a> object. <p> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="a4" doxytag="CallModule::alerting" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::alerting </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> empty here. <p> empty function to overwrite if necessary <p> Implements <a class="el" href="classCallInterface.html#a0">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classCallOutgoing.html#a3">CallOutgoing</a>. <p> </td> </tr> </table> <a class="anchor" name="a5" doxytag="CallModule::callConnected" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::callConnected </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> empty here. <p> empty function to overwrite if necessary <p> Implements <a class="el" href="classCallInterface.html#a1">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classCallOutgoing.html#a2">CallOutgoing</a>, <a class="el" href="classConnectModule.html#a2">ConnectModule</a>, and <a class="el" href="classSwitch2FaxG3.html#a3">Switch2FaxG3</a>. <p> </td> </tr> </table> <a class="anchor" name="a6" doxytag="CallModule::callDisconnectedLogical" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::callDisconnectedLogical </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> abort current modul if logical connection is lost. <p> will abort currently running module. May be overwritten with complete new behaviour if needed. <p> Implements <a class="el" href="classCallInterface.html#a2">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classDisconnectModule.html#a2">DisconnectModule</a>, and <a class="el" href="classSwitch2FaxG3.html#a2">Switch2FaxG3</a>. <p> </td> </tr> </table> <a class="anchor" name="a7" doxytag="CallModule::callDisconnectedPhysical" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::callDisconnectedPhysical </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> abort current module if physical connection is lost. <p> will abort currently running module. Only overwrite if you know what you do! <p> Implements <a class="el" href="classCallInterface.html#a3">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classDisconnectModule.html#a3">DisconnectModule</a>. <p> </td> </tr> </table> <a class="anchor" name="a9" doxytag="CallModule::dataIn" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::dataIn </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned char * </td> <td class="mdname" nowrap> <em>data</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td></td> <td class="md" nowrap>unsigned </td> <td class="mdname" nowrap> <em>length</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> empty here. <p> empty function to overwrite if necessary <p> Implements <a class="el" href="classCallInterface.html#a6">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classAudioReceive.html#a2">AudioReceive</a>. <p> </td> </tr> </table> <a class="anchor" name="b0" doxytag="CallModule::getTime" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> long CallModule::getTime </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get the current time in # of seconds sinc 1/1/1970 <p> </td> </tr> </table> <a class="anchor" name="a8" doxytag="CallModule::gotDTMF" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::gotDTMF </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> finish current module if DTMF is received. <p> finish current module if DTMF_exit was enabled <p> Implements <a class="el" href="classCallInterface.html#a5">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classReadDTMF.html#a2">ReadDTMF</a>. <p> </td> </tr> </table> <a class="anchor" name="a2" doxytag="CallModule::mainLoop" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::mainLoop </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> throw (<a class="el" href="classCapiWrongState.html">CapiWrongState</a>,<a class="el" href="classCapiMsgError.html">CapiMsgError</a>,<a class="el" href="classCapiExternalError.html">CapiExternalError</a>,<a class="el" href="classCapiError.html">CapiError</a>)<code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Waits in busy loop until the module is completed. <p> Waits in a busy loop (sleeping 100 msecs between each iteration) until a DTMF signal is reached (if enabled) or the timeout is reached (if enabled).<p> This method will likely be overwritten in each sub class. You can call <a class="el" href="classCallModule.html#a2">CallModule::mainLoop()</a> there to implement busy loops. <dl compact><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign=top><em>CapiWrongState</em> </td><td>Something is tried in a wrong connection state. This usually means our call was finished (raised directly). </td></tr> <tr><td></td><td valign=top><em>CapiMsgError</em> </td><td>A CAPI function hasn't succeeded for some reason (not thrown by CallModule, but may be thrown in subclasses). </td></tr> <tr><td></td><td valign=top><em>CapiError</em> </td><td>Some internal error has occured (not thrown by CallModule, but may be thrown in subclasses). </td></tr> <tr><td></td><td valign=top><em>CapiExternalError</em> </td><td>A given command didn't succeed for a reason not caused by the CAPI (not thrown by CallModule, but may be thrown in subclasses)</td></tr> </table> </dl> <p> Reimplemented in <a class="el" href="classAudioReceive.html#a1">AudioReceive</a>, <a class="el" href="classAudioSend.html#a1">AudioSend</a>, <a class="el" href="classCallOutgoing.html#a1">CallOutgoing</a>, <a class="el" href="classConnectModule.html#a1">ConnectModule</a>, <a class="el" href="classDisconnectModule.html#a1">DisconnectModule</a>, <a class="el" href="classFaxReceive.html#a1">FaxReceive</a>, <a class="el" href="classFaxSend.html#a1">FaxSend</a>, <a class="el" href="classReadDTMF.html#a1">ReadDTMF</a>, and <a class="el" href="classSwitch2FaxG3.html#a1">Switch2FaxG3</a>. <p> </td> </tr> </table> <a class="anchor" name="b1" doxytag="CallModule::resetTimer" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::resetTimer </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname1" valign="top" nowrap> <em>new_timeout</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> restart the timer with new timeout value <p> </td> </tr> </table> <a class="anchor" name="a3" doxytag="CallModule::transmissionComplete" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void CallModule::transmissionComplete </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> empty here. <p> empty function to overwrite if necessary <p> Implements <a class="el" href="classCallInterface.html#a4">CallInterface</a>. <p> <p> Reimplemented in <a class="el" href="classAudioSend.html#a2">AudioSend</a>, <a class="el" href="classFaxReceive.html#a2">FaxReceive</a>, and <a class="el" href="classFaxSend.html#a2">FaxSend</a>. <p> </td> </tr> </table> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="p2" doxytag="CallModule::abort" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> bool <a class="el" href="classCallModule.html#p2">CallModule::abort</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> set this for hard exit because connection is lost, causes <a class="el" href="classCapiWrongState.html">CapiWrongState</a> to be throwed in mainLoop <p> </td> </tr> </table> <a class="anchor" name="p3" doxytag="CallModule::conn" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classConnection.html">Connection</a>* <a class="el" href="classCallModule.html#p3">CallModule::conn</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> reference to the according <a class="el" href="classConnection.html">Connection</a> object <p> </td> </tr> </table> <a class="anchor" name="p0" doxytag="CallModule::DTMF_exit" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> bool <a class="el" href="classCallModule.html#p0">CallModule::DTMF_exit</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> if set to true, we will finish when we receive a DTMF signal <p> </td> </tr> </table> <a class="anchor" name="p4" doxytag="CallModule::exit_time" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> long <a class="el" href="classCallModule.html#p4">CallModule::exit_time</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> time when the timeout should occur <p> </td> </tr> </table> <a class="anchor" name="p1" doxytag="CallModule::finish" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> bool <a class="el" href="classCallModule.html#p1">CallModule::finish</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> set this if the module should exit nicely for any reason <p> </td> </tr> </table> <a class="anchor" name="p5" doxytag="CallModule::timeout" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int <a class="el" href="classCallModule.html#p5">CallModule::timeout</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> timeout period in seconds <p> </td> </tr> </table> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="callmodule_8h-source.html">callmodule.h</a><li>callmodule.cpp</ul> <hr size="1"><address style="align: right;"><small>Generated on Sun Nov 28 14:37:44 2004 for CapiSuite by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address> </body> </html>