[asterisk-dev] MIXMONITOR - periodic beep is not present in RECORDING
bala murugan
fightwithme at gmail.com
Wed Jan 12 12:36:41 CST 2022
Thanks jonathan
I will flip them and give it a try
Can you also share the patch for 1.6.2 ?
thanks,
Bala
On Wed, Jan 12, 2022 at 1:12 PM Jonathan Rose <
jonathan.rose at motorolasolutions.com> wrote:
>
>
> On Wed, Jan 12, 2022 at 12:08 PM bala murugan <fightwithme at gmail.com>
> wrote:
>
>> Thanks jonathan ,
>>
>> I am ok in modifying the source and trying . I looked at the source
>> audiohook.c:audio_audiohook_write_list() and i did see the below order
>>
>> 1)AST_LIST_TRAVERSE_SAFE_BEGIN(&audiohook_list->spy_list, audiohook, list)
>> {
>>
>> *2) if* (!AST_LIST_EMPTY(&audiohook_list->whisper_list)) {
>>
>> *3) if* (!AST_LIST_EMPTY(&audiohook_list->manipulate_list)) {
>>
>> Are you saying moving this around as below will help or what is the
>> recommended move to try ?
>> 1) *if* (!AST_LIST_EMPTY(&audiohook_list->manipulate_list)) {
>> 2)*if* (!AST_LIST_EMPTY(&audiohook_list->whisper_list)) {
>> 3)AST_LIST_TRAVERSE_SAFE_BEGIN(&audiohook_list->spy_list, audiohook, list)
>> {
>>
>> Also you have mentioned unexpected consequences from moving these around
>> , any idea what it would be? , will it mess the recording ?
>> affect the call quality ? If you know the specific then it will help to
>> see will it be worth trying .
>>
>> Also is there an existing patch available for the changes you mentioned?
>>
>
> Well, I have a patch that I've written in the past to do such a thing at
> some point, but it was against Asterisk 1.6.2 so that probably isn't
> something you want.
>
> Assuming you are looking at master from https://gerrit.asterisk.org...
>
> /* ---Part_2: Send middle_frame to spy and manipulator lists.
>> middle_frame is guaranteed to be SLINEAR here.*/
>> /* Queue up signed linear frame to each spy */
>> AST_LIST_TRAVERSE_SAFE_BEGIN(&audiohook_list->spy_list,
>> audiohook, list) {
>> ast_audiohook_lock(audiohook);
>> if (audiohook->status != AST_AUDIOHOOK_STATUS_RUNNING) {
>> AST_LIST_REMOVE_CURRENT(list);
>> removed = 1;
>> ast_audiohook_update_status(audiohook,
>> AST_AUDIOHOOK_STATUS_DONE);
>> ast_audiohook_unlock(audiohook);
>> if (ast_channel_is_bridged(chan)) {
>> ast_channel_set_unbridged_nolock(chan, 1);
>> }
>> continue;
>> }
>> audiohook_list_set_hook_rate(audiohook_list, audiohook,
>> &internal_sample_rate);
>> ast_audiohook_write_frame(audiohook, direction,
>> middle_frame);
>> ast_audiohook_unlock(audiohook);
>> }
>> AST_LIST_TRAVERSE_SAFE_END;
>
>
> This is the spy block. We're going to swap this whole block for the
> manipulate block
>
> /* Pass off frame to manipulate audiohooks */
>> if (!AST_LIST_EMPTY(&audiohook_list->manipulate_list)) {
>>
>> AST_LIST_TRAVERSE_SAFE_BEGIN(&audiohook_list->manipulate_list, audiohook,
>> list) {
>> ast_audiohook_lock(audiohook);
>> if (audiohook->status !=
>> AST_AUDIOHOOK_STATUS_RUNNING) {
>> AST_LIST_REMOVE_CURRENT(list);
>> removed = 1;
>> ast_audiohook_update_status(audiohook,
>> AST_AUDIOHOOK_STATUS_DONE);
>> ast_audiohook_unlock(audiohook);
>> /* We basically drop all of our links to
>> the manipulate audiohook and prod it to do it's own destructive things */
>> audiohook->manipulate_callback(audiohook,
>> chan, NULL, direction);
>> if (ast_channel_is_bridged(chan)) {
>>
>> ast_channel_set_unbridged_nolock(chan, 1);
>> }
>> continue;
>> }
>> audiohook_list_set_hook_rate(audiohook_list,
>> audiohook, &internal_sample_rate);
>> /*
>> * Feed in frame to manipulation.
>> */
>> if (!audiohook->manipulate_callback(audiohook,
>> chan, middle_frame, direction)) {
>> /*
>> * XXX FAILURES ARE IGNORED XXX
>> * If the manipulation fails then the
>> frame will be returned in its original state.
>> * Since there are potentially more
>> manipulator callbacks in the list, no action should
>> * be taken here to exit early.
>> */
>> middle_frame_manipulated = 1;
>> }
>> ast_audiohook_unlock(audiohook);
>> }
>> AST_LIST_TRAVERSE_SAFE_END;
>> }
>
>
> Just flip them and you should be golden.
> --
>
> *Jonathan R. Rose*Senior Systems Engineer
> Emergency Call Handling
> Motorola Solutions
>
> email: jonathan.rose at motorolasolutions.com
>
> *For more information on how and why we collect your personal information,
> please visit our Privacy Policy
> <https://www.motorolasolutions.com/en_us/about/privacy-policy.html?elqTrackId=8980d888905940e39a2613a7a3dcb0a7&elqaid=2786&elqat=2#privacystatement>.*
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20220112/40f1ddbd/attachment.html>
More information about the asterisk-dev
mailing list