File: callmodule_8h-source.html

package info (click to toggle)
capisuite 0.4.5-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,596 kB
  • ctags: 1,051
  • sloc: cpp: 3,979; sh: 3,465; python: 446; makefile: 263
file content (135 lines) | stat: -rw-r--r-- 11,794 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!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>