[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Linphone-developers] Hold file audio only plays once for ZRTP
From: |
Gautier Pelloux-Prayer |
Subject: |
Re: [Linphone-developers] Hold file audio only plays once for ZRTP |
Date: |
Fri, 15 Jan 2016 15:43:44 +0100 |
Hi Trevor,
Sorry for my delayed answer but did not got time to dig trough your issue yet.
As Christian Spielberger on another topic, thanks you very much for providing a
patch fixing the issue!
I will try to express that problem as soon as possible and will go back to you.
Gautier Pelloux-Prayer
Software Engineer @ Belledonne Communications
> On 14 Jan 2016, at 15:09, Trevor Alpeter <address@hidden> wrote:
>
> I've attached a patch that corrects the issue where the hold audio file
> is only played once when a ZRTP-encrypted call is paused.
>
> Thanks.
>
> Trevor
>
> On 1/6/16 3:18 PM, Trevor Alpeter wrote:
>> Hello,
>>
>> I have been working with liblinphone and noticed that that the audio
>> file used for hold music is only played once whenever a call encrypted
>> with ZRTP is put on hold. This results in the party who was put on hold
>> hearing only silence after the first time the file is played.
>>
>> After a bit of debugging, I found that the issue appears to be that the
>> MS_FILE_PLAYER_LOOP command is not invoked on the MSFilePlayer filter
>> used to actually play the file.
>>
>> I found that the MS_FILE_PLAYER_LOOP command is used within the
>> linphone_call_start_audio_stream() method on the MSFilePlayer referenced
>> by call->audiostream->soundread (coreapi/linphonecall.c, line 3102 in my
>> source). However, that MSFilePlayer does not appear to be used.
>>
>> Rather, a separate MSFilePlayer is created in
>> linphone_call_start_media_streams() via a call to
>> audio_stream_open_remote_play() (coreapi/linphonecall.c, line 3451).
>> That MSFilePlayer is subsequently started, but it is not given a loop
>> value so it plays the file once and then goes into the paused state.
>>
>> I've attempted to fix this in my source by adding a call to the
>> MS_FILE_PLAYER_LOOP just before starting it (coreapi/linphonecall.c,
>> line 3453). I used the same pause value that is used in
>> linphone_call_start_audio_stream(). This fixes the issue in my local build.
>>
>> However, this leaves me with a couple of questions:
>>
>> First, is this the correct fix? I'm still trying to get my head wrapped
>> around the source, and I want to make sure I'm doing this correctly.
>>
>> Second, could you provide any insight into why multiple MSFilePlayer
>> filters are being created? In my debugging I'm actually seeing three
>> filters. However, only one of them is actually being started and used.
>> I'm a bit confused about what is going on.
>>
>> Any insight is appreciated.
>>
>> Thanks in advance.
>>
>> Trevor
>>
> <0001-Hold-file-loops-for-ZRTP-calls.patch>_______________________________________________
> Linphone-developers mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/linphone-developers