I'm implementing a voip application using gstreamer, i use the example of the rtp in the plugin-good! i want to implement echo cancellation, i couldn't use the speex echo canceller with gstreamer because the input and the output are not in the same process. So, i want to use pulse audio to make echo cancellation? can any one help me how to deal with? the sender voice is pipeline = gst_pipeline_new (NULL); g_assert (pipeline); /* the audio capture and format conversion */ audiosrc = gst_element_factory_make (pulsesrc, "audiosrc"); g_assert (audiosrc); audioconv = gst_element_factory_make ("audioconvert", "audioconv"); g_assert (audioconv); audiores = gst_element_factory_make ("audioresample", "audiores"); g_assert (audiores); /* the encoding and payloading */ audioenc = gst_element_factory_make (AUDIO_ENC, "audioenc"); g_assert (audioenc); audiopay = gst_element_factory_make (AUDIO_PAY, "audiopay"); g_assert (audiopay); /* add capture and payloading to the pipeline and link */ gst_bin_add_many (GST_BIN (pipeline), audiosrc, audioconv, audiores, audioenc, audiopay, NULL); if (!gst_element_link_many (audiosrc, audioconv, audiores, audioenc, audiopay, NULL)) { g_error ("Failed to link audiosrc, audioconv, audioresample, " "audio encoder and audio payloader"); } and the receiver is : gst_bin_add_many (GST_BIN (pipeline), rtpsrc, rtcpsrc, rtcpsink, NULL); /* the depayloading and decoding */ audiodepay = gst_element_factory_make (AUDIO_DEPAY, "audiodepay"); g_assert (audiodepay); audiodec = gst_element_factory_make (AUDIO_DEC, "audiodec"); g_assert (audiodec); /* the audio playback and format conversion */ audioconv = gst_element_factory_make ("audioconvert", "audioconv"); g_assert (audioconv); audiores = gst_element_factory_make ("audioresample", "audiores"); g_assert (audiores); audiosink = gst_element_factory_make (pulsesink, "audiosink"); g_assert (audiosink); /* add depayloading and playback to the pipeline and link */ gst_bin_add_many (GST_BIN (pipeline), audiodepay, audiodec, audioconv, audiores, audiosink, NULL); res = gst_element_link_many (audiodepay, audiodec, audioconv, audiores, audiosink, NULL); g_assert (res == TRUE); i tried to change gstreamer proprietes to pulseaudio server in input and output and i used "pactl load-module module-echo-cancel aec_method=adrian" but i still listen to echo!! any one could help please thanks!!