[pjsip] Calls being mixed :S
João César
jpcesar at gmail.com
Wed Nov 12 06:34:43 EST 2008
Ok, I did that:
Conference ports:
Port #00[16KHz/20ms/1] Master/sound transmitting to:
Port #01[ 8KHz/32ms/1] memory playback transmitting to: #2
Port #02[ 8KHz/20ms/1] sip:4787 at 10.0.1.27 transmitting to: #0
Port #03[ 8KHz/32ms/1] memory playback transmitting to: #4
Port #04[ 8KHz/20ms/1] sip:9862 at 10.0.1.27 transmitting to: #0
Everything seems to be ok (since those 2 memoryplaybacks are
different, already checked) , i'm wondering if it's the destination
SIP that is mixing them.
Ill be in touch
tx
On Wed, Nov 12, 2008 at 9:55 AM, Nanang Izzuddin <nanang at pjsip.org> wrote:
> Hi,
>
> I think you should examine the conference ports list when both calls
> are in confirmed state, the log you send only print the list when only
> one call confirmed. You may put conf_list() in the
> on_call_media_state() after connecting those ports.
>
> Regards,
> nanang
>
>
> On Tue, Nov 11, 2008 at 7:56 PM, João César <jpcesar at gmail.com> wrote:
>> Ok i've added that debug method, and called it after i call the
>> make_call method.
>>
>> (...)
>> on call state 12:47:10.468 APP Call 0 state=CALLING
>> (...)
>> --> Conference ports:
>> --> Port #00[16KHz/20ms/1] Master/sound transmitting to:
>> --> Port #01[ 8KHz/32ms/1] memory playback transmitting to:
>> (...)
>> on call state 12:47:10.468 APP Call 0 state=EARLY
>> on call state 12:47:10.718 APP Call 0 state=CONNECTING
>> (...)
>>
>> 12:47:10.718 pjsua_media.c Media updates, stream #0: PCMA (sendrecv)
>> on call media state 12:47:10.718 conference.c Port 2 (sip:6633 at 10.0.1.27) tran
>> smitting to port 0 (Master/sound)
>> 12:47:10.718 conference.c Port 1 (memory playback) transmitting to port 2 (si
>> p:6633 at 10.0.1.27)
>> (...)
>> on call state 12:47:10.718 APP Call 0 state=CONFIRMED
>> 12:47:50.656 pjsua_call.c Making call with acc #0 to sip:2557 at 10.0.1.27
>> 12:47:50.656 pjsua_media.c Media index 0 selected for call 1
>> (...)
>> on call state 12:47:50.671 APP Call 1 state=CALLING
>> (...)
>> --> Conference ports:
>> --> Port #00[16KHz/20ms/1] Master/sound transmitting to:
>> --> Port #01[ 8KHz/32ms/1] memory playback transmitting to: #2
>> --> Port #02[ 8KHz/20ms/1] sip:6633 at 10.0.1.27 transmitting to: #0
>> --> Port #03[ 8KHz/32ms/1] memory playback transmitting to:
>> (...)
>> on call state 12:47:50.671 APP Call 1 state=EARLY
>> on call state 12:47:50.859 APP Call 1 state=CONNECTING
>> 12:47:50.875 pjsua_media.c Media updates, stream #0: PCMA (sendrecv)
>> on call media state 12:47:50.875 conference.c Port 4 (sip:2557 at 10.0.1.27) tran
>> smitting to port 0 (Master/sound)
>> 12:47:50.875 conference.c Port 3 (memory playback) transmitting to port 4 (si
>> p:2557 at 10.0.1.27)
>> on call state 12:47:50.875 APP Call 1 state=CONFIRMED
>> (...)
>>
>> I'm supposed to have 2 calls, one to sip2557 at 10.0.1.27 and other to
>> sip:6633 at 10.0.1.27
>>
>> The conference list does not seem right but also does not seem he is
>> mixing the 2 slots.
>>
>> Where is the proper place to put the list? On the media callback?
>>
>> Thanks
>>
>> On Tue, Nov 11, 2008 at 12:34 PM, Nanang Izzuddin <nanang at pjsip.org> wrote:
>>> Hi,
>>>
>>> It seems to be about connecting conference bridge ports. Perhaps
>>> providing a 'debug' function like conf_list() in the pjsua_app.c can
>>> help locating the problem.
>>>
>>> Regards,
>>> nanang
>>>
>>>
>>> On Tue, Nov 11, 2008 at 6:14 PM, João César <jpcesar at gmail.com> wrote:
>>>> 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
>>>>
>>>> _______________________________________________
>>>> Visit our blog: http://blog.pjsip.org
>>>>
>>>> pjsip mailing list
>>>> pjsip at lists.pjsip.org
>>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>>
>>>
>>> _______________________________________________
>>> Visit our blog: http://blog.pjsip.org
>>>
>>> pjsip mailing list
>>> pjsip at lists.pjsip.org
>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>
>>
>>
>>
>> --
>> Joao Cesar
>> msn: jpcesar at gmail.com
>> gtalk: jpcesar at gmail.com
>> icq: 13790802
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip at lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
--
Joao Cesar
msn: jpcesar at gmail.com
gtalk: jpcesar at gmail.com
icq: 13790802
More information about the pjsip
mailing list