[asterisk-dev] _get_mohbyname spam

Walter Doekes walter+asterisk-dev at osso.nl
Mon Feb 22 06:48:31 CST 2016


>> It is possible to revisit ticket ASTERISK-25444, basically RealTime MoH
>> causes a lot of messages to be displayed on queues due to the way an
>> error message is being used.

>> For example:
>>
>> [2016-02-22 09:20:42] WARNING[7562][C-000034c5]: res_musiconhold.c:884
>> _get_mohbyname: Music on Hold class 'default' not found in memory.
>> Verify your configuration.

I did run into this, I think that could be fixed by something like:

> diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
> index 9172473..a8ae862 100644
> --- a/res/res_musiconhold.c
> +++ b/res/res_musiconhold.c
> @@ -1374,26 +1374,26 @@ static int local_ast_moh_start(struct ast_channel *chan, const char *mclass, con
>          * 4) The default class.
>          */
>         if (!ast_strlen_zero(ast_channel_musicclass(chan))) {
> -               mohclass = get_mohbyname(ast_channel_musicclass(chan), 1, 0);
> +               mohclass = get_mohbyname(ast_channel_musicclass(chan), !realtime_possible, 0);
>                 if (!mohclass && realtime_possible) {
>                         var = ast_load_realtime("musiconhold", "name", ast_channel_musicclass(chan), SENTINEL);
>                 }
>         }
>         if (!mohclass && !var && !ast_strlen_zero(mclass)) {
> -               mohclass = get_mohbyname(mclass, 1, 0);
> +               mohclass = get_mohbyname(mclass, !realtime_possible, 0);
>                 if (!mohclass && realtime_possible) {
>                         var = ast_load_realtime("musiconhold", "name", mclass, SENTINEL);
>                 }
>         }
>         if (!mohclass && !var && !ast_strlen_zero(interpclass)) {
> -               mohclass = get_mohbyname(interpclass, 1, 0);
> +               mohclass = get_mohbyname(interpclass, !realtime_possible, 0);
>                 if (!mohclass && realtime_possible) {
>                         var = ast_load_realtime("musiconhold", "name", interpclass, SENTINEL);
>                 }
>         }
>
>         if (!mohclass && !var) {
> -               mohclass = get_mohbyname("default", 1, 0);
> +               mohclass = get_mohbyname("default", !realtime_possible, 0);
>                 if (!mohclass && realtime_possible) {
>                         var = ast_load_realtime("musiconhold", "name", "default", SENTINEL);
>                 }

Although I don't believe I actually tested it.

Cheers,
Walter

(note to self, GRID-3153)



More information about the asterisk-dev mailing list