OPAL
Version 3.10.4
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
t38proto.h
Go to the documentation of this file.
1
/*
2
* t38proto.h
3
*
4
* T.38 protocol handler
5
*
6
* Open Phone Abstraction Library
7
*
8
* Copyright (c) 2001 Equivalence Pty. Ltd.
9
*
10
* The contents of this file are subject to the Mozilla Public License
11
* Version 1.0 (the "License"); you may not use this file except in
12
* compliance with the License. You may obtain a copy of the License at
13
* http://www.mozilla.org/MPL/
14
*
15
* Software distributed under the License is distributed on an "AS IS"
16
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17
* the License for the specific language governing rights and limitations
18
* under the License.
19
*
20
* The Original Code is Open H323 Library.
21
*
22
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23
*
24
* Contributor(s): ______________________________________.
25
*
26
* $Revision: 26102 $
27
* $Author: rjongbloed $
28
* $Date: 2011-06-30 00:00:16 -0500 (Thu, 30 Jun 2011) $
29
*/
30
31
#ifndef OPAL_T38_T38PROTO_H
32
#define OPAL_T38_T38PROTO_H
33
34
#ifdef P_USE_PRAGMA
35
#pragma interface
36
#endif
37
38
#include <
opal/buildopts.h
>
39
40
41
#if OPAL_FAX
42
43
#include <ptlib/pipechan.h>
44
45
#include <
opal/mediafmt.h
>
46
#include <
opal/mediastrm.h
>
47
#include <
opal/localep.h
>
48
49
50
class
OpalTransport
;
51
class
T38_IFPPacket;
52
class
PASN_OctetString;
53
class
OpalFaxConnection
;
54
55
56
#define OPAL_OPT_STATION_ID "Station-Id"
57
#define OPAL_OPT_HEADER_INFO "Header-Info"
58
#define OPAL_NO_G111_FAX "No-G711-Fax"
59
#define OPAL_SWITCH_ON_CED "Switch-On-CED"
60
#define OPAL_T38_SWITCH_TIME "T38-Switch-Time"
61
62
#define OPAL_FAX_TIFF_FILE "TIFF-File"
63
64
66
67
class
OpalFaxConnection
;
68
80
class
OpalFaxEndPoint
:
public
OpalLocalEndPoint
81
{
82
PCLASSINFO(
OpalFaxEndPoint
,
OpalLocalEndPoint
);
83
public
:
88
OpalFaxEndPoint
(
89
OpalManager
&
manager
,
90
const
char
* g711Prefix =
"fax"
,
91
const
char
* t38Prefix =
"t38"
92
);
93
96
~OpalFaxEndPoint
();
98
101
virtual
PSafePtr<OpalConnection>
MakeConnection
(
102
OpalCall
& call,
103
const
PString & party,
104
void
* userData = NULL,
105
unsigned
int
options = 0,
106
OpalConnection::StringOptions
* stringOptions = NULL
107
);
108
116
virtual
OpalMediaFormatList
GetMediaFormats
()
const
;
118
123
virtual
bool
IsAvailable
()
const
;
124
127
virtual
OpalFaxConnection
*
CreateConnection
(
128
OpalCall
& call,
129
void
* userData,
130
OpalConnection::StringOptions
* stringOptions,
131
const
PString & filename,
132
bool
receiving,
133
bool
disableT38
134
);
135
139
virtual
void
OnFaxCompleted
(
140
OpalFaxConnection
& connection,
141
bool
failed
142
);
144
148
const
PString &
GetDefaultDirectory
()
const
{
return
m_defaultDirectory
; }
149
152
void
SetDefaultDirectory
(
153
const
PString & dir
154
) {
m_defaultDirectory
= dir; }
155
156
const
PString &
GetT38Prefix
()
const
{
return
m_t38Prefix
; }
158
159
protected
:
160
PString
m_t38Prefix
;
161
PDirectory
m_defaultDirectory
;
162
};
163
164
166
183
class
OpalFaxConnection
:
public
OpalLocalConnection
184
{
185
PCLASSINFO(
OpalFaxConnection
,
OpalLocalConnection
);
186
public
:
191
OpalFaxConnection
(
192
OpalCall
& call,
193
OpalFaxEndPoint
&
endpoint
,
194
const
PString & filename,
195
bool
receiving,
196
bool
disableT38,
197
OpalConnection::StringOptions
* stringOptions = NULL
198
);
199
202
~OpalFaxConnection
();
204
207
virtual
PString
GetPrefixName
()
const
;
208
209
virtual
OpalMediaFormatList
GetMediaFormats
()
const
;
210
virtual
void
AdjustMediaFormats
(
bool
local,
const
OpalConnection
* otherConnection,
OpalMediaFormatList
& mediaFormats)
const
;
211
virtual
void
OnEstablished
();
212
virtual
void
OnReleased
();
213
virtual
OpalMediaStream
*
CreateMediaStream
(
const
OpalMediaFormat
& mediaFormat,
unsigned
sessionID, PBoolean isSource);
214
virtual
void
OnStartMediaPatch
(
OpalMediaPatch
& patch);
215
virtual
void
OnStopMediaPatch
(
OpalMediaPatch
& patch);
216
virtual
PBoolean
SendUserInputTone
(
char
tone,
unsigned
duration);
217
virtual
void
OnUserInputTone
(
char
tone,
unsigned
duration);
218
virtual
bool
SwitchFaxMediaStreams
(
bool
enableFax);
219
virtual
void
OnSwitchedFaxMediaStreams
(
bool
enabledFax);
221
227
virtual
void
OnFaxCompleted
(
228
bool
failed
229
);
230
231
#if OPAL_STATISTICS
232
234
virtual
void
GetStatistics
(
235
OpalMediaStatistics
& statistics
236
)
const
;
237
#endif
238
241
const
PString &
GetFileName
()
const
{
return
m_filename
; }
242
245
bool
IsReceive
()
const
{
return
m_receiving
; }
247
248
protected
:
249
PDECLARE_NOTIFIER
(PTimer,
OpalFaxConnection
, OnSwitchTimeout);
250
PDECLARE_NOTIFIER
(PThread,
OpalFaxConnection
, OpenFaxStreams);
251
void
SetFaxMediaFormatOptions
(
OpalMediaFormat
& mediaFormat)
const
;
252
253
254
OpalFaxEndPoint
&
m_endpoint
;
255
PString
m_filename
;
256
bool
m_receiving
;
257
bool
m_disableT38
;
258
OpalMediaFormat
m_tiffFileFormat
;
259
#if OPAL_STATISTICS
260
void
InternalGetStatistics
(
OpalMediaStatistics
& statistics,
bool
terminate)
const
;
261
OpalMediaStatistics
m_finalStatistics
;
262
#endif
263
264
enum
{
265
e_AwaitingSwitchToT38
,
266
e_SwitchingToT38
,
267
e_CompletedSwitch
268
}
m_state
;
269
270
PTimer
m_switchTimer
;
271
272
friend
class
OpalFaxMediaStream
;
273
};
274
275
276
typedef
OpalFaxConnection
OpalT38Connection
;
// For backward compatibility
277
278
279
#endif // OPAL_FAX
280
281
#endif // OPAL_T38_T38PROTO_H
include
t38
t38proto.h
Generated on Thu Mar 20 2014 03:34:25 for OPAL by
1.8.1.2