Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 06e1e0ab98898582c876a8be34ecb5e9 > files > 177

capisuite-0.4.5-5mdv2010.0.i586.rpm

<!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&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;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">  =&gt; 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" -&gt; 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>