[asterisk-bugs] [JIRA] (ASTERISK-25444) Music On Hold Warning

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Mon Oct 5 09:47:32 CDT 2015


     [ https://issues.asterisk.org/jira/browse/ASTERISK-25444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Mudgett updated ASTERISK-25444:
---------------------------------------

    Description: 
In a documented change from 11.18.0 to 11.19.0 - res_musiconhold.c line 894, change to warn about missing music on hold classes. 

Both the version before and this one are not correct in any case - if you are using the RealTime engine for Music classes. Clearly this is not a popular way to handle MOH, because it has pretty much been like this since i can remember, but now with the change from debug to warning - its very confusing and annoying.

They are both incorrect, because the _get_mohbyname only checks if the class has been loaded to memory, and warns first before checking in the RealTime database. As a result, monitoring the CLI, we have no way of knowing if the correct music class has load or not. And our logs are getting clogged with incorrect warning messages.

Here you can see the output warns first, but then goes to the database and the correct classes loads...
{noformat}
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: pbx.c:4938 pbx_extension_helper: Launching 'MusicOnHold'
    -- Executing [s at macro-et-music-on-hold:3] MusicOnHold("SIP/102-ConradInc-00000002", "") in new stack
[Oct  4 09:00:04] WARNING[7779][C-00000002]: res_musiconhold.c:896 _get_mohbyname: Music on Hold class 'default-ConradInc' not found in memory. Verify your configuration.
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_config_odbc.c:114 custom_prepare: Skip: 0; SQL: SELECT * FROM MusicOnHold WHERE name = ?
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_config_odbc.c:130 custom_prepare: Parameter 1 ('name') = 'default-ConradInc'
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_odbc.c:1053 odbc_release_obj2: odbc_release_obj2(0x26f9be8) called (obj->txf = (nil))
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_musiconhold.c:1098 moh_scan_files: Scanning '/var/lib/asterisk/moh/ConradInc/default' for files for class 'default-ConradInc'
    -- Started music on hold, class 'default-ConradInc', on SIP/102-ConradInc-00000002
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: channel.c:3594 ast_settimeout_full: Scheduling timer at (50 requested / 50 actual) timer ticks per second
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: channel.c:5413 set_format: Set channel SIP/102-ConradInc-00000002 to write format slin
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_musiconhold.c:351 ast_moh_files_next: SIP/102-ConradInc-00000002 Opened file 3 '/var/lib/asterisk/moh/ConradInc/default/macroform-the_simplicity'
{noformat}

Furthermore, and just my 2c worth here, the real-time handling of music on hold is poor. Both "moh show classes", and "moh show files" is totally useless (when using musiconhold => odbc,MySqlRt,MusicOnHold)

  was:
In a documented change from 11.18.0 to 11.19.0 - res_musiconhold.c line 894, change to warn about missing music on hold classes. 

Both the version before and this one are not correct in any case - if you are using the RealTime engine for Music classes. Clearly this is not a popular way to handle MOH, because it has pretty much been like this since i can remember, but now with the change from debug to warning - its very confusing and annoying.

They are both incorrect, because the _get_mohbyname only checks if the class has been loaded to memory, and warns first before checking in the RealTime database. As a result, monitoring the CLI, we have no way of knowing if the correct music class has load or not. And our logs are getting clogged with incorrect warning messages.

Here you can see the output warns first, but then goes to the database and the correct classes loads...

[Oct  4 09:00:04] DEBUG[7779][C-00000002]: pbx.c:4938 pbx_extension_helper: Launching 'MusicOnHold'
    -- Executing [s at macro-et-music-on-hold:3] MusicOnHold("SIP/102-ConradInc-00000002", "") in new stack
[Oct  4 09:00:04] WARNING[7779][C-00000002]: res_musiconhold.c:896 _get_mohbyname: Music on Hold class 'default-ConradInc' not found in memory. Verify your configuration.
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_config_odbc.c:114 custom_prepare: Skip: 0; SQL: SELECT * FROM MusicOnHold WHERE name = ?
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_config_odbc.c:130 custom_prepare: Parameter 1 ('name') = 'default-ConradInc'
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_odbc.c:1053 odbc_release_obj2: odbc_release_obj2(0x26f9be8) called (obj->txf = (nil))
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_musiconhold.c:1098 moh_scan_files: Scanning '/var/lib/asterisk/moh/ConradInc/default' for files for class 'default-ConradInc'
    -- Started music on hold, class 'default-ConradInc', on SIP/102-ConradInc-00000002
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: channel.c:3594 ast_settimeout_full: Scheduling timer at (50 requested / 50 actual) timer ticks per second
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: channel.c:5413 set_format: Set channel SIP/102-ConradInc-00000002 to write format slin
[Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_musiconhold.c:351 ast_moh_files_next: SIP/102-ConradInc-00000002 Opened file 3 '/var/lib/asterisk/moh/ConradInc/default/macroform-the_simplicity'

Furthermore, and just my 2c worth here, the real-time handling of music on hold is poor. Both "moh show classes", and "moh show files" is totally useless (when using musiconhold => odbc,MySqlRt,MusicOnHold)


> Music On Hold Warning
> ---------------------
>
>                 Key: ASTERISK-25444
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25444
>             Project: Asterisk
>          Issue Type: Improvement
>      Security Level: None
>    Affects Versions: 11.19.0
>            Reporter: Conrad de Wet
>
> In a documented change from 11.18.0 to 11.19.0 - res_musiconhold.c line 894, change to warn about missing music on hold classes. 
> Both the version before and this one are not correct in any case - if you are using the RealTime engine for Music classes. Clearly this is not a popular way to handle MOH, because it has pretty much been like this since i can remember, but now with the change from debug to warning - its very confusing and annoying.
> They are both incorrect, because the _get_mohbyname only checks if the class has been loaded to memory, and warns first before checking in the RealTime database. As a result, monitoring the CLI, we have no way of knowing if the correct music class has load or not. And our logs are getting clogged with incorrect warning messages.
> Here you can see the output warns first, but then goes to the database and the correct classes loads...
> {noformat}
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: pbx.c:4938 pbx_extension_helper: Launching 'MusicOnHold'
>     -- Executing [s at macro-et-music-on-hold:3] MusicOnHold("SIP/102-ConradInc-00000002", "") in new stack
> [Oct  4 09:00:04] WARNING[7779][C-00000002]: res_musiconhold.c:896 _get_mohbyname: Music on Hold class 'default-ConradInc' not found in memory. Verify your configuration.
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_config_odbc.c:114 custom_prepare: Skip: 0; SQL: SELECT * FROM MusicOnHold WHERE name = ?
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_config_odbc.c:130 custom_prepare: Parameter 1 ('name') = 'default-ConradInc'
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_odbc.c:1053 odbc_release_obj2: odbc_release_obj2(0x26f9be8) called (obj->txf = (nil))
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_musiconhold.c:1098 moh_scan_files: Scanning '/var/lib/asterisk/moh/ConradInc/default' for files for class 'default-ConradInc'
>     -- Started music on hold, class 'default-ConradInc', on SIP/102-ConradInc-00000002
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: channel.c:3594 ast_settimeout_full: Scheduling timer at (50 requested / 50 actual) timer ticks per second
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: channel.c:5413 set_format: Set channel SIP/102-ConradInc-00000002 to write format slin
> [Oct  4 09:00:04] DEBUG[7779][C-00000002]: res_musiconhold.c:351 ast_moh_files_next: SIP/102-ConradInc-00000002 Opened file 3 '/var/lib/asterisk/moh/ConradInc/default/macroform-the_simplicity'
> {noformat}
> Furthermore, and just my 2c worth here, the real-time handling of music on hold is poor. Both "moh show classes", and "moh show files" is totally useless (when using musiconhold => odbc,MySqlRt,MusicOnHold)



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list