|
| | GstMediaStackAdapter (ConversationManager &conversationManager) |
| | Note: Gsttapi Media Interfaces have a finite number of supported endpoints that are allowed in each bridge mixer - by default this value is 10 (1 used for local mic / speaker, 1 for a WAV Player/Recorder and 1 for a Tone Player, leaving 7 remaining for RemoteParticipants - 8 if local audio
is disabled).
|
| |
| | GstMediaStackAdapter (ConversationManager &conversationManager, int defaultSampleRate, int maxSampleRate) |
| |
| virtual | ~GstMediaStackAdapter () |
| |
| virtual void | conversationManagerReady (ConversationManager *conversationManager) override |
| |
| virtual void | shutdown () override |
| |
| virtual ConversationHandle | createSharedMediaInterfaceConversation (ConversationHandle sharedMediaInterfaceConvHandle, ConversationManager::AutoHoldMode autoHoldMode=ConversationManager::AutoHoldEnabled) |
| | Only applicable if GstConversationMediaInterfaceMode is used.
|
| |
| virtual void | buildSessionCapabilities (const resip::Data &ipaddress, const std::vector< unsigned int > &codecIds, resip::SdpContents &sessionCaps) override |
| | Builds a session capabilties SDPContents based on the passed in ipaddress and codec ordering.
|
| |
| virtual void | setGstTOSValue (int tos) |
| |
| virtual Conversation * | createConversationInstance (ConversationHandle handle, RelatedConversationSet *relatedConversationSet, ConversationHandle sharedMediaInterfaceConvHandle, ConversationManager::AutoHoldMode autoHoldMode) override |
| |
| virtual LocalParticipant * | createLocalParticipantInstance (ParticipantHandle partHandle) override |
| |
| virtual MediaResourceParticipant * | createMediaResourceParticipantInstance (ParticipantHandle partHandle, const resip::Uri &mediaUrl, const std::shared_ptr< resip::Data > &audioBuffer, void *recordingCircularBuffer) override |
| |
| virtual RemoteParticipant * | createRemoteParticipantInstance (resip::DialogUsageManager &dum, RemoteParticipantDialogSet &rpds) override |
| |
| virtual RemoteParticipant * | createRemoteParticipantInstance (ParticipantHandle partHandle, resip::DialogUsageManager &dum, RemoteParticipantDialogSet &rpds) override |
| |
| virtual RemoteParticipantDialogSet * | createRemoteParticipantDialogSetInstance (ConversationManager::ParticipantForkSelectMode forkSelectMode=ConversationManager::ForkSelectAutomatic, std::shared_ptr< ConversationProfile > conversationProfile=nullptr) override |
| |
| virtual bool | supportsMultipleMediaInterfaces () override |
| |
| virtual bool | canConversationsShareParticipants (Conversation *conversation1, Conversation *conversation2) override |
| |
| virtual bool | supportsLocalAudio () override |
| |
| virtual void | runMainLoop () |
| |
| | MediaStackAdapter (ConversationManager &conversationManager) |
| |
| virtual | ~MediaStackAdapter () |
| |
| virtual void | setRTCPEventLoggingHandler (std::shared_ptr< flowmanager::RTCPEventLoggingHandler > h) |
| |
| virtual std::shared_ptr< flowmanager::RTCPEventLoggingHandler > | getRTCPEventLoggingHandler () const |
| |
This class is one of two main classes of concern to an application using the UserAgent library.
This class should be subclassed by the application and the ConversationManager handlers should be implemented by it.
This class is responsible for handling tasks that are directly related to managing Conversations. All non-conversation handling is done via the UserAgent class.
This class handles tasks such as: -Creation and destruction of Conversations -Participant management and creation -Placing and receiving calls -Playing audio and/or tones into a conversation -Managing local audio properties
Definition at line 61 of file GstMediaStackAdapter.hxx.
Note: Gsttapi Media Interfaces have a finite number of supported endpoints that are allowed in each bridge mixer - by default this value is 10 (1 used for local mic / speaker, 1 for a WAV Player/Recorder and 1 for a Tone Player, leaving 7 remaining for RemoteParticipants - 8 if local audio
is disabled).
Also, if enableExtraPlayAndRecordResources is passed in as true then an extra slot if taken for an additional player and recorder.
The limit of 10 is controlled by the preprocessor define DEFAULT_BRIDGE_MAX_IN_OUTPUTS (see http://www.resiprocate.org/Limitations_with_Gsttapi_media_Integration for more details.
GstGlobalMediaInterfaceMode - uses 1 global Gsttapi media interface and allows for participants to exist in multiple conversations at the same time and have the bridge mixer properly control their mixing. In this mode, there can only be a single MediaParticipant at a time performing each operation (ie. 1 playing a WAV, 1 recording and one playing a tone is allowed, but only 1 of each type) for all conversations. If enableExtraPlayAndRecordResources is enabled then you are allowed to have 2 players and 2 recorders. This architecture/mode is appropriate for single user agent devices (ie. sip phones).
GstConversationMediaInterfaceMode - by default uses 1 Gsttapi media interface per conversation. If you use createSharedMediaInterfaceConversation instead of createConversation then you can specify that 2 (multiple) conversations can share the same media interface. This allows participants to be moved between any conversations that share the same media interface. Using this mode, participants can only exist in multiple conversations at the same time if those conversations share the same media interface. This means the limit of remote participants is no longer global, it now applies to each media interface. The limit on media participants is per media interface. This architecture/mode is appropriate for server applications, such as multi-party conference servers (up to 8 participants per conference), music on hold servers and call park servers. API restrictions in this mode: -joinConversation -restricted to functioning only if both source and destination conversations share the same media inteface -addParticipant -can only add a participant to multiple conversations if the conversations share the same media interface -moveParticipant -can only move a participant to another conversation if both source and destination conversations share the same media inteface -alertParticipant -if you are using the EarlyFlag then the RemoteParticipant must be added to a conversation before calling this -answerParticipant -RemoteParticipant must be added to a conversation before calling this Note: Only LocalParticipants can only exist outside of a conversation. If they exist in multiple conversations then those conversations must have the same media interface.
Definition at line 49 of file GstMediaStackAdapter.cxx.