Example #1
0
        /// <summary>
        /// Start recoding a conversation between one or more calls.
        /// </summary>
        /// <param name="captureMedia">The capture media; e.g the local microphone.</param>
        /// <param name="conferenceCalls">Array of remote conference calls.</param>
        public void StartRecordingConversation(AudioMedia captureMedia, AudioMedia[] conferenceCalls)
        {
            pjsua2.AudioMedia media = captureMedia.PjAudioMedia;
            media.startTransmit(_pjAudioMediaRecorder);

            // For each call.
            for (int i = 0; i < conferenceCalls.Length; i++)
            {
                pjsua2.AudioMedia mediaCall = conferenceCalls[i].PjAudioMedia;
                mediaCall.startTransmit(_pjAudioMediaRecorder);
            }
        }
Example #2
0
        /// <summary>
        /// Start conference call between remote parties; allow each party to talk to each other.
        /// </summary>
        /// <param name="conferenceCalls">Array of remote conference calls.</param>
        public void StartConferenceCall(AudioMedia[] conferenceCalls)
        {
            // For each call.
            for (int i = 0; i < conferenceCalls.Length; i++)
            {
                // Get first group.
                pjsua2.AudioMedia mediaCall_1 = conferenceCalls[i].PjAudioMedia;

                // For each call.
                for (int j = 0; j < conferenceCalls.Length; j++)
                {
                    // Get second group.
                    pjsua2.AudioMedia mediaCall_2 = conferenceCalls[j].PjAudioMedia;

                    // If the two audio media are not equal.
                    if (mediaCall_1.getPortId() != mediaCall_2.getPortId())
                    {
                        // Allow these two calls to communicate.
                        mediaCall_1.startTransmit(mediaCall_2);
                    }
                }
            }
        }
Example #3
0
 /// <summary>
 /// Establish unidirectional media flow to sink. This media port
 /// will act as a source, and it may transmit to multiple destinations / sink.
 /// And if multiple sources are transmitting to the same sink, the media
 /// will be mixed together.Source and sink may refer to the same Media,
 /// effectively looping the media.
 ///
 /// If bidirectional media flow is desired, application needs to call
 /// this method twice, with the second one called from the opposite source
 /// media.
 /// </summary>
 /// <param name="sink">The destination media.</param>
 public void StartTransmit(AudioMedia sink)
 {
     pjsua2.AudioMedia media = sink.PjAudioMedia;
     _pjAudioMedia.startTransmit(media);
 }
Example #4
0
 /// <summary>
 /// Start recording.
 /// </summary>
 /// <param name="captureMedia">The audio capture media.</param>
 public void Start(AudioMedia captureMedia)
 {
     pjsua2.AudioMedia media = captureMedia.PjAudioMedia;
     media.startTransmit(_pjAudioMediaRecorder);
 }