34 #ifndef OPAL_LIDS_LID_H 35 #define OPAL_LIDS_LID_H 62 virtual PBoolean
Open(
63 const PString & device
68 virtual PBoolean
IsOpen()
const;
72 virtual PBoolean
Close();
115 PBoolean force =
false 135 PBoolean newState =
true 150 unsigned flashTime = 200
170 DWORD * cadence = NULL
193 const unsigned * pattern = NULL,
194 unsigned frequency = 400
240 PBoolean checkForWink =
true 387 PBoolean enable =
true 501 PBoolean full =
false 527 const PString & idString
609 unsigned timeout = 3000
617 unsigned timeout = 3000
645 const PString & description
664 const unsigned * onTimes,
665 const unsigned * offTimes
726 const PString & number,
743 unsigned winkDuration
808 const PString & countryName
820 const PString & filename
835 const PString & filename
862 const PString & type,
863 void * parameters = NULL
871 const PString & descriptor,
872 void * parameters = NULL
917 const char * userToken = NULL
946 PBoolean force =
false 973 unsigned flashTime = 200
974 ) {
return device.
HookFlash(lineNumber, flashTime); }
991 virtual PBoolean IsRinging(
992 DWORD * cadence = NULL
998 virtual unsigned GetRingCount(
999 DWORD * cadence = NULL
1021 const unsigned * pattern = NULL,
1022 unsigned frequency = 400
1023 ) {
return device.
RingLine(lineNumber, nCadence, pattern, frequency); }
1112 ) {
return device.
ReadFrame(lineNumber, buf, count); }
1120 ) {
return device.
WriteFrame(lineNumber, buf, count, written); }
1128 ) {
return device.
ReadBlock(lineNumber, buf, count); }
1135 ) {
return device.
WriteBlock(lineNumber, buf, count); }
1148 PBoolean enable =
true 1149 ) {
return device.
EnableAudio(lineNumber, enable); }
1203 ) {
return device.
SetAEC(lineNumber, level); }
1216 ) {
return device.
SetVAD(lineNumber, enable); }
1234 PBoolean full =
false 1235 ) {
return device.
GetCallerID(lineNumber, idString, full); }
1259 const PString & idString
1260 ) {
return device.
SetCallerID(lineNumber, idString); }
1273 const char * digits,
1276 ) {
return device.
PlayDTMF(lineNumber, digits, onTime, offTime); }
1300 PBoolean removeTones
1311 unsigned timeout = 3000
1318 unsigned timeout = 3000
1319 ) {
return device.
WaitForTone(lineNumber, tone, timeout); }
1325 ) {
return device.
PlayTone(lineNumber, tone); }
1352 const PString & number,
1354 ) {
return device.
DialOut(lineNumber, number, params); }
1432 #define OPAL_REGISTER_LID_FUNCTION(cls, type, param) \ 1433 static class cls##_Registration : public OpalLIDRegistration { \ 1435 cls##_Registration() : OpalLIDRegistration(type) { } \ 1436 OpalLineInterfaceDevice * Create(void * param) const; \ 1437 } instance_##cls##_Registration; \ 1438 OpalLineInterfaceDevice * cls##_Registration::Create(void * param) const 1440 #ifndef OPAL_NO_PARAM 1441 #define OPAL_NO_PARAM 1444 #define OPAL_REGISTER_LID(cls, type) \ 1445 OPAL_REGISTER_LID_FUNCTION(cls, type, OPAL_NO_PARAM) \ 1448 #define OPAL_REGISTER_LID_PARAM(cls, type) \ 1449 OPAL_REGISTER_LID_FUNCTION(cls, type, parameter) \ 1450 { return new cls(parameter); } 1453 #endif // OPAL_LIDS_LID_H
virtual PBoolean SetRecordVolume(unsigned line, unsigned volume)
virtual PBoolean HasHookFlash(unsigned line)
PString m_callProgressTones[NumTones]
Definition: lid.h:893
bool m_requireTones
Require dial/ring tone to be detected.
Definition: lid.h:700
static OpalLineInterfaceDevice * CreateAndOpen(const PString &descriptor, void *parameters=NULL)
virtual PBoolean ReadBlock(unsigned line, void *buf, PINDEX count)
virtual PBoolean EnableAudio(unsigned line, PBoolean enable=true)
virtual PBoolean SetRecordVolume(unsigned volume)
Definition: lid.h:1164
PString GetCountryCodeName() const
virtual PStringArray GetAllNames() const =0
PBoolean DisableAudio()
Definition: lid.h:1153
virtual bool UsesRTP() const
virtual PBoolean SendVisualMessageWaitingIndicator(unsigned line, PBoolean on)
DialParams()
Definition: lid.h:690
PINDEX m_writeDeblockingOffset
Definition: lid.h:891
virtual bool SetToneParameters(unsigned line, CallProgressTones tone, unsigned frequency1, unsigned frequency2, ToneMixingModes mode, PINDEX numCadences, const unsigned *onTimes, const unsigned *offTimes)
virtual char ReadDTMF(unsigned line)
T35CountryCodes
Definition: lid.h:747
PTimeInterval ringTick
Definition: lid.h:1383
unsigned ringCount
Definition: lid.h:1384
virtual PBoolean StopWriting(unsigned line)
virtual PBoolean RecordAudioStart(unsigned line, const PString &filename)
static PStringList GetAllTypes()
virtual PBoolean WriteFrame(const void *buf, PINDEX count, PINDEX &written)
Definition: lid.h:1116
virtual PBoolean IsTonePlaying(unsigned line)
virtual PBoolean EnableAudio(PBoolean enable=true)
Definition: lid.h:1147
virtual PBoolean WaitForTone(unsigned line, CallProgressTones tone, unsigned timeout=3000)
virtual char ReadDTMF()
Definition: lid.h:1287
PBYTEArray m_writeDeblockingBuffer
Definition: lid.h:890
virtual OpalLineInterfaceDevice::CallProgressTones WaitForToneDetect(unsigned timeout=3000)
Definition: lid.h:1310
virtual CallProgressTones DialOut(unsigned line, const PString &number, const DialParams ¶ms=DialParams())
PString GetErrorText() const
virtual PBoolean SetWriteFormat(unsigned line, const OpalMediaFormat &mediaFormat)=0
virtual PBoolean GetCallerID(PString &idString, PBoolean full=false)
Definition: lid.h:1232
virtual OpalLineInterfaceDevice::CallProgressTones DialOut(const PString &number, const OpalLineInterfaceDevice::DialParams ¶ms=OpalLineInterfaceDevice::DialParams())
Definition: lid.h:1351
virtual void PrintOn(ostream &strm) const
virtual PBoolean SetAEC(unsigned line, AECLevels level)
virtual PBoolean SetVAD(PBoolean enable)
Definition: lid.h:1214
virtual PBoolean SetWriteFrameSize(PINDEX frameSize)
Definition: lid.h:1093
unsigned m_dialInterDigitTime
Time in msec of silence between each DTMF digit.
Definition: lid.h:704
virtual PBoolean IsTonePlaying()
Definition: lid.h:1329
virtual OpalMediaFormat GetReadFormat(unsigned line)=0
bool duplicate
Definition: lid.h:1426
virtual PBoolean ReadFrame(unsigned line, void *buf, PINDEX &count)=0
std::vector< bool > m_LineAudioEnabled
Definition: lid.h:892
virtual PBoolean SetWinkDuration(unsigned line, unsigned winkDuration)
virtual unsigned GetLineCount() const =0
virtual PBoolean ReadFrame(void *buf, PINDEX &count)
Definition: lid.h:1109
virtual PBoolean SetReadFormat(const OpalMediaFormat &mediaFormat)
Definition: lid.h:1055
virtual PBoolean IsDisconnected()
Definition: lid.h:1051
OpalLineInterfaceDevice & device
Definition: lid.h:1377
T35CountryCodes GetCountryCode() const
Definition: lid.h:785
AECLevels
Definition: lid.h:444
virtual OpalMediaFormat GetWriteFormat()
Definition: lid.h:1071
virtual PINDEX GetWriteFrameSize(unsigned line)
PLIST(OpalLIDList, OpalLineInterfaceDevice)
virtual unsigned GetAverageSignalLevel(unsigned line, PBoolean playback)
static PStringList GetAllDevices()
virtual PBoolean PlayTone(unsigned line, CallProgressTones tone)
virtual PBoolean SetVAD(unsigned line, PBoolean enable)
virtual PBoolean SetCountryCode(T35CountryCodes country)
virtual CallProgressTones IsToneDetected(unsigned line)
virtual PBoolean Ring(PINDEX nCadence, const unsigned *pattern=NULL, unsigned frequency=400)
Definition: lid.h:1019
virtual PBoolean IsLineConnected(unsigned line)
unsigned m_commaDelay
Time in msec to wait when a comma (',') is found in the dial string.
Definition: lid.h:706
unsigned m_dialToneTimeout
Time in msec to wait for a dial tone to be detected.
Definition: lid.h:701
virtual PBoolean SetRemoveDTMF(PBoolean removeTones)
Definition: lid.h:1299
virtual OpalLineInterfaceDevice::AECLevels GetAEC() const
Definition: lid.h:1196
virtual bool SetToneDescription(unsigned line, CallProgressTones tone, const PString &description)
virtual PBoolean PlayDTMF(const char *digits, DWORD onTime=OpalLineInterfaceDevice::DefaultDTMFOnTime, DWORD offTime=OpalLineInterfaceDevice::DefaultDTMFOffTime)
Definition: lid.h:1272
virtual PBoolean SetReadFrameSize(PINDEX frameSize)
Definition: lid.h:1085
virtual PString GetDeviceType() const =0
virtual PBoolean IsOffHook()
Definition: lid.h:955
virtual PBoolean SendVisualMessageWaitingIndicator(PBoolean on)
Definition: lid.h:1264
virtual PBoolean Open(const PString &device)=0
T35CountryCodes countryCode
Definition: lid.h:889
virtual PBoolean SetLineOffHook(unsigned line, PBoolean newState=true)=0
virtual PBoolean SetOnHook()
Definition: lid.h:967
virtual OpalMediaFormat GetReadFormat()
Definition: lid.h:1067
virtual unsigned GetWinkDuration(unsigned line)
virtual PINDEX GetWriteFrameSize()
Definition: lid.h:1105
virtual PBoolean HookFlash(unsigned line, unsigned flashTime=200)
virtual PBoolean HookFlash(unsigned flashTime=200)
Definition: lid.h:972
virtual PBoolean SetLineConnected(unsigned line)
virtual PBoolean SetPlayVolume(unsigned line, unsigned volume)
virtual PBoolean StopReading()
Definition: lid.h:1075
virtual PBoolean StopWriting()
Definition: lid.h:1079
PTimeInterval ringStoppedTime
Definition: lid.h:1380
virtual PBoolean SetPlayVolume(unsigned volume)
Definition: lid.h:1172
virtual PBoolean IsAudioEnabled(unsigned line) const
virtual PBoolean SetLineOnHook(unsigned line)
Definition: lid.h:141
virtual PBoolean GetPlayVolume(unsigned line, unsigned &volume)
PString GetToken() const
Definition: lid.h:1369
virtual OpalLineInterfaceDevice::CallProgressTones IsToneDetected()
Definition: lid.h:1306
virtual PBoolean SetCallerID(const PString &idString)
Definition: lid.h:1258
virtual PBoolean SetReadFormat(unsigned line, const OpalMediaFormat &mediaFormat)=0
virtual PBoolean GetVAD(unsigned line) const
virtual PBoolean SetAEC(OpalLineInterfaceDevice::AECLevels level)
Definition: lid.h:1201
virtual PBoolean IsLineOffHook(unsigned line)=0
PINDEX m_readDeblockingOffset
Definition: lid.h:891
virtual PBoolean PlayAudio(unsigned line, const PString &filename)
unsigned lineNumber
Definition: lid.h:1378
virtual PBoolean StopTone()
Definition: lid.h:1333
virtual PBoolean WriteFrame(unsigned line, const void *buf, PINDEX count, PINDEX &written)=0
unsigned m_dialDigitTime
Time in msec to play DTMF digit.
Definition: lid.h:703
unsigned m_progressTimeout
Time in msec to wait for a progress tone (ring, busy or connected) to be detected.
Definition: lid.h:705
virtual PStringList GetCountryCodeNameList() const
virtual PBoolean SetRemoveDTMF(unsigned line, PBoolean removeTones)
virtual PBoolean PlayDTMF(unsigned line, const char *digits, DWORD onTime=DefaultDTMFOnTime, DWORD offTime=DefaultDTMFOffTime)
virtual PINDEX GetReadFrameSize()
Definition: lid.h:1100
virtual OpalMediaFormatList GetMediaFormats() const =0
PString token
Definition: lid.h:1379
virtual PBoolean IsTerminal()
Definition: lid.h:940
virtual PBoolean IsLineToLineDirect(unsigned line1, unsigned line2)
OpalLineInterfaceDevice()
virtual PBoolean PlayTone(OpalLineInterfaceDevice::CallProgressTones tone)
Definition: lid.h:1323
virtual PBoolean RingLine(unsigned line, PINDEX nCadence, const unsigned *pattern=NULL, unsigned frequency=400)
virtual PBoolean GetRemoveDTMF()
Definition: lid.h:1293
void SetToken(const PString &t)
Definition: lid.h:1373
virtual PBoolean GetVAD() const
Definition: lid.h:1209
virtual CallProgressTones WaitForToneDetect(unsigned line, unsigned timeout=3000)
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
virtual PBoolean IsLineDisconnected(unsigned line, PBoolean checkForWink=true)
bool lastRingState
Definition: lid.h:1385
int os_handle
Definition: lid.h:887
virtual PBoolean GetCallerID(unsigned line, PString &idString, PBoolean full=false)
int GetErrorNumber() const
Definition: lid.h:849
virtual PBoolean IsConnected()
Definition: lid.h:1045
virtual PBoolean IsOpen() const
virtual unsigned GetAverageSignalLevel(PBoolean playback)
Definition: lid.h:1140
virtual PBoolean SetReadFrameSize(unsigned line, PINDEX frameSize)
virtual PString GetDescription() const =0
virtual PBoolean StopReading(unsigned line)
virtual PBoolean SetWriteFrameSize(unsigned line, PINDEX frameSize)
virtual PBoolean StopTone(unsigned line)
virtual PBoolean HasHookFlash()
Definition: lid.h:978
OpalLineInterfaceDevice & GetDevice() const
Definition: lid.h:1361
PBoolean DisableAudio(unsigned line)
Definition: lid.h:392
virtual PBoolean WaitForTone(OpalLineInterfaceDevice::CallProgressTones tone, unsigned timeout=3000)
Definition: lid.h:1316
virtual PINDEX GetReadFrameSize(unsigned line)
virtual PBoolean IsAudioEnabled() const
Definition: lid.h:1157
virtual PBoolean SetCountryCodeName(const PString &countryName)
CallProgressTones
Definition: lid.h:584
virtual PBoolean IsLineTerminal(unsigned line)=0
unsigned m_dialStartDelay
Time in msec to wait between the dial tone detection and dialing the DTMF.
Definition: lid.h:702
virtual PBoolean IsLinePresent(unsigned line, PBoolean force=false)
PTimeInterval ringInterCadenceTime
Definition: lid.h:1381
ToneMixingModes
Definition: lid.h:648
virtual OpalMediaFormat GetWriteFormat(unsigned line)=0
virtual PBoolean SetOffHook()
Definition: lid.h:962
virtual PBoolean WriteBlock(unsigned line, const void *buf, PINDEX count)
virtual PBoolean IsPresent(PBoolean force=false)
Definition: lid.h:945
int osError
Definition: lid.h:888
virtual PString GetDeviceName() const =0
virtual PBoolean GetRemoveDTMF(unsigned line)
virtual PBoolean GetRecordVolume(unsigned &volume)
Definition: lid.h:1180
virtual PBoolean WriteBlock(const void *buf, PINDEX count)
Definition: lid.h:1132
virtual PBoolean GetRecordVolume(unsigned line, unsigned &volume)
virtual PBoolean SetWriteFormat(const OpalMediaFormat &mediaFormat)
Definition: lid.h:1061
OpalLIDRegistration * link
Definition: lid.h:1425
virtual PBoolean ReadBlock(void *buf, PINDEX count)
Definition: lid.h:1125
virtual PBoolean SetLineToLineDirect(unsigned line1, unsigned line2, PBoolean connect)
virtual AECLevels GetAEC(unsigned line) const
virtual PBoolean SetConnected()
Definition: lid.h:1036
virtual PBoolean SetCallerID(unsigned line, const PString &idString)
static OpalLineInterfaceDevice * Create(const PString &type, void *parameters=NULL)
unsigned GetLineNumber() const
Definition: lid.h:1365
virtual PBoolean IsLineRinging(unsigned line, DWORD *cadence=NULL)
PBYTEArray m_readDeblockingBuffer
Definition: lid.h:890
virtual PBoolean GetPlayVolume(unsigned &volume)
Definition: lid.h:1188
virtual PBoolean RecordAudioStop(unsigned line)
virtual PBoolean StopAudio(unsigned line)