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 OpalLineInterfaceDevice & GetDevice() const
Definition: lid.h:1361
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
virtual PStringArray GetAllNames() const =0
PBoolean DisableAudio()
Definition: lid.h:1153
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())
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 PBoolean GetVAD(unsigned line) 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 PBoolean IsOpen() const
virtual OpalMediaFormat GetReadFormat(unsigned line)=0
bool duplicate
Definition: lid.h:1426
virtual PBoolean ReadFrame(unsigned line, void *buf, PINDEX &count)=0
virtual PBoolean GetVAD() const
Definition: lid.h:1209
std::vector< bool > m_LineAudioEnabled
Definition: lid.h:892
virtual PBoolean SetWinkDuration(unsigned line, unsigned winkDuration)
virtual void PrintOn(ostream &strm) const
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
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 IsAudioEnabled(unsigned line) const
int GetErrorNumber() const
Definition: lid.h:849
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 OpalLineInterfaceDevice::AECLevels GetAEC() const
Definition: lid.h:1196
virtual PBoolean SetRemoveDTMF(PBoolean removeTones)
Definition: lid.h:1299
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 PStringList GetCountryCodeNameList() const
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)
PString GetErrorText() const
virtual PBoolean SetPlayVolume(unsigned line, unsigned volume)
virtual bool UsesRTP() const
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 SetLineOnHook(unsigned line)
Definition: lid.h:141
virtual PBoolean GetPlayVolume(unsigned line, unsigned &volume)
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 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 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 CallProgressTones WaitForToneDetect(unsigned line, unsigned timeout=3000)
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
virtual AECLevels GetAEC(unsigned line) const
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)
virtual PBoolean IsAudioEnabled() const
Definition: lid.h:1157
virtual PBoolean IsConnected()
Definition: lid.h:1045
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
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)
PString GetCountryCodeName() const
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
unsigned GetLineNumber() const
Definition: lid.h:1365
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
T35CountryCodes GetCountryCode() const
Definition: lid.h:785
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)
PString GetToken() const
Definition: lid.h:1369
virtual PBoolean SetConnected()
Definition: lid.h:1036
virtual PBoolean SetCallerID(unsigned line, const PString &idString)
static OpalLineInterfaceDevice * Create(const PString &type, void *parameters=NULL)
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)