<!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.h Source File</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.h</h1><a href="callmodule_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 00008 <span class="comment">/***************************************************************************</span> 00009 <span class="comment"> * *</span> 00010 <span class="comment"> * This program is free software; you can redistribute it and/or modify *</span> 00011 <span class="comment"> * it under the terms of the GNU General Public License as published by *</span> 00012 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or *</span> 00013 <span class="comment"> * (at your option) any later version. *</span> 00014 <span class="comment"> * *</span> 00015 <span class="comment"> ***************************************************************************/</span> 00016 00017 <span class="preprocessor">#ifndef CALLMODULE_H</span> 00018 <span class="preprocessor"></span><span class="preprocessor">#define CALLMODULE_H</span> 00019 <span class="preprocessor"></span> 00020 <span class="preprocessor">#include "../backend/callinterface.h"</span> 00021 <span class="preprocessor">#include "../backend/capiexception.h"</span> 00022 00023 <span class="keyword">class </span><a class="code" href="classConnection.html">Connection</a>; 00024 <a name="l00043"></a><a class="code" href="classCallModule.html">00043</a> <span class="keyword">class </span><a class="code" href="classCallModule.html">CallModule</a>: <span class="keyword">public</span> <a class="code" href="classCallInterface.html">CallInterface</a> 00044 { 00045 <span class="keyword">public</span>: 00052 <a class="code" href="classCallModule.html#a0">CallModule</a>(<a class="code" href="classConnection.html">Connection</a>* connection, <span class="keywordtype">int</span> <a class="code" href="classCallModule.html#p5">timeout</a>=-1, <span class="keywordtype">bool</span> <a class="code" href="classCallModule.html#p0">DTMF_exit</a>=<span class="keyword">false</span>); 00053 00056 <a class="code" href="classCallModule.html#a1">~CallModule</a>(); 00057 00068 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a2">mainLoop</a>() <span class="keywordflow">throw</span> (<a class="code" href="classCapiWrongState.html">CapiWrongState</a>,<a class="code" href="classCapiMsgError.html">CapiMsgError</a>,<a class="code" href="classCapiExternalError.html">CapiExternalError</a>,<a class="code" href="classCapiError.html">CapiError</a>); 00069 00074 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a3">transmissionComplete</a>(<span class="keywordtype">void</span>); 00075 00080 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a4">alerting</a> (<span class="keywordtype">void</span>); 00081 00086 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a5">callConnected</a> (<span class="keywordtype">void</span>); 00087 00092 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a6">callDisconnectedLogical</a> (<span class="keywordtype">void</span>); 00093 00098 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a7">callDisconnectedPhysical</a> (<span class="keywordtype">void</span>); 00099 00104 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a8">gotDTMF</a> (<span class="keywordtype">void</span>); 00105 00110 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#a9">dataIn</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">unsigned</span> length); 00111 00112 <span class="keyword">protected</span>: 00115 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classCallModule.html#b0">getTime</a>(); 00116 00119 <span class="keywordtype">void</span> <a class="code" href="classCallModule.html#b1">resetTimer</a>(<span class="keywordtype">int</span> new_timeout); 00120 <a name="l00121"></a><a class="code" href="classCallModule.html#p0">00121</a> <span class="keywordtype">bool</span> <a class="code" href="classCallModule.html#p0">DTMF_exit</a>; <a name="l00122"></a><a class="code" href="classCallModule.html#p1">00122</a> <span class="keywordtype">bool</span> <a class="code" href="classCallModule.html#p1">finish</a>; <a name="l00123"></a><a class="code" href="classCallModule.html#p2">00123</a> <span class="keywordtype">bool</span> <a class="code" href="classCallModule.html#p2">abort</a>; <a name="l00124"></a><a class="code" href="classCallModule.html#p3">00124</a> <a class="code" href="classConnection.html">Connection</a>* <a class="code" href="classCallModule.html#p3">conn</a>; <a name="l00125"></a><a class="code" href="classCallModule.html#p4">00125</a> <span class="keywordtype">long</span> <a class="code" href="classCallModule.html#p4">exit_time</a>; <a name="l00126"></a><a class="code" href="classCallModule.html#p5">00126</a> <span class="keywordtype">int</span> timeout; 00127 }; 00128 00129 <span class="preprocessor">#endif</span> 00130 <span class="preprocessor"></span> 00131 <span class="comment">/* History</span> 00132 <span class="comment"></span> 00133 <span class="comment">$Log: callmodule.h,v $</span> 00134 <span class="comment">Revision 1.3 2003/04/17 10:40:32 gernot</span> 00135 <span class="comment">- support new ALERTING notification feature of backend</span> 00136 <span class="comment"></span> 00137 <span class="comment">Revision 1.2 2003/03/06 09:35:10 gernot</span> 00138 <span class="comment">- fixed typo</span> 00139 <span class="comment"></span> 00140 <span class="comment">Revision 1.1.1.1 2003/02/19 08:19:53 gernot</span> 00141 <span class="comment">initial checkin of 0.4</span> 00142 <span class="comment"></span> 00143 <span class="comment">Revision 1.12 2002/12/06 13:08:30 ghillie</span> 00144 <span class="comment">minor doc change</span> 00145 <span class="comment"></span> 00146 <span class="comment">Revision 1.11 2002/11/29 10:27:44 ghillie</span> 00147 <span class="comment">- updated comments, use doxygen format now</span> 00148 <span class="comment"></span> 00149 <span class="comment">Revision 1.10 2002/11/25 21:00:53 ghillie</span> 00150 <span class="comment">- improved documentation, now doxygen-readabl</span> 00151 <span class="comment"></span> 00152 <span class="comment">Revision 1.9 2002/11/25 11:56:21 ghillie</span> 00153 <span class="comment">- changed semantics of timeout parameter: -1 = infinite now, 0 = 0 seconds (i.e. abort immediately)</span> 00154 <span class="comment"></span> 00155 <span class="comment">Revision 1.8 2002/11/22 15:18:06 ghillie</span> 00156 <span class="comment">- added support for DTMF_exit</span> 00157 <span class="comment">- de-register Connection object uncondionally in destructor (checking for abort removed)</span> 00158 <span class="comment"></span> 00159 <span class="comment">Revision 1.7 2002/11/21 15:34:50 ghillie</span> 00160 <span class="comment">- mainLoop() doesn't return any value any more, but throws CapiWrongState when connection is lost</span> 00161 <span class="comment"></span> 00162 <span class="comment">Revision 1.6 2002/11/15 13:51:49 ghillie</span> 00163 <span class="comment">fix: call module wasn't finished when call was only connected/disconnected physically</span> 00164 <span class="comment"></span> 00165 <span class="comment">Revision 1.5 2002/11/14 17:05:19 ghillie</span> 00166 <span class="comment">major structural changes - much is easier, nicer and better prepared for the future now:</span> 00167 <span class="comment">- added DisconnectLogical handler to CallInterface</span> 00168 <span class="comment">- DTMF handling moved from CallControl to Connection</span> 00169 <span class="comment">- new call module ConnectModule for establishing connection</span> 00170 <span class="comment">- python script reduced from 2 functions to one (callWaiting, callConnected</span> 00171 <span class="comment"> merged to callIncoming)</span> 00172 <span class="comment">- call modules implement the CallInterface now, not CallControl any more</span> 00173 <span class="comment"> => this freed CallControl from nearly all communication stuff</span> 00174 <span class="comment"></span> 00175 <span class="comment">Revision 1.4 2002/11/13 15:25:08 ghillie</span> 00176 <span class="comment">fixed small typo</span> 00177 <span class="comment"></span> 00178 <span class="comment">Revision 1.3 2002/11/13 08:34:54 ghillie</span> 00179 <span class="comment">moved history to the bottom</span> 00180 <span class="comment"></span> 00181 <span class="comment">Revision 1.2 2002/11/12 15:52:08 ghillie</span> 00182 <span class="comment">added data in handler</span> 00183 <span class="comment"></span> 00184 <span class="comment">Revision 1.1 2002/10/25 13:29:39 ghillie</span> 00185 <span class="comment">grouped files into subdirectories</span> 00186 <span class="comment"></span> 00187 <span class="comment">Revision 1.3 2002/10/23 14:25:29 ghillie</span> 00188 <span class="comment">- a callmodule has to register itself at CallControl so it can be aborted if call is gone</span> 00189 <span class="comment">- added distinction between "exited normally" and "aborted because call is gone" -> different results of mainLoop()</span> 00190 <span class="comment"></span> 00191 <span class="comment">Revision 1.2 2002/10/10 12:45:40 gernot</span> 00192 <span class="comment">added AudioReceive module, some small details changed</span> 00193 <span class="comment"></span> 00194 <span class="comment">Revision 1.1 2002/10/09 14:34:22 gernot</span> 00195 <span class="comment">added CallModule class as base class for all call handling modules</span> 00196 <span class="comment"></span> 00197 <span class="comment">*/</span> </div></pre><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>