Hello mighty ones, We are using memory ports to feed audio samples to our calls. He have now started to test multiple calls and for our surprise calls are being mixed together by the conference. As an example, I've just made 2 calls and debugged the result. Call 0 is on conference slot 2 and media port 1. Call 1 is on conference slot 4 and media port 3. This is how we are making a call: -------------------------------------- // create a media port to generate samples. status = create_memory_port( pool, sampleRate, frameSize, numberFrames, channelCount, &callData[sessionId].memory_port_phone_out); WriteToLog("Created Memory Port",sessionId); // add port to conference status = pjsua_conf_add_port(pool, callData[sessionId].memory_port_phone_out, &callData[sessionId].port_id); if (status != PJ_SUCCESS) error_exit("Error adding memory port", status); WriteToLog("Added Memory Port to conference port",callData[sessionId].port_id); // make call WriteToLog("Making Call",sessionId); status = pjsua_call_make_call(acc_id,uri, 0, &callData[sessionId].port_id, NULL,NULL); if (status != PJ_SUCCESS) error_exit("Error making call", status); // assign the callid to the current call in callData callData[sessionId].call_id = callId; callData[sessionId].isUsed = TRUE; WriteToLog("Call Established",sessionId); // increment callId for next call callId++; -------------------------------------- This is how we put an audio frame into a specific call: memory_put_frame(callData[sessionId].memory_port_phone_out, &pjframe ); -------------------------------------- This is how we handle the on_call_media_state: pjsua_call_info ci; pjsua_conf_port_id *portId; pjsua_call_get_info(call_id,&ci); portId = pjsua_call_get_user_data(call_id); #ifdef DEBUG printf("on call media state"); #endif if (ci.media_status == PJSUA_CALL_MEDIA_ACTIVE) { WriteToLog("Call media state ACTIVE",call_id); WriteToLog("---> slot",ci.conf_slot); WriteToLog("---> port",*portId); pjsua_conf_connect(ci.conf_slot, 0); pjsua_conf_connect(*portId, ci.conf_slot); } else { WriteToLog("Call media state NOT ACTIVE",call_id); } ----- Are we doing something here that is leading to mixing on different calls ? Thanks a lot for any feedback -- Joao Cesar msn: jpcesar at gmail.com gtalk: jpcesar at gmail.com icq: 13790802