Here is the original thread from the opensisptack mailing list
I have also been able to replicate this issue. So far I've only seen it happen using G.729. The first call seems to go through, but every subsequent call attempt fails. I am going to try recompiling an older snapshot of the CVS source I have.
H.Kropf - Have you found out anything new on this issue?
Thanks for the logs. They were very helpful. It is evident that the previous call did not destroy the codec properly. I will try to replicate this on my system. Ilian is currently on leave so it might take a while for him to catch this thread. I have created a ticket for this: http://www.assembla.com/spaces/opensbc/tickets/20
Joegen
H.Kropf wrote: > > Hi > > > > Log (for pwlib - level 6) - in attachments > > > > > > Joegen E. Baclor wrote: >> >> Hmmn. Strange. Seems like the codec from the previous call has not >> >> been destroyed. Can you send me a maximum level log of two >> >> consecutive calls right after fresh startup of your SoftPhone? >> >> >> >> H.Kropf wrote: >> >> >>> >>> Hi >>> >>> >>> >>> >>>>> >>>>> can you put a break-point in OpalTranscoder::ConvertFrames() and >>>>> >>>>> figure out where exactly it fails? >>>>> >>>>> >>> >>> I can :) >>> >>> >>> >>> >>> >>> bool OpalMediaPatch::Sink::WriteFrame(RTP_DataFrame & sourceFrame) >>> >>> { >>> >>> ...... >>> >>> if (!primaryCodec->ConvertFrames(sourceFrame, intermediateFrames)) >>> >>> { >>> >>> PTRACE(1, "Patch\tMedia conversion (primary) failed"); >>> >>> return false; >>> >>> } >>> >>> ...... >>> >>> } >>> >>> >>> >>> BOOL OpalTranscoder::ConvertFrames(const RTP_DataFrame & input, >>> >>> RTP_DataFrameList & output) >>> >>> { >>> >>> ....... >>> >>> return Convert(input, output[0]); >>> >>> } >>> >>> >>> >>> BOOL OpalFlexiTranscoder::Convert( const RTP_DataFrame & input, >>> >>> RTP_DataFrame & output) >>> >>> { >>> >>> return m_Transcoder->Convert( input, output ); >>> >>> } >>> >>> >>> >>> BOOL OpalFramedTranscoder::Convert(const RTP_DataFrame & input, >>> >>> RTP_DataFrame & output) >>> >>> { >>> >>> .... >>> >>> while (inputLength > 0) >>> >>> { >>> >>> ...... >>> >>> if (!ConvertFrame(inputPtr, consumed, outputPtr, created)) >>> >>> return FALSE; >>> >>> ....... >>> >>> } >>> >>> ....... >>> >>> } >>> >>> >>> >>> BOOL OpalFramedTranscoder::ConvertFrame(const BYTE * inputPtr, >>> >>> PINDEX & /*consumed*/, BYTE * outputPtr, PINDEX & /*created*/) >>> >>> { >>> >>> return ConvertFrame(inputPtr, outputPtr); >>> >>> } >>> >>> >>> >>> >>> >>> >>> >>> BOOL Opal_PCM_G729::ConvertFrame(const BYTE * src, BYTE * dst) >>> >>> { >>> >>> if (voiceAgeEncoderInUse != this) return FALSE; // >>> >>> !!!!!!!!!!!! <<<=== this place >>> >>> ...... >>> >>> } >>> >>> >>> >>> >>> >>> >>> >>> >>>> >>>> Hi, >>>> >>>> >>>> >>>> Are you a C++ developer? If so, can you put a break-point in >>>> >>>> OpalTranscoder::ConvertFrames() and figure out where exactly it fails? >>>> >>>> >>>> >>>> Joegen >>>> >>>> >>>> >>>> H.Kropf wrote: >>>> >>>> >>>>> >>>>> Hello >>>>> >>>>> >>>>> >>>>> After a last update of library from CVS (2008-05-20), my softphone >>>>> >>>>> (on OSS library) makes only one successful call after start. In >>>>> >>>>> next calls there is no voice. In PTRACE-log there are many such >>>>> >>>>> records >>>>> >>>>> >>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion >>>>> >>>>> (primary) failed >>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion >>>>> >>>>> (primary) failed >>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion >>>>> >>>>> (primary) failed >>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion >>>>> >>>>> (primary) failed >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> In the previous version (CVS 2008-05-12) this problem did not exist >>>>> >>>>> >>>>> >>>>> -------------------------------------------------------------------------
I have also been able to replicate this issue. So far I've only seen it
happen using G.729. The first call seems to go through, but every subsequent
call attempt fails. I am going to try recompiling an older snapshot of the
CVS source I have.
H.Kropf - Have you found out anything new on this issue?
Whit
-----Original Message-----
From: opensipstack-devel-bounces@lists.sourceforge.net
[mailto:opensipstack-devel-bounces@lists.sourceforge.net] On Behalf Of
Joegen E. Baclor
Sent: Thursday, May 22, 2008 9:14 PM
To: H.Kropf
Cc: opensipstack-devel@lists.sourceforge.net
Subject: Re: [OpenSIPStack] [SF] RTP fault
Hi,
Thanks for the logs. They were very helpful. It is evident that the
previous call did not destroy the codec properly. I will try to
replicate this on my system. Ilian is currently on leave so it might
take a while for him to catch this thread. I have created a ticket for
this: http://www.assembla.com/spaces/opensbc/tickets/20
Joegen
H.Kropf wrote:
> > Hi
> >
> > Log (for pwlib - level 6) - in attachments
> >
> >
> > Joegen E. Baclor wrote:
>> >> Hmmn. Strange. Seems like the codec from the previous call has not
>> >> been destroyed. Can you send me a maximum level log of two
>> >> consecutive calls right after fresh startup of your SoftPhone?
>> >>
>> >> H.Kropf wrote:
>> >>
>>> >>> Hi
>>> >>>
>>> >>>
>>>>> >>>>> can you put a break-point in OpalTranscoder::ConvertFrames() and
>>>>> >>>>> figure out where exactly it fails?
>>>>> >>>>>
>>> >>> I can :)
>>> >>>
>>> >>>
>>> >>> bool OpalMediaPatch::Sink::WriteFrame(RTP_DataFrame & sourceFrame)
>>> >>> {
>>> >>> ......
>>> >>> if (!primaryCodec->ConvertFrames(sourceFrame, intermediateFrames))
>>> >>> {
>>> >>> PTRACE(1, "Patch\tMedia conversion (primary) failed");
>>> >>> return false;
>>> >>> }
>>> >>> ......
>>> >>> }
>>> >>>
>>> >>> BOOL OpalTranscoder::ConvertFrames(const RTP_DataFrame & input,
>>> >>> RTP_DataFrameList & output)
>>> >>> {
>>> >>> .......
>>> >>> return Convert(input, output[0]);
>>> >>> }
>>> >>>
>>> >>> BOOL OpalFlexiTranscoder::Convert( const RTP_DataFrame & input,
>>> >>> RTP_DataFrame & output)
>>> >>> {
>>> >>> return m_Transcoder->Convert( input, output );
>>> >>> }
>>> >>>
>>> >>> BOOL OpalFramedTranscoder::Convert(const RTP_DataFrame & input,
>>> >>> RTP_DataFrame & output)
>>> >>> {
>>> >>> ....
>>> >>> while (inputLength > 0)
>>> >>> {
>>> >>> ......
>>> >>> if (!ConvertFrame(inputPtr, consumed, outputPtr, created))
>>> >>> return FALSE;
>>> >>> .......
>>> >>> }
>>> >>> .......
>>> >>> }
>>> >>>
>>> >>> BOOL OpalFramedTranscoder::ConvertFrame(const BYTE * inputPtr,
>>> >>> PINDEX & /*consumed*/, BYTE * outputPtr, PINDEX & /*created*/)
>>> >>> {
>>> >>> return ConvertFrame(inputPtr, outputPtr);
>>> >>> }
>>> >>>
>>> >>>
>>> >>>
>>> >>> BOOL Opal_PCM_G729::ConvertFrame(const BYTE * src, BYTE * dst)
>>> >>> {
>>> >>> if (voiceAgeEncoderInUse != this) return FALSE; //
>>> >>> !!!!!!!!!!!! <<<=== this place
>>> >>> ......
>>> >>> }
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>>> >>>> Hi,
>>>> >>>>
>>>> >>>> Are you a C++ developer? If so, can you put a break-point in
>>>> >>>> OpalTranscoder::ConvertFrames() and figure out where exactly it fails?
>>>> >>>>
>>>> >>>> Joegen
>>>> >>>>
>>>> >>>> H.Kropf wrote:
>>>> >>>>
>>>>> >>>>> Hello
>>>>> >>>>>
>>>>> >>>>> After a last update of library from CVS (2008-05-20), my softphone
>>>>> >>>>> (on OSS library) makes only one successful call after start. In
>>>>> >>>>> next calls there is no voice. In PTRACE-log there are many such
>>>>> >>>>> records
>>>>> >>>>>
>>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion
>>>>> >>>>> (primary) failed
>>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion
>>>>> >>>>> (primary) failed
>>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion
>>>>> >>>>> (primary) failed
>>>>> >>>>> Media Patch:1eb9410 PWL: [CID=0x0000] Patch Media conversion
>>>>> >>>>> (primary) failed
>>>>> >>>>>
>>>>> >>>>>
>>>>> >>>>> In the previous version (CVS 2008-05-12) this problem did not exist
>>>>> >>>>>
>>>>> >>>>>
-------------------------------------------------------------------------