sipxmediaadapterlib  Version 3.3
CpMediaInterface.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2006-2020 SIPez LLC. All rights reserved.
3 //
4 // Copyright (C) 2004-2009 SIPfoundry Inc.
5 // Licensed by SIPfoundry under the LGPL license.
6 //
7 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
8 // Licensed to SIPfoundry under a Contributor Agreement.
9 //
10 // $$
12 
13 // Author: Dan Petrie (dpetrie AT SIPez DOT com)
14 
15 #ifndef _CpMediaInterface_h_
16 #define _CpMediaInterface_h_
17 
18 // SYSTEM INCLUDES
19 
20 // APPLICATION INCLUDES
21 #include <os/OsStatus.h>
22 #include <os/OsDefs.h>
23 #include <os/OsProtectEvent.h>
24 #include <os/OsMsgQ.h>
25 #include <os/OsDatagramSocket.h>
26 #include <net/SdpBody.h>
27 #include <os/IStunSocket.h>
28 
29 // DEFINES
30 // MACROS
31 // EXTERNAL FUNCTIONS
32 // EXTERNAL VARIABLES
33 // CONSTANTS
34 // STRUCTS
35 // TYPEDEFS
37 typedef enum SocketPurpose
38 {
45 
48 {
51 
58 
65 
71 
73 
74 // FORWARD DECLARATIONS
75 class SdpCodec;
76 class SdpCodecList;
77 class MpStreamPlaylistPlayer;
78 class MpStreamPlayer;
79 class MpStreamQueuePlayer;
81 class OsMsgDispatcher;
82 class CircularBufferPtr;
83 
96 class CpMediaInterface : public UtlInt
97 {
98 /* //////////////////////////// PUBLIC //////////////////////////// */
99 public:
100 
102  {
106  };
107 
109  {
116  };
117 
118 
119 /* =========================== CREATORS =========================== */
120 
123 
124 /* ========================= DESTRUCTORS ========================== */
125 
126 protected:
129  virtual ~CpMediaInterface();
130 public:
131 
133  virtual void release() = 0;
134 
135 /* ========================= MANIPULATORS ========================= */
137  virtual
138  OsStatus createConnection(
139  int& connectionId,
140  const char* szLocalAddress,
141  int localPort = 0,
142  void* videoWindowHandle = NULL,
143  void* const pSecurityAttributes = NULL,
144  const RtpTransportOptions rtpTransportOptions=RTP_TRANSPORT_UDP) = 0 ;
174  virtual OsStatus setPlcMethod(int connectionId,
176  const UtlString &methodName = "") = 0;
194  virtual OsMsgDispatcher*
196  setNotificationDispatcher(OsMsgDispatcher* pNotificationDispatcher) = 0;
210  virtual OsStatus
212  setNotificationsEnabled(bool enabled,
213  const UtlString& resourceName = NULL) = 0;
231  virtual int getNumBridgePorts() {return(0);};
233 
235  virtual OsStatus setSrtpParams(SdpSrtpParameters& srtpParameters);
243  virtual OsStatus setMediaPassThrough(int connectionId,
245  MEDIA_STREAM_TYPE mediaType,
246  int mediaTypeStreamIndex,
247  UtlString& receiveAddress,
248  int rtpPort,
249  int rtcpPort) = 0;
258  virtual OsStatus setConnectionDestination(int connectionId,
261  const char* rtpHostAddress,
262  int rtpAudioPort,
263  int rtcpAudioPort,
264  int rtpVideoPort,
265  int rtcpVideoPort) = 0 ;
278  virtual OsStatus setConnectionDestination(int connectionId,
282  int streamIndex,
283  const char* rtpHostAddress,
284  int rtpPort,
285  int rtcpPort) = 0;
295  virtual OsStatus addAudioRtpConnectionDestination(int connectionId,
298  int iPriority,
299  const char* candidateIp,
300  int candidatePort) = 0 ;
317  virtual OsStatus addAudioRtcpConnectionDestination(int connectionId,
320  int iPriority,
321  const char* candidateIp,
322  int candidatePort) = 0 ;
327  virtual OsStatus addVideoRtpConnectionDestination(int connectionId,
330  int iPriority,
331  const char* candidateIp,
332  int candidatePort) = 0 ;
337  virtual OsStatus addVideoRtcpConnectionDestination(int connectionId,
340  int iPriority,
341  const char* candidateIp,
342  int candidatePort) = 0 ;
347  virtual OsStatus copyPayloadIds(int connectionId, int numCodecs, SdpCodec* remoteCodecs[]) = 0;
349  /* Generally this is used when we recieve an SDP offer so that our answer will
350  * use the same payload IDs as the remote side for the codecs in common. This
351  * is an inter-op friendly thing to do.
352  */
353 
355  virtual OsStatus startRtpSend(int connectionId,
356  int numCodecs,
357  SdpCodec* sendCodec[]) = 0 ;
369  virtual OsStatus startRtpReceive(int connectionId,
371  int numCodecs,
372  SdpCodec* sendCodec[]) = 0;
388  virtual OsStatus stopRtpSend(int connectionId) = 0 ;
397  virtual OsStatus stopRtpReceive(int connectionId) = 0 ;
406  virtual const SdpCodecList* getConnectionCodecList(int connectionId) = 0;
412  virtual OsStatus deleteConnection(int connectionId) = 0 ;
424  virtual OsStatus startTone(int toneId,
426  UtlBoolean local,
427  UtlBoolean remote) = 0 ;
443  virtual OsStatus stopTone() = 0 ;
455  virtual OsStatus setRtcpTimeOffset(int connectionId,
458  int streamIndex,
459  int timeOffset) = 0;
480  virtual OsStatus startChannelTone(int connectiondId,
482  int toneId,
483  UtlBoolean local,
484  UtlBoolean remote) = 0 ;
485 
487  virtual OsStatus stopChannelTone(int connectiondId) = 0 ;
488 
489 
491  virtual OsStatus recordChannelAudio(int connectionId,
492  const char* szFile,
493  CpAudioFileFormat cpFileFormat = CP_WAVE_PCM_16,
494  UtlBoolean appendToFile = FALSE,
495  int numChannels = 1,
496  int maxTime = 0,
497  int silenceLength = -1,
498  UtlBoolean setupMultiChannelMixesAutomatically = TRUE) = 0;
526  virtual OsStatus stopRecordChannelAudio(int connectionId) = 0 ;
528 
530  virtual OsStatus pauseRecordChannelAudio(int connectionId) = 0;
531 
533  virtual OsStatus resumeRecordChannelAudio(int connectionId) = 0;
534 
536  virtual OsStatus recordBufferChannelAudio(int connectionId,
537  char* pBuffer,
538  int bufferSize,
539  int maxRecordTime = -1,
540  int maxSilence = -1) = 0 ;
541 
543  virtual OsStatus stopRecordBufferChannelAudio(int connectionId) = 0 ;
544 
545  virtual OsStatus recordCircularBufferChannelAudio(int connectionId,
546  CircularBufferPtr & buffer,
547  CpMediaInterface::CpAudioFileFormat recordingFormat,
548  unsigned long recordingBufferNotificationWatermark) = 0;
549 
550  virtual OsStatus stopRecordCircularBufferChannelAudio(int connectionId) = 0;
551 
553  virtual OsStatus playAudio(const char* url,
554  UtlBoolean repeat,
555  UtlBoolean local,
556  UtlBoolean remote,
557  UtlBoolean mixWithMic = false,
558  int downScaling = 100,
559  UtlBoolean autoStopAfterFinish = TRUE) = 0 ;
580  virtual OsStatus playChannelAudio(int connectionId,
581  const char* url,
582  UtlBoolean repeat,
583  UtlBoolean local,
584  UtlBoolean remote,
585  UtlBoolean mixWithMic = false,
586  int downScaling = 100,
587  UtlBoolean autoStopOnFinish = TRUE) = 0 ;
588 
590  virtual OsStatus playBuffer(char* buf,
591  unsigned long bufSize,
592  uint32_t bufRate,
593  int type,
594  UtlBoolean repeat,
595  UtlBoolean local,
596  UtlBoolean remote,
597  OsProtectedEvent* event = NULL,
598  UtlBoolean mixWithMic = false,
599  int downScaling = 100,
600  UtlBoolean autoStopOnFinish = TRUE) = 0 ;
611  virtual OsStatus pauseAudio() = 0;
620  virtual OsStatus resumeAudio() = 0;
629  virtual OsStatus stopAudio() = 0 ;
637  virtual OsStatus stopChannelAudio(int connectionId) = 0 ;
638 
639 
641  virtual OsStatus giveFocus() = 0 ;
649  virtual OsStatus defocus() = 0 ;
658  virtual OsStatus createPlayer(MpStreamPlayer** ppPlayer,
660  const char* szStream,
661  int flags,
662  OsMsgQ *pMsgQ = NULL,
663  const char* szTarget = NULL) = 0;
672  virtual OsStatus destroyPlayer(MpStreamPlayer* pPlayer) = 0;
680  virtual OsStatus createPlaylistPlayer(MpStreamPlaylistPlayer** ppPlayer,
682  OsMsgQ *pMsgQ = NULL,
683  const char* szTarget = NULL) = 0;
692  virtual OsStatus destroyPlaylistPlayer(MpStreamPlaylistPlayer* pPlayer) = 0;
700  virtual OsStatus createQueuePlayer(MpStreamQueuePlayer** ppPlayer,
702  OsMsgQ *pMsgQ = NULL,
703  const char* szTarget = NULL) = 0;
712  virtual OsStatus destroyQueuePlayer(MpStreamQueuePlayer* pPlayer) = 0;
714 
716 
719  virtual void setCodecCPULimit(int iLimit) = 0 ;
720 
722  virtual OsStatus setMicGain(float gain) = 0 ;
723 
725  virtual OsStatus recordMic(int ms,
726  int silenceLength,
727  const char* fileName) = 0 ;
738  virtual OsStatus recordMic(int ms, int16_t* pAudioBuf,
740  int bufferSize) = 0;
751  virtual OsStatus setMixWeightForOutput(int bridgeOutputPort, float weight) = 0;
760  virtual OsStatus setMixWeightsForOutput(int bridgeOutputPort, int numWeights, float weights[]) = 0;
773  virtual void setContactType(int connectionId, SIPX_CONTACT_TYPE eType, SIPX_CONTACT_ID contactId) = 0 ;
775 
777  virtual OsStatus setAudioCodecBandwidth(int connectionId, int bandWidth) = 0;
778 
780  virtual OsStatus limitCodecs(int connectionId, const SdpCodecList& includeOnlyCodecList) = 0;
788  virtual OsStatus rebuildCodecFactory(int connectionId,
790  int audioBandwidth,
791  int videoBandwidth,
792  UtlString& videoCodec) = 0;
793 
794 
796  virtual OsStatus setConnectionBitrate(int connectionId, int bitrate) = 0 ;
797 
799  virtual OsStatus setConnectionFramerate(int connectionId, int framerate) = 0;
800 
802  static int getInvalidConnectionId();
803 
804  virtual OsStatus setVideoWindowDisplay(const void* hWnd) = 0;
805 
806  virtual OsStatus setSecurityAttributes(const void* security) = 0;
807 
808  virtual OsStatus generateVoiceQualityReport(int connectionId,
809  const char* callId,
810  UtlString& report) = 0 ;
811 
812 
813  virtual void setConnectionTcpRole(const int connectionId,
814  const RtpTcpRoles role) = 0;
815 
816 /* ============================ ACCESSORS ================================= */
817 
833  virtual OsStatus getCapabilities(int connectionId,
834  UtlString& rtpHostAddress,
835  int& rtpAudioPort,
836  int& rtcpAudioPort,
837  int& rtpVideoPort,
838  int& rtcpVideoPort,
839  SdpCodecList& supportedCodecs,
840  SdpSrtpParameters& srtpParams,
841  int bandWidth,
842  int& videoBandwidth,
843  int& videoFramerate) = 0;
844 
848  virtual OsStatus getCapabilitiesEx(int connectionId,
849  int nMaxAddresses,
850  UtlString rtpHostAddresses[],
851  int rtpAudioPorts[],
852  int rtcpAudioPorts[],
853  int rtpVideoPorts[],
854  int rtcpVideoPorts[],
855  RTP_TRANSPORT transportTypes[],
856  int& nActualAddresses,
857  SdpCodecList& supportedCodecs,
858  SdpSrtpParameters& srtpParameters,
859  int bandWidth,
860  int& videoBandwidth,
861  int& videoFramerate) = 0 ;
862 
863 
865  virtual int getCodecCPUCost() = 0 ;
866 
868  virtual int getCodecCPULimit() = 0 ;
869 
871  virtual uint32_t getSamplesPerSec() = 0;
872 
874  virtual uint32_t getSamplesPerFrame() = 0;
875 
877  virtual OsMsgQ* getMsgQ() = 0 ;
878 
880  virtual OsMsgDispatcher* getNotificationDispatcher() = 0;
881 
883  virtual OsStatus getPrimaryCodec(int connectionId,
884  UtlString& audioCodec,
885  UtlString& videoCodec,
886  int* audiopPayloadType,
887  int* videoPayloadType,
888  bool& isEncrypted) = 0;
889 
890  virtual const void* getVideoWindowDisplay() = 0;
891 
892  virtual OsStatus getAudioEnergyLevels(int& iInputEnergyLevel,
893  int& iOutputEnergyLevel)
894  { return OS_NOT_SUPPORTED ;} ;
895 
896  virtual OsStatus getAudioEnergyLevels(int connectionId,
897  int& iInputEnergyLevel,
898  int& iOutputEnergyLevel,
899  int& nContributors,
900  unsigned int* pContributorSRCIds,
901  int* pContributorEngeryLevels)
902  { return OS_NOT_SUPPORTED ;} ;
903 
904  virtual OsStatus getAudioRtpSourceIDs(int connectionId,
905  unsigned int& uiSendingSSRC,
906  unsigned int& uiReceivingSSRC)
907  { return OS_NOT_SUPPORTED ;} ;
908 
909  virtual OsStatus enableAudioTransport(int connectionId, UtlBoolean bEnable)
910  {
911  return OS_NOT_SUPPORTED;
912  };
913 
914  virtual OsStatus enableVideoTransport(int connectionId, UtlBoolean bEnable)
915  {
916  return OS_NOT_SUPPORTED;
917  };
918 
919 
921  /*
922  * Media interfaces that wish to inter-operate should implement the following properties
923  * and values:
924  *
925  * Property Name Property Values
926  * ======================= ===============
927  * "audioInput1.muteState" "true", "false" for systems that may have a microphone for each conference or 2-way call
928  * "audioInput1.device" same value as szDevice in sipxAudioSetCallInputDevice
929  * "audioOutput1.deviceType" "speaker", "ringer" same as sipxAudioEnableSpeaker, but for specific conference or 2-way call
930  * "audioOutput1.ringerDevice" same value as szDevice in sipxAudioSetRingerOutputDevice
931  * "audioOutput1.speakerDevice" same values as szDevice in sipxAudioSetCallOutputDevice
932  * "audioOutput1.volume" string value of iLevel in sipxAudioSetVolume
933  */
934  virtual OsStatus setMediaProperty(const UtlString& propertyName,
935  const UtlString& propertyValue) = 0;
936 
938  virtual OsStatus getMediaProperty(const UtlString& propertyName,
939  UtlString& propertyValue) = 0;
940 
942  virtual OsStatus setMediaProperty(int connectionId,
943  const UtlString& propertyName,
944  const UtlString& propertyValue) = 0;
945 
947  virtual OsStatus getMediaProperty(int connectionId,
948  const UtlString& propertyName,
949  UtlString& propertyValue) = 0;
950 
952  virtual UtlString getType() = 0;
953 
955  virtual void setConfiguredIpAddress(const UtlString& ipAddress);
956 
957 /* ============================ INQUIRY =================================== */
958 
960  virtual UtlBoolean isConnectionIdValid(int connectionId);
961 
964  virtual UtlBoolean isSendingRtpAudio(int connectionId) = 0 ;
965 
968  virtual UtlBoolean isSendingRtpVideo(int connectionId) = 0 ;
969 
972  virtual UtlBoolean isReceivingRtpAudio(int connectionId) = 0 ;
973 
976  virtual UtlBoolean isReceivingRtpVideo(int connectionId) = 0 ;
977 
980  virtual UtlBoolean isDestinationSet(int connectionId) = 0 ;
981 
983  virtual UtlBoolean canAddParty() = 0 ;
984 
986  virtual UtlBoolean isVideoInitialized(int connectionId) = 0 ;
987 
989  virtual UtlBoolean isAudioInitialized(int connectionId) = 0 ;
990 
992  virtual UtlBoolean isAudioAvailable() = 0;
993 
995  virtual UtlBoolean isVideoConferencing() = 0 ;
996 
997 /* //////////////////////////// PROTECTED ///////////////////////////////// */
998 protected:
1000  SdpSrtpParameters mSrtpParams;
1002 
1003 /* //////////////////////////// PRIVATE /////////////////////////////////// */
1004 private:
1007 
1009  CpMediaInterface(const CpMediaInterface& rCpMediaInterface);
1010 
1012 };
1013 
1014 /* ============================ INLINE METHODS ============================ */
1015 
1016 #endif // _CpMediaInterface_h_
virtual int getCodecCPULimit()=0
Calculate the worst case cost for the current set of sending/receiving codecs.
virtual OsStatus resumeAudio()=0
Resume all paused URLs or buffers.
Definition: CpMediaInterface.h:103
virtual OsStatus destroyPlayer(MpStreamPlayer *pPlayer)=0
Destroy a simple player in this call.
virtual OsStatus playBuffer(char *buf, unsigned long bufSize, uint32_t bufRate, int type, UtlBoolean repeat, UtlBoolean local, UtlBoolean remote, OsProtectedEvent *event=NULL, UtlBoolean mixWithMic=false, int downScaling=100, UtlBoolean autoStopOnFinish=TRUE)=0
Play the specified audio buffer to the call.
virtual UtlBoolean isVideoInitialized(int connectionId)=0
Query whether the connection has started sending or receiving video.
virtual OsStatus stopRecordChannelAudio(int connectionId)=0
Stop buffer or file recording which has been started.
CpAudioFileFormat
Definition: CpMediaInterface.h:108
virtual int getCodecCPUCost()=0
Calculate the current cost for the current set of sending/receiving codecs.
virtual uint32_t getSamplesPerSec()=0
Returns the sample rate of the flowgraph.
virtual OsStatus giveFocus()=0
Give the focus of the local audio device to the associated call.
virtual OsStatus rebuildCodecFactory(int connectionId, int audioBandwidth, int videoBandwidth, UtlString &videoCodec)=0
Rebuild codec factory with one video codec.
virtual OsStatus resumeRecordChannelAudio(int connectionId)=0
Resume buffer or file recording which has been paused.
virtual OsStatus stopRecordCircularBufferChannelAudio(int connectionId)=0
virtual void setConnectionTcpRole(const int connectionId, const RtpTcpRoles role)=0
static int sInvalidConnectionId
Number of connection, assigned to invalid connection.
Definition: CpMediaInterface.h:1011
virtual OsStatus getAudioRtpSourceIDs(int connectionId, unsigned int &uiSendingSSRC, unsigned int &uiReceivingSSRC)
Definition: CpMediaInterface.h:904
ID for codecs with high bandwidth requirements.
Definition: CpMediaInterface.h:57
Wave file format containing PCM 16 bit signed little endian encoded audio.
Definition: CpMediaInterface.h:111
SIPXMI_AUDIO_BANDWIDTH_ID
SipX Media Interface Audio Bandwidth IDs.
Definition: CpMediaInterface.h:47
virtual OsStatus startRtpSend(int connectionId, int numCodecs, SdpCodec *sendCodec[])=0
Start sending RTP using the specified codec list.
CpMediaInterface(CpMediaInterfaceFactoryImpl *pFactoryImpl)
Default constructor.
Definition: CpMediaInterface.cpp:35
virtual OsStatus stopTone()=0
Stop playing all tones.
virtual UtlBoolean isConnectionIdValid(int connectionId)
Query if connectionId is valid.
Definition: CpMediaInterface.cpp:71
virtual OsStatus setSecurityAttributes(const void *security)=0
virtual OsStatus startRtpReceive(int connectionId, int numCodecs, SdpCodec *sendCodec[])=0
Start receiving RTP using the specified codec list.
CpMediaInterfaceFactoryImpl * mpFactoryImpl
Definition: CpMediaInterface.h:999
virtual OsStatus generateVoiceQualityReport(int connectionId, const char *callId, UtlString &report)=0
virtual void release()=0
public interface for destroying this media interface
virtual OsStatus recordBufferChannelAudio(int connectionId, char *pBuffer, int bufferSize, int maxRecordTime=-1, int maxSilence=-1)=0
Start recording to buffer.
virtual OsStatus playChannelAudio(int connectionId, const char *url, UtlBoolean repeat, UtlBoolean local, UtlBoolean remote, UtlBoolean mixWithMic=false, int downScaling=100, UtlBoolean autoStopOnFinish=TRUE)=0
virtual const void * getVideoWindowDisplay()=0
virtual OsStatus stopRtpReceive(int connectionId)=0
Stop receiving RTP and RTCP data for the specified connection.
virtual OsStatus pauseRecordChannelAudio(int connectionId)=0
Pause buffer or file recording which has been started.
virtual OsStatus setAudioCodecBandwidth(int connectionId, int bandWidth)=0
Rebuild the codec factory on the fly.
Definition: CpMediaInterface.h:105
virtual OsStatus stopRecordBufferChannelAudio(int connectionId)=0
Stop recording to buffer.
virtual OsStatus setMixWeightsForOutput(int bridgeOutputPort, int numWeights, float weights[])=0
Set gain for inputs to given output on bridge.
CpMediaInterface & operator=(const CpMediaInterface &rhs)
Assignment operator disabled.
virtual OsStatus startTone(int toneId, UtlBoolean local, UtlBoolean remote)=0
Start playing the specified tone for this call.
virtual OsStatus setMediaPassThrough(int connectionId, MEDIA_STREAM_TYPE mediaType, int mediaTypeStreamIndex, UtlString &receiveAddress, int rtpPort, int rtcpPort)=0
Set pass through port and address to send RTP stream to.
virtual OsStatus setMicGain(float gain)=0
Set microphone gain.
virtual OsStatus setMediaProperty(const UtlString &propertyName, const UtlString &propertyValue)=0
Set a media property on the media interface.
virtual OsStatus createConnection(int &connectionId, const char *szLocalAddress, int localPort=0, void *videoWindowHandle=NULL, void *const pSecurityAttributes=NULL, const RtpTransportOptions rtpTransportOptions=RTP_TRANSPORT_UDP)=0
Create a media connection in the media processing subsystem.
Definition: CpMediaInterface.h:64
virtual ~CpMediaInterface()
Protected Destructor so that we can manage media interface pointers.
Definition: CpMediaInterface.cpp:41
UtlString mConfiguredIpAddress
Address to use instead of local address in SDP.
Definition: CpMediaInterface.h:1001
virtual OsMsgQ * getMsgQ()=0
Returns the flowgraph&#39;s message queue.
virtual OsStatus stopChannelTone(int connectiondId)=0
Stop playing DTMF tone.
Abstract media control interface.
Definition: CpMediaInterface.h:96
Definition: CpMediaInterface.h:112
virtual OsStatus defocus()=0
Take this call out of focus for the local audio device.
virtual OsStatus setConnectionDestination(int connectionId, const char *rtpHostAddress, int rtpAudioPort, int rtcpAudioPort, int rtpVideoPort, int rtcpVideoPort)=0
Set the connection destination (target) for the designated media connection.
virtual OsStatus setMixWeightForOutput(int bridgeOutputPort, float weight)=0
Set the mix weight for all inputs, but its own to the given weight and output on bridge.
virtual OsStatus setRtcpTimeOffset(int connectionId, CpMediaInterface::MEDIA_STREAM_TYPE mediaType, int streamIndex, int timeOffset)=0
Set an offset to the NTP time provided in the RTCP SR.
virtual OsStatus startChannelTone(int connectiondId, int toneId, UtlBoolean local, UtlBoolean remote)=0
Start playing DTMF tone.
virtual OsStatus destroyPlaylistPlayer(MpStreamPlaylistPlayer *pPlayer)=0
Destroy a single-buffered play list player in this call.
Definition: CpMediaInterface.h:70
virtual UtlBoolean isReceivingRtpVideo(int connectionId)=0
virtual OsStatus createPlaylistPlayer(MpStreamPlaylistPlayer **ppPlayer, OsMsgQ *pMsgQ=NULL, const char *szTarget=NULL)=0
Create a single-buffered play list player for this call.
virtual OsStatus setConnectionFramerate(int connectionId, int framerate)=0
Set connection framerate on the fly.
virtual void setConfiguredIpAddress(const UtlString &ipAddress)
Definition: CpMediaInterface.cpp:64
Wafe file format contain GSM encoded audio.
Definition: CpMediaInterface.h:114
virtual OsStatus getAudioEnergyLevels(int &iInputEnergyLevel, int &iOutputEnergyLevel)
Definition: CpMediaInterface.h:892
ID for codecs with low bandwidth requirements.
Definition: CpMediaInterface.h:53
virtual UtlBoolean isReceivingRtpAudio(int connectionId)=0
virtual void setCodecCPULimit(int iLimit)=0
Set the CPU resource limit for the media connections in this call.
virtual OsStatus addVideoRtcpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)=0
Add an alternate Video RTCP connection destination for this media interface.
SocketPurpose
The intended data that will be flowing through a socket.
Definition: CpMediaInterface.h:37
Socket is intended to transport RTCP Audio control data.
Definition: CpMediaInterface.h:41
virtual UtlBoolean isAudioAvailable()=0
Query if the audio device is available.
virtual UtlString getType()=0
Set IP address to advertise in SDP.
virtual OsStatus recordCircularBufferChannelAudio(int connectionId, CircularBufferPtr &buffer, CpMediaInterface::CpAudioFileFormat recordingFormat, unsigned long recordingBufferNotificationWatermark)=0
virtual OsStatus recordChannelAudio(int connectionId, const char *szFile, CpAudioFileFormat cpFileFormat=CP_WAVE_PCM_16, UtlBoolean appendToFile=FALSE, int numChannels=1, int maxTime=0, int silenceLength=-1, UtlBoolean setupMultiChannelMixesAutomatically=TRUE)=0
Start recording to file.
virtual UtlBoolean isAudioInitialized(int connectionId)=0
Query whether the connection has started sending or receiving audio.
SdpSrtpParameters mSrtpParams
Definition: CpMediaInterface.h:1000
virtual OsMsgDispatcher * setNotificationDispatcher(OsMsgDispatcher *pNotificationDispatcher)=0
Add, replace, or clear the media notification dispatcher held by the MI.
virtual OsStatus stopRtpSend(int connectionId)=0
Stop sending RTP and RTCP data for the specified connection.
Definition: CpMediaInterface.h:39
virtual OsStatus addAudioRtcpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)=0
Add an alternate Audio RTCP connection destination for this media interface.
virtual OsStatus createQueuePlayer(MpStreamQueuePlayer **ppPlayer, OsMsgQ *pMsgQ=NULL, const char *szTarget=NULL)=0
Create a double-buffered list player for this call.
Socket is intended to transport RTCP Video control data.
Definition: CpMediaInterface.h:43
virtual OsStatus recordMic(int ms, int silenceLength, const char *fileName)=0
Record the microphone data to a file.
virtual OsStatus getCapabilitiesEx(int connectionId, int nMaxAddresses, UtlString rtpHostAddresses[], int rtpAudioPorts[], int rtcpAudioPorts[], int rtpVideoPorts[], int rtcpVideoPorts[], RTP_TRANSPORT transportTypes[], int &nActualAddresses, SdpCodecList &supportedCodecs, SdpSrtpParameters &srtpParameters, int bandWidth, int &videoBandwidth, int &videoFramerate)=0
static int getInvalidConnectionId()
Provide an invalid connectionId.
Definition: CpMediaInterface.cpp:59
virtual OsStatus limitCodecs(int connectionId, const SdpCodecList &includeOnlyCodecList)=0
Further restrict the set of codecs to the list provided.
MEDIA_STREAM_TYPE
Definition: CpMediaInterface.h:101
virtual OsStatus setNotificationsEnabled(bool enabled, const UtlString &resourceName=NULL)=0
Enable or disable media notifications for one/all resource(s).
virtual OsStatus getAudioEnergyLevels(int connectionId, int &iInputEnergyLevel, int &iOutputEnergyLevel, int &nContributors, unsigned int *pContributorSRCIds, int *pContributorEngeryLevels)
Definition: CpMediaInterface.h:896
virtual OsMsgDispatcher * getNotificationDispatcher()=0
Returns the Media Notification dispatcher this controls.
virtual void setContactType(int connectionId, SIPX_CONTACT_TYPE eType, SIPX_CONTACT_ID contactId)=0
Set the preferred contact type for this media connection.
virtual OsStatus createPlayer(MpStreamPlayer **ppPlayer, const char *szStream, int flags, OsMsgQ *pMsgQ=NULL, const char *szTarget=NULL)=0
Create a simple player for this call to play a single stream.
virtual OsStatus deleteConnection(int connectionId)=0
Delete the specified RTP or RTCP connetion.
virtual OsStatus stopChannelAudio(int connectionId)=0
virtual OsStatus addAudioRtpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)=0
Add an alternate Audio RTP connection destination for this media interface.
virtual const SdpCodecList * getConnectionCodecList(int connectionId)=0
Get the list of codecs and payload IDs for the connection.
virtual OsStatus destroyQueuePlayer(MpStreamQueuePlayer *pPlayer)=0
Destroy a double-buffered list player in this call.
virtual OsStatus copyPayloadIds(int connectionId, int numCodecs, SdpCodec *remoteCodecs[])=0
copies payload IDs for matching codecs to interfaces codec list
virtual OsStatus stopAudio()=0
Stop playing any URLs or buffers.
OGG file container using OPUS encoder.
Definition: CpMediaInterface.h:115
virtual OsStatus getMediaProperty(const UtlString &propertyName, UtlString &propertyValue)=0
Get a media property on the media interface.
Definition: CpMediaInterface.h:113
virtual OsStatus setVideoWindowDisplay(const void *hWnd)=0
virtual uint32_t getSamplesPerFrame()=0
Returns the samples per frame of the flowgraph.
virtual UtlBoolean canAddParty()=0
Query whether a new party can be added to this media interfaces.
Definition: CpMediaInterfaceFactoryImpl.h:61
virtual OsStatus setConnectionBitrate(int connectionId, int bitrate)=0
Set connection bitrate on the fly.
virtual OsStatus addVideoRtpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)=0
Add an alternate Video RTP connection destination for this media interface.
virtual OsStatus setSrtpParams(SdpSrtpParameters &srtpParameters)
Set the secure RTP parameters.
Definition: CpMediaInterface.cpp:47
virtual OsStatus setPlcMethod(int connectionId, const UtlString &methodName="")=0
Set PLC method to use for codecs which does not have own PLC.
virtual UtlBoolean isVideoConferencing()=0
Query if we are mixing a video conference.
virtual UtlBoolean isSendingRtpVideo(int connectionId)=0
Definition: CpMediaInterface.h:110
virtual OsStatus pauseAudio()=0
Pause all playing URLs or buffers.
Socket is intended to transport RTP Audio data.
Definition: CpMediaInterface.h:40
virtual OsStatus getPrimaryCodec(int connectionId, UtlString &audioCodec, UtlString &videoCodec, int *audiopPayloadType, int *videoPayloadType, bool &isEncrypted)=0
Returns the primary codec for the connection.
virtual UtlBoolean isDestinationSet(int connectionId)=0
ID for codecs with variable bandwidth requirements.
Definition: CpMediaInterface.h:50
virtual OsStatus enableAudioTransport(int connectionId, UtlBoolean bEnable)
Definition: CpMediaInterface.h:909
Socket is intended to transport RTP Video data.
Definition: CpMediaInterface.h:42
ID for codecs with normal bandwidth requirements.
Definition: CpMediaInterface.h:55
virtual UtlBoolean isSendingRtpAudio(int connectionId)=0
Definition: CpMediaInterface.h:104
virtual OsStatus playAudio(const char *url, UtlBoolean repeat, UtlBoolean local, UtlBoolean remote, UtlBoolean mixWithMic=false, int downScaling=100, UtlBoolean autoStopAfterFinish=TRUE)=0
Play the specified audio URL to the call.
virtual int getNumBridgePorts()
Return the number of ports on the bridge (by default, not implemented in base class) ...
Definition: CpMediaInterface.h:232
virtual OsStatus getCapabilities(int connectionId, UtlString &rtpHostAddress, int &rtpAudioPort, int &rtcpAudioPort, int &rtpVideoPort, int &rtcpVideoPort, SdpCodecList &supportedCodecs, SdpSrtpParameters &srtpParams, int bandWidth, int &videoBandwidth, int &videoFramerate)=0
virtual OsStatus enableVideoTransport(int connectionId, UtlBoolean bEnable)
Definition: CpMediaInterface.h:914