class Vocal::PhoneCardDevice

Initializes a QuickNet PhoneCARD and handles hardware control

Inheritance:


Public Methods

[more] PhoneCardDevice( const char* deviceName, Sptr < Fifo < Sptr < SipProxyEvent > > > inputQ, Sptr < Fifo < Sptr < SipProxyEvent > > > outputQ )
Creates a hardware object to control a single port gateway.
[more] ~PhoneCardDevice()
Destructor
[more]void* hardwareMain(void* parms)
Starts the main processing loop of the hardware
[more]int addToFdSet(fd_set* fd)
Add device's socket to the fd (File Descriptor)
[more]int process(fd_set* fd)
Process all pending hardware events
[more]int audioStart(const HardwareAudioRequest& request)
Start audio channel on device
[more]int audioStop()
Stops audio channel on device
[more]int audioSuspend()
Suspend audio channel on device
[more]int audioResume(const HardwareAudioRequest& request)
Resume audio channel on device
[more]virtual void processRTP()
process RTP audio packets
[more]virtual int getRtpPort()
Instantiates a rtp session and reserves a rtp port
[more]virtual void releaseRtpPort()
Release the port and deallocate the rtp session

Private Fields

[more]Sptr< Fifo < Sptr < SipProxyEvent > > > sessionQ
Output queue to notify endpoint of occurence of hardware events
[more]bool audioActive
true if RTP audio packets are being processed
[more]bool audioHalfActive
true if only sending RTP audio packets
[more]bool playDialTone
Used to turn off dialtone after pressing a digit
[more]RtpSession* audioStack
RTP session variables
[more]int ringbackFd
variables for remote ringback tone
[more]VMutex deviceMutex
This is used to lock the RTP thread and the hardware thread so that they don't access the hardware device simultaneously
[more]int stdinFD
needed for proper terminal control

Private Methods

[more]int getRingbackTone(char* , int size)
???
[more]void onhookOrFlash()
Used to determine when an onhook event becomes a flash event
[more]void startSendRingback()
[more]void stopSendRingback()
[more]void provideDialToneStart()
[more]void provideDialToneStop()
[more]void provideRingStart()
[more]void provideRingStop()
[more]void provideLocalRingbackStart()
[more]void provideLocalRingbackStop()
[more]void provideBusyToneStart()
[more]void provideBusyToneStop()
[more]void provideFastBusyToneStart()
[more]void provideFastBusyToneStop()
[more]void provideCallInfo(string, string, string)
Currently used only in VmcpDevice
[more]void provideDtmf(DeviceSignalType)
Prints dtmf digit or symbol to stdout
[more]void killTone()
Sends ioctl to hardware to stop dialtone
[more]void provideCallWaitingBeepStart()
[more]void provideCallWaitingBeepStop()
[more]void provideTone( PhoneCardTone tone )
Provide simulated tones by playing corresponding audio file


Inherited from ResGwDevice:

Public Methods

ovirtual void setCallId( const Sptr<SipCallId> newCallId )
ovirtual Sptr<SipCallId> getCallId() const
ovirtual void addCallWaitingId( const Sptr<SipCallId> newCallId )
ovirtual Sptr<SipCallId> getCallWaitingId() const
ovirtual void removeCallWaitingId( const SipCallId& newCallId )
ovirtual Sptr<DigitCollector> getDigitCollector()
ovirtual HardwareStatusType getHardwareStatus()
ovirtual bool isMyHardware(const SipCallId& callid)
ovirtual bool isOnCallWaiting(const SipCallId& callid)
oinline Sptr< Fifo < Sptr<SipProxyEvent> > > getQ()
oinline int getFD()
ovoid setUseRsvp( bool flag )

Public Members

o Creates a hardware object to control a multi port gateway

Protected Fields

