sipxmediaadapterlib  Version 3.3
CpPhoneMediaInterface.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2005-2015 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 _CpPhoneMediaInterface_h_
16 #define _CpPhoneMediaInterface_h_
17 
18 // SYSTEM INCLUDES
19 //#include <>
20 
21 // APPLICATION INCLUDES
22 #include <os/OsStatus.h>
23 #include <os/OsDefs.h>
24 #include <net/QoS.h>
25 #include <sdp/SdpCodecList.h>
26 #include "mi/CpMediaInterface.h"
28 
29 // DEFINES
30 // MACROS
31 // EXTERNAL FUNCTIONS
32 // EXTERNAL VARIABLES
33 // CONSTANTS
34 // STRUCTS
35 // TYPEDEFS
36 // FORWARD DECLARATIONS
37 class MpCallFlowGraph;
38 class SdpCodec;
39 class OsDatagramSocket;
41 class CircularBufferPtr;
42 
47 {
48 /* //////////////////////////// PUBLIC //////////////////////////////////// */
49 public:
50 
51 /* ============================ CREATORS ================================== */
52 
55  uint32_t samplesPerFrame = 0,
56  uint32_t samplesPerSec = 0,
57  const char* publicAddress = NULL,
58  const char* localAddress = NULL,
59  int numCodecs = 0,
60  SdpCodec* sdpCodecArray[] = NULL,
61  const char* pLocale = "",
62  int expeditedIpTos = QOS_LAYER3_LOW_DELAY_IP_TOS,
63  const char* szStunServer = NULL,
64  int iStunPort = PORT_NONE,
65  int iStunKeepAlivePeriodSecs = 28,
66  const char* szTurnServer = NULL,
67  int iTurnPort = PORT_NONE,
68  const char* szTurnUsername = NULL,
69  const char* szTurnPassword = NULL,
70  int iTurnKeepAlivePeriodSecs = 28,
71  UtlBoolean bEnableICE = FALSE,
72  OsMsgDispatcher* pDispatcher = NULL
73  );
74 
75 protected:
77  virtual ~CpPhoneMediaInterface();
78 
79 public:
80 
82  void release();
83 
84 /* ============================ MANIPULATORS ============================== */
85 
86 
87  virtual OsStatus createConnection(int& connectionId,
88  const char* szLocalAddress,
89  int localPort = 0,
90  void* videoWindowHandle = NULL,
91  void* const pSecurityAttributes = NULL,
92  const RtpTransportOptions rtpTransportOptions=RTP_TRANSPORT_UDP);
93 
95  virtual OsStatus setPlcMethod(int connectionId,
96  const UtlString &methodName="");
97 
98  virtual OsStatus getCapabilities(int connectionId,
99  UtlString& rtpHostAddress,
100  int& rtpAudioPort,
101  int& rtcpAudioPort,
102  int& rtpVideoPort,
103  int& rtcpVideoPort,
104  SdpCodecList& supportedCodecs,
105  SdpSrtpParameters& srtpParams,
106  int bandWidth,
107  int& videoBandwidth,
108  int& videoFramerate);
109 
110  virtual OsStatus getCapabilitiesEx(int connectionId,
111  int nMaxAddresses,
112  UtlString rtpHostAddresses[],
113  int rtpAudioPorts[],
114  int rtcpAudioPorts[],
115  int rtpVideoPorts[],
116  int rtcpVideoPorts[],
117  RTP_TRANSPORT transportTypes[],
118  int& nActualAddresses,
119  SdpCodecList& supportedCodecs,
120  SdpSrtpParameters& srtpParameters,
121  int bandWidth,
122  int& videoBandwidth,
123  int& videoFramerate);
124 
125  virtual OsMsgDispatcher*
126  setNotificationDispatcher(OsMsgDispatcher* pNotificationDispatcher);
127 
128  virtual OsStatus setNotificationsEnabled(bool enabled,
129  const UtlString& resourceName);
130 
131  virtual OsStatus setConnectionDestination(int connectionId,
132  const char* rtpHostAddress,
133  int rtpAudioPort,
134  int rtcpAudioPort,
135  int rtpVideoPort,
136  int rtcpVideoPort);
137 
138  virtual OsStatus startRtpSend(int connectionId,
139  int numCodecs,
140  SdpCodec* sendCodec[]);
141 
142  virtual OsStatus startRtpReceive(int connectionId,
143  int numCodecs,
144  SdpCodec* sendCodec[]);
145 
146  virtual OsStatus stopRtpSend(int connectionId);
147  virtual OsStatus stopRtpReceive(int connectionId);
148 
149  virtual OsStatus deleteConnection(int connectionId);
150 
151  virtual OsStatus startTone(int toneId, UtlBoolean local, UtlBoolean remote);
152  virtual OsStatus stopTone();
153 
155  virtual OsStatus setRtcpTimeOffset(int connectionId,
157  int streamIndex,
158  int timeOffset);
159 
160  virtual OsStatus startChannelTone(int connectionId, int toneId, UtlBoolean local, UtlBoolean remote);
161  virtual OsStatus stopChannelTone(int connectionId);
162 
163  virtual OsStatus playAudio(const char* url,
164  UtlBoolean repeat,
165  UtlBoolean local,
166  UtlBoolean remote,
167  UtlBoolean mixWithMic = false,
168  int downScaling = 100,
169  UtlBoolean autoStopOnFinish = TRUE);
170 
171 
172  virtual OsStatus playBuffer(char* buf,
173  unsigned long bufSize,
174  uint32_t bufRate,
175  int type,
176  UtlBoolean repeat,
177  UtlBoolean local,
178  UtlBoolean remote,
179  OsProtectedEvent* event = NULL,
180  UtlBoolean mixWithMic = false,
181  int downScaling = 100,
182  UtlBoolean autoStopOnFinish = TRUE);
183 
185  virtual OsStatus pauseAudio();
186 
188  virtual OsStatus resumeAudio();
189 
191  virtual OsStatus stopAudio();
192 
193  virtual OsStatus playChannelAudio(int connectionId,
194  const char* url,
195  UtlBoolean repeat,
196  UtlBoolean local,
197  UtlBoolean remote,
198  UtlBoolean mixWithMic = false,
199  int downScaling = 100,
200  UtlBoolean autoStopOnFinish = TRUE);
201 
202 
203  virtual OsStatus stopChannelAudio(int connectionId);
204 
205 
206  virtual OsStatus recordChannelAudio(int connectionId,
207  const char* szFile);
208 
209  virtual OsStatus stopRecordChannelAudio(int connectionId);
210 
211  virtual OsStatus recordBufferChannelAudio(int connectionId,
212  char* pBuffer,
213  int bufferSize,
214  int maxRecordTime = -1,
215  int maxSilence = -1) ;
216 
217  virtual OsStatus stopRecordBufferChannelAudio(int connectionId) ;
218 
219  virtual OsStatus recordCircularBufferChannelAudio(int connectionId,
220  CircularBufferPtr & buffer,
221  CpMediaInterface::CpAudioFileFormat recordingFormat,
222  unsigned long recordingBufferNotificationWatermark);
223 
224  virtual OsStatus stopRecordCircularBufferChannelAudio(int connectionId);
225 
226  virtual OsStatus createPlayer(MpStreamPlayer** ppPlayer,
227  const char* szStream,
228  int flags,
229  OsMsgQ *pMsgQ = NULL,
230  const char* szTarget = NULL) ;
231  virtual OsStatus destroyPlayer(MpStreamPlayer* pPlayer);
232  virtual OsStatus createPlaylistPlayer(MpStreamPlaylistPlayer**
233  ppPlayer,
234  OsMsgQ *pMsgQ = NULL,
235  const char* szTarget = NULL);
236  virtual OsStatus destroyPlaylistPlayer(MpStreamPlaylistPlayer* pPlayer);
237  virtual OsStatus createQueuePlayer(MpStreamQueuePlayer** ppPlayer,
238  OsMsgQ *pMsgQ = NULL,
239  const char* szTarget = NULL);
240  virtual OsStatus destroyQueuePlayer(MpStreamQueuePlayer* pPlayer);
241 
242  virtual OsStatus giveFocus();
243  virtual OsStatus defocus();
244 
246  virtual void setCodecCPULimit(int iLimit);
247 
249  virtual OsStatus setMicGain(float gain) {return OS_NOT_YET_IMPLEMENTED;} ;
250 
252  virtual OsStatus recordMic(int ms, int16_t* pAudioBuf, int bufferSize);
253 
255  virtual OsStatus recordMic(int ms,
256  int silenceLength,
257  const char* fileName);
258 
260  virtual void setContactType(int connectionId, SIPX_CONTACT_TYPE eType, SIPX_CONTACT_ID contactId);
266  virtual OsStatus setAudioCodecBandwidth(int connectionId, int bandWidth);
268 
269  virtual OsStatus rebuildCodecFactory(int connectionId,
270  int audioBandwidth,
271  int videoBandwidth,
272  UtlString& videoCodec);
273 
275  virtual OsStatus setConnectionBitrate(int connectionId, int bitrate);
276 
278  virtual OsStatus setConnectionFramerate(int connectionId, int framerate);
279 
280  virtual OsStatus setSecurityAttributes(const void* security);
281 
282  virtual OsStatus addAudioRtpConnectionDestination(int connectionId,
283  int iPriority,
284  const char* candidateIp,
285  int candidatePort);
286 
287  virtual OsStatus addAudioRtcpConnectionDestination(int connectionId,
288  int iPriority,
289  const char* candidateIp,
290  int candidatePort);
291 
292  virtual OsStatus addVideoRtpConnectionDestination(int connectionId,
293  int iPriority,
294  const char* candidateIp,
295  int candidatePort);
296 
297  virtual OsStatus addVideoRtcpConnectionDestination(int connectionId,
298  int iPriority,
299  const char* candidateIp,
300  int candidatePort);
301 
302  virtual void setConnectionTcpRole(const int connectionId, const RtpTcpRoles role)
303  {
304  // NOT IMPLEMENTED
305  }
306 
307  virtual OsStatus generateVoiceQualityReport(int connectiond,
308  const char* callId,
309  UtlString& report);
310 
312  virtual OsStatus setMixWeightsForOutput(int bridgeOutputPort, int numWeights, float weights[]);
313 
314 /* ============================ ACCESSORS ================================= */
315 
317  virtual int getCodecCPUCost();
318 
320  virtual int getCodecCPULimit();
321 
323  virtual uint32_t getSamplesPerSec();
324 
326  virtual uint32_t getSamplesPerFrame();
327 
329  virtual OsMsgQ* getMsgQ();
330 
332  virtual OsMsgDispatcher* getNotificationDispatcher();
333 
334  virtual OsStatus getVideoQuality(int& quality);
335  virtual OsStatus getVideoBitRate(int& bitRate);
336  virtual OsStatus getVideoFrameRate(int& frameRate);
337 
339  virtual OsStatus setVideoWindowDisplay(const void* hWnd);
340  virtual const void* getVideoWindowDisplay();
341 
343  virtual OsStatus setMediaProperty(const UtlString& propertyName,
344  const UtlString& propertyValue);
345 
347  virtual OsStatus getMediaProperty(const UtlString& propertyName,
348  UtlString& propertyValue);
349 
351  virtual OsStatus setMediaProperty(int connectionId,
352  const UtlString& propertyName,
353  const UtlString& propertyValue);
354 
356  virtual OsStatus getMediaProperty(int connectionId,
357  const UtlString& propertyName,
358  UtlString& propertyValue);
359 
360 
361 
362  virtual OsStatus setVideoQuality(int quality);
363  virtual OsStatus setVideoParameters(int bitRate, int frameRate);
364 
366  virtual OsStatus getPrimaryCodec(int connectionId,
367  UtlString& audioCodec,
368  UtlString& videoCodec,
369  int* audiopPayloadType,
370  int* videoPayloadType,
371  bool& isEncrypted);
372 
373  virtual UtlString getType() { return "CpPhoneMediaInterface"; };
374 
375 /* ============================ INQUIRY =================================== */
376 
377  virtual UtlBoolean isSendingRtpAudio(int connectionId);
378  virtual UtlBoolean isReceivingRtpAudio(int connectionId);
379  virtual UtlBoolean isSendingRtpVideo(int connectionId);
380  virtual UtlBoolean isReceivingRtpVideo(int connectionId);
381  virtual UtlBoolean isDestinationSet(int connectionId);
382  virtual UtlBoolean canAddParty();
383  virtual UtlBoolean isVideoInitialized(int connectionId);
384  virtual UtlBoolean isAudioInitialized(int connectionId);
385  virtual UtlBoolean isAudioAvailable();
386  virtual UtlBoolean isVideoConferencing() { return false; };
387 
388 
389 /* //////////////////////////// PROTECTED ///////////////////////////////// */
390 protected:
391 
392  UtlBoolean getLocalAddresses(int connectionId,
393  UtlString& hostIp,
394  int& rtpAudioPort,
395  int& rtcpAudioPort,
396  int& rtpVideoPort,
397  int& rtcpVideoPort);
398 
399  UtlBoolean getNatedAddresses(int connectionId,
400  UtlString& hostIp,
401  int& rtpAudioPort,
402  int& rtcpAudioPort,
403  int& rtpVideoPort,
404  int& rtcpVideoPort);
405 
406 
407  UtlBoolean getRelayAddresses(int connectionId,
408  UtlString& hostIp,
409  int& rtpAudioPort,
410  int& rtcpAudioPort,
411  int& rtpVideoPort,
412  int& rtcpVideoPort);
413 
414 
415  OsStatus addLocalContacts(int connectionId,
416  int nMaxAddresses,
417  UtlString rtpHostAddresses[],
418  int rtpAudioPorts[],
419  int rtcpAudioPorts[],
420  int rtpVideoPorts[],
421  int rtcpVideoPorts[],
422  int& nActualAddresses);
423 
424  OsStatus addNatedContacts(int connectionId,
425  int nMaxAddresses,
426  UtlString rtpHostAddresses[],
427  int rtpAudioPorts[],
428  int rtcpAudioPorts[],
429  int rtpVideoPorts[],
430  int rtcpVideoPorts[],
431  int& nActualAddresses);
432 
433  OsStatus addRelayContacts(int connectionId,
434  int nMaxAddresses,
435  UtlString rtpHostAddresses[],
436  int rtpAudioPorts[],
437  int rtcpAudioPorts[],
438  int rtpVideoPorts[],
439  int rtcpVideoPorts[],
440  int& nActualAddresses);
441 
442  void applyAlternateDestinations(int connectionId);
443 
445  OsStatus createRtpSocketPair(UtlString localAddress,
446  int localPort,
447  SIPX_CONTACT_TYPE contactType,
448  OsDatagramSocket* &rtpSocket,
449  OsDatagramSocket* &rtcpSocket);
461 /* //////////////////////////// PRIVATE /////////////////////////////////// */
462 private:
463  CpPhoneMediaConnection* getMediaConnection(int connectionId);
465  OsStatus doDeleteConnection(CpPhoneMediaConnection* mediaConnection);
466 
468  UtlString mLocalAddress;
469  MpCallFlowGraph* mpFlowGraph;
470  UtlBoolean mRingToneFromFile;
471  SdpCodecList mSupportedCodecs;
475  UtlString mStunServer ;
478  UtlString mTurnServer ;
479  int mTurnPort ;
481  UtlString mTurnUsername ;
482  UtlString mTurnPassword ;
483  UtlBoolean mEnableIce ;
486 
490  CpPhoneMediaInterface(const CpPhoneMediaInterface& rCpPhoneMediaInterface);
491 
494 
495 };
496 
497 /* ============================ INLINE METHODS ============================ */
498 #endif // _CpPhoneMediaInterface_h_
virtual uint32_t getSamplesPerSec()
Returns the sample rate of the flowgraph.
Definition: CpPhoneMediaInterface.cpp:1819
virtual OsStatus destroyQueuePlayer(MpStreamQueuePlayer *pPlayer)
Destroy a double-buffered list player in this call.
Definition: CpPhoneMediaInterface.cpp:1517
int mTurnPort
Definition: CpPhoneMediaInterface.h:479
virtual OsStatus setConnectionFramerate(int connectionId, int framerate)
Set connection framerate on the fly.
Definition: CpPhoneMediaInterface.cpp:1695
virtual OsStatus setMicGain(float gain)
Definition: CpPhoneMediaInterface.h:249
CpAudioFileFormat
Definition: CpMediaInterface.h:108
Dispatcher to translate MediaLib notifications into abstracted MediaAdapterLib notifications.
Definition: MaNotfTranslatorDispatcher.h:40
virtual OsStatus stopTone()
Stop playing all tones.
Definition: CpPhoneMediaInterface.cpp:1559
virtual OsStatus setAudioCodecBandwidth(int connectionId, int bandWidth)
Rebuild the codec factory on the fly.
Definition: CpPhoneMediaInterface.cpp:1676
virtual OsMsgDispatcher * getNotificationDispatcher()
Returns the Media Notification dispatcher this controls.
Definition: CpPhoneMediaInterface.cpp:1835
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)
Definition: CpPhoneMediaInterface.cpp:506
UtlBoolean mRingToneFromFile
Definition: CpPhoneMediaInterface.h:470
OsStatus addLocalContacts(int connectionId, int nMaxAddresses, UtlString rtpHostAddresses[], int rtpAudioPorts[], int rtcpAudioPorts[], int rtpVideoPorts[], int rtcpVideoPorts[], int &nActualAddresses)
Definition: CpPhoneMediaInterface.cpp:2217
virtual OsStatus destroyPlaylistPlayer(MpStreamPlaylistPlayer *pPlayer)
Destroy a single-buffered play list player in this call.
Definition: CpPhoneMediaInterface.cpp:1479
virtual OsStatus setRtcpTimeOffset(int connectionId, CpMediaInterface::MEDIA_STREAM_TYPE mediaType, int streamIndex, int timeOffset)
Set an offset to the NTP time provided in the RTCP SR.
Definition: CpPhoneMediaInterface.cpp:1570
Definition: CpPhoneMediaInterface.h:46
UtlString mTurnServer
Definition: CpPhoneMediaInterface.h:478
virtual OsStatus stopChannelAudio(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1342
OsStatus createRtpSocketPair(UtlString localAddress, int localPort, SIPX_CONTACT_TYPE contactType, OsDatagramSocket *&rtpSocket, OsDatagramSocket *&rtcpSocket)
Create socket pair for RTP/RTCP streams.
Definition: CpPhoneMediaInterface.cpp:2568
virtual OsStatus stopRtpSend(int connectionId)
Stop sending RTP and RTCP data for the specified connection.
Definition: CpPhoneMediaInterface.cpp:1079
OsStatus addRelayContacts(int connectionId, int nMaxAddresses, UtlString rtpHostAddresses[], int rtpAudioPorts[], int rtcpAudioPorts[], int rtpVideoPorts[], int rtcpVideoPorts[], int &nActualAddresses)
Definition: CpPhoneMediaInterface.cpp:2324
virtual UtlBoolean isAudioAvailable()
Query if the audio device is available.
Definition: CpPhoneMediaInterface.cpp:1967
virtual void setCodecCPULimit(int iLimit)
Limits the available codecs to only those within the designated limit.
Definition: CpPhoneMediaInterface.cpp:1622
virtual OsStatus getPrimaryCodec(int connectionId, UtlString &audioCodec, UtlString &videoCodec, int *audiopPayloadType, int *videoPayloadType, bool &isEncrypted)
Returns the primary codec for the connection.
Definition: CpPhoneMediaInterface.cpp:1840
int mStunRefreshPeriodSecs
Definition: CpPhoneMediaInterface.h:477
int mExpeditedIpTos
Definition: CpPhoneMediaInterface.h:474
virtual OsStatus stopRecordChannelAudio(int connectionId)
Stop buffer or file recording which has been started.
Definition: CpPhoneMediaInterface.cpp:1368
UtlBoolean mEnableIce
Definition: CpPhoneMediaInterface.h:483
virtual UtlBoolean isReceivingRtpAudio(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1902
virtual UtlBoolean isVideoInitialized(int connectionId)
Query whether the connection has started sending or receiving video.
Definition: CpPhoneMediaInterface.cpp:1957
virtual OsStatus deleteConnection(int connectionId)
Delete the specified RTP or RTCP connetion.
Definition: CpPhoneMediaInterface.cpp:1116
MaNotfTranslatorDispatcher mTranslatorDispatcher
Definition: CpPhoneMediaInterface.h:485
CpPhoneMediaInterface & operator=(const CpPhoneMediaInterface &rhs)
Disabled equals operator.
virtual OsStatus stopChannelTone(int connectionId)
Stop playing DTMF tone.
Definition: CpPhoneMediaInterface.cpp:1583
virtual OsStatus addAudioRtpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)
Add an alternate Audio RTP connection destination for this media interface.
Definition: CpPhoneMediaInterface.cpp:761
virtual const void * getVideoWindowDisplay()
Definition: CpPhoneMediaInterface.cpp:1977
virtual OsStatus setVideoWindowDisplay(const void *hWnd)
Returns primary codec for the connection.
Definition: CpPhoneMediaInterface.cpp:1972
virtual UtlBoolean isVideoConferencing()
Query if we are mixing a video conference.
Definition: CpPhoneMediaInterface.h:386
virtual OsStatus recordChannelAudio(int connectionId, const char *szFile)
Definition: CpPhoneMediaInterface.cpp:1351
UtlHashMap mInterfaceProperties
Definition: CpPhoneMediaInterface.h:484
int mTurnRefreshPeriodSecs
Definition: CpPhoneMediaInterface.h:480
OsStatus doDeleteConnection(CpPhoneMediaConnection *mediaConnection)
Definition: CpPhoneMediaInterface.cpp:1132
UtlString mStunServer
Definition: CpPhoneMediaInterface.h:475
virtual OsStatus playChannelAudio(int connectionId, const char *url, UtlBoolean repeat, UtlBoolean local, UtlBoolean remote, UtlBoolean mixWithMic=false, int downScaling=100, UtlBoolean autoStopOnFinish=TRUE)
Definition: CpPhoneMediaInterface.cpp:1326
virtual OsStatus resumeAudio()
Resume all paused URLs or buffers.
Definition: CpPhoneMediaInterface.cpp:1304
virtual OsStatus createConnection(int &connectionId, const char *szLocalAddress, int localPort=0, void *videoWindowHandle=NULL, void *const pSecurityAttributes=NULL, const RtpTransportOptions rtpTransportOptions=RTP_TRANSPORT_UDP)
Create a media connection in the media processing subsystem.
Definition: CpPhoneMediaInterface.cpp:286
CpPhoneMediaConnection * removeMediaConnection(int connectionId)
Abstract media control interface.
Definition: CpMediaInterface.h:96
virtual OsStatus setMixWeightsForOutput(int bridgeOutputPort, int numWeights, float weights[])
Set gain for inputs to given output on bridge.
Definition: CpPhoneMediaInterface.cpp:1095
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)
Definition: CpPhoneMediaInterface.cpp:377
virtual OsStatus pauseAudio()
Pause all playing URLs or buffers.
Definition: CpPhoneMediaInterface.cpp:1294
virtual OsStatus addAudioRtcpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)
Add an alternate Audio RTCP connection destination for this media interface.
Definition: CpPhoneMediaInterface.cpp:800
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)
Play the specified audio buffer to the call.
Definition: CpPhoneMediaInterface.cpp:1244
MpCallFlowGraph * mpFlowGraph
Flowgraph for audio part of call.
Definition: CpPhoneMediaInterface.h:469
virtual UtlBoolean isAudioInitialized(int connectionId)
Query whether the connection has started sending or receiving audio.
Definition: CpPhoneMediaInterface.cpp:1962
virtual OsStatus destroyPlayer(MpStreamPlayer *pPlayer)
Destroy a simple player in this call.
Definition: CpPhoneMediaInterface.cpp:1441
virtual int getCodecCPUCost()
Calculate the current cost for our sending/receiving codecs.
Definition: CpPhoneMediaInterface.cpp:1728
virtual OsStatus setVideoParameters(int bitRate, int frameRate)
Definition: CpPhoneMediaInterface.cpp:1722
OsStatus addNatedContacts(int connectionId, int nMaxAddresses, UtlString rtpHostAddresses[], int rtpAudioPorts[], int rtcpAudioPorts[], int rtpVideoPorts[], int rtcpVideoPorts[], int &nActualAddresses)
Definition: CpPhoneMediaInterface.cpp:2271
virtual OsStatus stopAudio()
Stop playing any URLs or buffers.
Definition: CpPhoneMediaInterface.cpp:1314
virtual OsStatus startTone(int toneId, UtlBoolean local, UtlBoolean remote)
Start playing the specified tone for this call.
Definition: CpPhoneMediaInterface.cpp:1531
virtual OsStatus getVideoBitRate(int &bitRate)
Definition: CpPhoneMediaInterface.cpp:1870
virtual OsStatus setVideoQuality(int quality)
Definition: CpPhoneMediaInterface.cpp:1717
void release()
Public interface for destroying this media interface.
Definition: CpPhoneMediaInterface.cpp:279
virtual OsStatus createPlayer(MpStreamPlayer **ppPlayer, const char *szStream, int flags, OsMsgQ *pMsgQ=NULL, const char *szTarget=NULL)
Create a simple player for this call to play a single stream.
Definition: CpPhoneMediaInterface.cpp:1412
MEDIA_STREAM_TYPE
Definition: CpMediaInterface.h:101
UtlBoolean getRelayAddresses(int connectionId, UtlString &hostIp, int &rtpAudioPort, int &rtcpAudioPort, int &rtpVideoPort, int &rtcpVideoPort)
Definition: CpPhoneMediaInterface.cpp:2125
virtual OsStatus rebuildCodecFactory(int connectionId, int audioBandwidth, int videoBandwidth, UtlString &videoCodec)
Rebuild codec factory with one video codec.
Definition: CpPhoneMediaInterface.cpp:1681
Definition: CpPhoneMediaInterface.cpp:57
UtlString mLocalAddress
Address on which ports are bound.
Definition: CpPhoneMediaInterface.h:468
virtual OsStatus stopRecordCircularBufferChannelAudio(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1407
int mStunPort
Definition: CpPhoneMediaInterface.h:476
virtual OsStatus startRtpReceive(int connectionId, int numCodecs, SdpCodec *sendCodec[])
Start receiving RTP using the specified codec list.
Definition: CpPhoneMediaInterface.cpp:1024
virtual OsStatus playAudio(const char *url, UtlBoolean repeat, UtlBoolean local, UtlBoolean remote, UtlBoolean mixWithMic=false, int downScaling=100, UtlBoolean autoStopOnFinish=TRUE)
Play the specified audio URL to the call.
Definition: CpPhoneMediaInterface.cpp:1203
UtlBoolean getNatedAddresses(int connectionId, UtlString &hostIp, int &rtpAudioPort, int &rtcpAudioPort, int &rtpVideoPort, int &rtcpVideoPort)
Definition: CpPhoneMediaInterface.cpp:2039
virtual OsStatus startRtpSend(int connectionId, int numCodecs, SdpCodec *sendCodec[])
Start sending RTP using the specified codec list.
Definition: CpPhoneMediaInterface.cpp:918
virtual OsMsgDispatcher * setNotificationDispatcher(OsMsgDispatcher *pNotificationDispatcher)
Add, replace, or clear the media notification dispatcher held by the MI.
Definition: CpPhoneMediaInterface.cpp:602
virtual OsStatus setConnectionBitrate(int connectionId, int bitrate)
Set connection bitrate on the fly.
Definition: CpPhoneMediaInterface.cpp:1689
virtual OsStatus createPlaylistPlayer(MpStreamPlaylistPlayer **ppPlayer, OsMsgQ *pMsgQ=NULL, const char *szTarget=NULL)
Create a single-buffered play list player for this call.
Definition: CpPhoneMediaInterface.cpp:1456
virtual OsStatus startChannelTone(int connectionId, int toneId, UtlBoolean local, UtlBoolean remote)
Start playing DTMF tone.
Definition: CpPhoneMediaInterface.cpp:1578
UtlString mRtpReceiveHostAddress
Advertised as place to send RTP/RTCP.
Definition: CpPhoneMediaInterface.h:467
UtlString mTurnPassword
Definition: CpPhoneMediaInterface.h:482
virtual OsStatus setNotificationsEnabled(bool enabled, const UtlString &resourceName)
Enable or disable media notifications for one/all resource(s).
Definition: CpPhoneMediaInterface.cpp:633
CpPhoneMediaConnection * getMediaConnection(int connectionId)
Definition: CpPhoneMediaInterface.cpp:641
virtual UtlBoolean isSendingRtpAudio(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1884
virtual OsStatus setConnectionDestination(int connectionId, const char *rtpHostAddress, int rtpAudioPort, int rtcpAudioPort, int rtpVideoPort, int rtcpVideoPort)
Set the connection destination (target) for the designated media connection.
Definition: CpPhoneMediaInterface.cpp:647
virtual OsStatus createQueuePlayer(MpStreamQueuePlayer **ppPlayer, OsMsgQ *pMsgQ=NULL, const char *szTarget=NULL)
Create a double-buffered list player for this call.
Definition: CpPhoneMediaInterface.cpp:1494
UtlDList mMediaConnections
Definition: CpPhoneMediaInterface.h:472
virtual UtlString getType()
Set IP address to advertise in SDP.
Definition: CpPhoneMediaInterface.h:373
virtual UtlBoolean isReceivingRtpVideo(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1926
virtual OsStatus setPlcMethod(int connectionId, const UtlString &methodName="")
Set PLC method to use for codecs which does not have own PLC.
Definition: CpPhoneMediaInterface.cpp:371
virtual UtlBoolean canAddParty()
Query whether a new party can be added to this media interfaces.
Definition: CpPhoneMediaInterface.cpp:1951
SdpCodecList mSupportedCodecs
Definition: CpPhoneMediaInterface.h:471
virtual void setConnectionTcpRole(const int connectionId, const RtpTcpRoles role)
Definition: CpPhoneMediaInterface.h:302
virtual OsStatus recordMic(int ms, int16_t *pAudioBuf, int bufferSize)
Record the microphone data.
Definition: CpPhoneMediaInterface.cpp:1634
UtlBoolean getLocalAddresses(int connectionId, UtlString &hostIp, int &rtpAudioPort, int &rtcpAudioPort, int &rtpVideoPort, int &rtcpVideoPort)
Definition: CpPhoneMediaInterface.cpp:1986
int mDefaultMaxMcastRtpStreams
Definition: CpPhoneMediaInterface.h:473
virtual OsStatus giveFocus()
Give the focus of the local audio device to the associated call.
Definition: CpPhoneMediaInterface.cpp:1589
virtual OsStatus getVideoFrameRate(int &frameRate)
Definition: CpPhoneMediaInterface.cpp:1877
virtual UtlBoolean isSendingRtpVideo(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1919
Definition: CpMediaInterfaceFactoryImpl.h:61
UtlString mTurnUsername
Definition: CpPhoneMediaInterface.h:481
virtual OsStatus getVideoQuality(int &quality)
Definition: CpPhoneMediaInterface.cpp:1864
virtual int getCodecCPULimit()
Calculate the worst cost for our sending/receiving codecs.
Definition: CpPhoneMediaInterface.cpp:1761
virtual OsStatus recordBufferChannelAudio(int connectionId, char *pBuffer, int bufferSize, int maxRecordTime=-1, int maxSilence=-1)
Start recording to buffer.
Definition: CpPhoneMediaInterface.cpp:1385
virtual UtlBoolean isDestinationSet(int connectionId)
Definition: CpPhoneMediaInterface.cpp:1934
virtual OsMsgQ * getMsgQ()
Returns the flowgraph&#39;s message queue.
Definition: CpPhoneMediaInterface.cpp:1830
virtual OsStatus recordCircularBufferChannelAudio(int connectionId, CircularBufferPtr &buffer, CpMediaInterface::CpAudioFileFormat recordingFormat, unsigned long recordingBufferNotificationWatermark)
Definition: CpPhoneMediaInterface.cpp:1399
virtual uint32_t getSamplesPerFrame()
Returns the samples per frame of the flowgraph.
Definition: CpPhoneMediaInterface.cpp:1824
void applyAlternateDestinations(int connectionId)
Definition: CpPhoneMediaInterface.cpp:2378
virtual OsStatus setSecurityAttributes(const void *security)
Definition: CpPhoneMediaInterface.cpp:1701
virtual OsStatus stopRtpReceive(int connectionId)
Stop receiving RTP and RTCP data for the specified connection.
Definition: CpPhoneMediaInterface.cpp:1100
virtual OsStatus addVideoRtpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)
Add an alternate Video RTP connection destination for this media interface.
Definition: CpPhoneMediaInterface.cpp:839
virtual void setContactType(int connectionId, SIPX_CONTACT_TYPE eType, SIPX_CONTACT_ID contactId)
Set the contact type for this Phone media interface.
Definition: CpPhoneMediaInterface.cpp:1657
virtual ~CpPhoneMediaInterface()
Destructor.
Definition: CpPhoneMediaInterface.cpp:236
CpPhoneMediaInterface(CpMediaInterfaceFactoryImpl *pFactoryImpl, uint32_t samplesPerFrame=0, uint32_t samplesPerSec=0, const char *publicAddress=NULL, const char *localAddress=NULL, int numCodecs=0, SdpCodec *sdpCodecArray[]=NULL, const char *pLocale="", int expeditedIpTos=QOS_LAYER3_LOW_DELAY_IP_TOS, const char *szStunServer=NULL, int iStunPort=PORT_NONE, int iStunKeepAlivePeriodSecs=28, const char *szTurnServer=NULL, int iTurnPort=PORT_NONE, const char *szTurnUsername=NULL, const char *szTurnPassword=NULL, int iTurnKeepAlivePeriodSecs=28, UtlBoolean bEnableICE=FALSE, OsMsgDispatcher *pDispatcher=NULL)
Constructor.
Definition: CpPhoneMediaInterface.cpp:160
virtual OsStatus defocus()
Take this call out of focus for the local audio device.
Definition: CpPhoneMediaInterface.cpp:1603
virtual OsStatus generateVoiceQualityReport(int connectiond, const char *callId, UtlString &report)
Definition: CpPhoneMediaInterface.cpp:1706
virtual OsStatus stopRecordBufferChannelAudio(int connectionId)
Stop recording to buffer.
Definition: CpPhoneMediaInterface.cpp:1394
virtual OsStatus getMediaProperty(const UtlString &propertyName, UtlString &propertyValue)
Get a media property on the media interface.
Definition: CpPhoneMediaInterface.cpp:2484
virtual OsStatus setMediaProperty(const UtlString &propertyName, const UtlString &propertyValue)
Set a media property on the media interface.
Definition: CpPhoneMediaInterface.cpp:2462
virtual OsStatus addVideoRtcpConnectionDestination(int connectionId, int iPriority, const char *candidateIp, int candidatePort)
Add an alternate Video RTCP connection destination for this media interface.
Definition: CpPhoneMediaInterface.cpp:878