I figured out the root cause. It was that I had not included all the header files as suggested by the below link while building my application: http://trac.pjsip.org/repos/wiki/Getting_Started_Using I had inlcuded only<pjsua.h>, since I guessed based on my cursory examination of this file that it included all the other files. Now I included all the files #include <pjsua-lib/pjsua.h> #include <pjlib.h> #include <pjlib-util.h> #include <pjmedia.h> #include <pjmedia-codec.h> #include <pjsip.h> #include <pjsip_simple.h> #include <pjsip_ua.h> #include <pjsua-lib/pjsua.h> and I could play back media at both the UAC and the UAS. ----- Original Message ----- From: "Vinod Parameswaran" <vinodp@xxxxxxxxxxxxxxxxxxxxxxx> To: "pjsip" <pjsip at lists.pjsip.org> Sent: Friday, August 20, 2010 8:42:21 PM Subject: RE:Need Urgent help with a showstopper!!! Hello, Upon further debugging this issue, I have concluded that on the same system, two totally different values are returned by the APIs pjmedia_aud_dev_count () and pjmedia_aud_dev_lookup(), in the case of the sample application auddemo and in the case of my application. Reproducing the output from auddemo on the system: Enter selection: l Found 5 devices: 0: ALSA [plughw:0,0] (1/1) 1: PA [ALI 5451: ALI 5451 (hw:0,0)] (2/2) 2: PA [pulse] (32/32) 3: PA [dmix] (0/2) 4: PA [default] (32/32) The above output comes from the function list_devices: static void list_devices(void) { unsigned i; pj_status_t status; dev_count = pjmedia_aud_dev_count(); if (dev_count == 0) { PJ_LOG(3,(THIS_FILE, "No devices found")); return; } PJ_LOG(3,(THIS_FILE, "Found %d devices:", dev_count)); for (i=0; i<dev_count; ++i) { pjmedia_aud_dev_info info; status = pjmedia_aud_dev_get_info(i, &info); if (status != PJ_SUCCESS) continue; PJ_LOG(3,(THIS_FILE," %2d: %s [%s] (%d/%d)", i, info.driver, info.name, info.input_count, info.output_count)); } } Apparently pjmedia_aud_dev_count () API returns a non-zero value. Also, pjmedia_aud_dev_get_info() returns PJ_SUCCESS. Now, here is the code snippet from my application: /* check audio device availability befor starting */ numAudioDevices = pjmedia_aud_dev_count (); PJ_LOG(3, ("sipClient.c", "Number of Audio Devices : %d", numAudioDevices)); And here is the output I get on the same system: 19:54:08.876 sipClient.c Number of Audio Devices : 0 Apparently, the API pjmedia_aud_dev_count () returns 0 I am not sure how this could be the case on the same system. I would greatly appreciate your inputs to resolve this issue. TIA Vin