obool useRsvp
oint myFD
oSptr< Fifo < Sptr< SipProxyEvent > > > myQ
obool hookStateOffhook
oSptr<SipCallId> callId
oSptr<CallWaitingIdList> callWaitingIdList
oEntryState myEntryState
oData myTextEntry
oSptr<DigitCollector> digitCollector

Protected Methods

oint provideSignal( DeviceSignalType signal )
ovoid processSessionMsg( Sptr < SipProxyEvent > event )
ovoid reportEvent( Sptr < Fifo < Sptr< SipProxyEvent > > > outputQ, DeviceEventType eventType )


Documentation

Initializes a QuickNet PhoneCARD and handles hardware control
o PhoneCardDevice( const char* deviceName, Sptr < Fifo < Sptr < SipProxyEvent > > > inputQ, Sptr < Fifo < Sptr < SipProxyEvent > > > outputQ )
Creates a hardware object to control a single port gateway.
Parameters:
deviceName - name of PhoneCARD linux system device
inputQ - input queue to the hardware
outputQ - output queue to the hardware

o ~PhoneCardDevice()
Destructor

ovoid* hardwareMain(void* parms)
Starts the main processing loop of the hardware
Parameters:
parms -

oint addToFdSet(fd_set* fd)
Add device's socket to the fd (File Descriptor)
Parameters:
fd - File Descriptor
Returns:
0 if successful, error code otherwise

oint process(fd_set* fd)
Process all pending hardware events
Parameters:
fd - File Descriptor
Returns:
0 if successful, error code otherwise

oint audioStart(const HardwareAudioRequest& request)
Start audio channel on device
Parameters:
request -
Returns:
0 if successful, errorcode otherwise

oint audioStop()
Stops audio channel on device
Returns:
0 if successful, error code otherwise

oint audioSuspend()
Suspend audio channel on device
Returns:
0 if successful, error code otherwise

oint audioResume(const HardwareAudioRequest& request)
Resume audio channel on device
Parameters:
request -
Returns:
0 if successful, error code otherwise

ovirtual void processRTP()
process RTP audio packets

ovirtual int getRtpPort()
Instantiates a rtp session and reserves a rtp port
Returns:
reserved RTP port

ovirtual void releaseRtpPort()
Release the port and deallocate the rtp session

oint getRingbackTone(char* , int size)
???

ovoid onhookOrFlash()
Used to determine when an onhook event becomes a flash event
See Also:
deviceEventFlash

ovoid startSendRingback()

ovoid stopSendRingback()

ovoid provideDialToneStart()

ovoid provideDialToneStop()

ovoid provideRingStart()

ovoid provideRingStop()

ovoid provideLocalRingbackStart()

ovoid provideLocalRingbackStop()

ovoid provideBusyToneStart()

ovoid provideBusyToneStop()

ovoid provideFastBusyToneStart()

ovoid provideFastBusyToneStop()

ovoid provideCallInfo(string, string, string)
Currently used only in VmcpDevice

ovoid provideDtmf(DeviceSignalType)
Prints dtmf digit or symbol to stdout

ovoid killTone()
Sends ioctl to hardware to stop dialtone

ovoid provideCallWaitingBeepStart()

ovoid provideCallWaitingBeepStop()

ovoid provideTone( PhoneCardTone tone )
Provide simulated tones by playing corresponding audio file

oSptr< Fifo < Sptr < SipProxyEvent > > > sessionQ
Output queue to notify endpoint of occurence of hardware events

obool audioActive
true if RTP audio packets are being processed

obool audioHalfActive
true if only sending RTP audio packets

obool playDialTone
Used to turn off dialtone after pressing a digit

oRtpSession* audioStack
RTP session variables

oint ringbackFd
variables for remote ringback tone

oVMutex deviceMutex
This is used to lock the RTP thread and the hardware thread so that they don't access the hardware device simultaneously

oint stdinFD
needed for proper terminal control


This class has no child classes.
Author:
zolli
See Also:
QuickNetDevice
NullHwDevice
ResGwDevice

Alphabetic index HTML hierarchy of classes or Java