[asterisk-bugs] [Asterisk 0011575]: [patch] Music on hold / MOH will not reload or unload

noreply at bugs.digium.com noreply at bugs.digium.com
Sat Jan 5 09:40:23 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11575 
====================================================================== 
Reported By:                sunder
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11575
Category:                   Resources/res_musiconhold
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.15 
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!): 89053 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             12-16-2007 21:04 CST
Last Modified:              01-05-2008 09:40 CST
====================================================================== 
Summary:                    [patch] Music on hold / MOH will not reload or
unload
Description: 
Asterisk Version 1.4.15
Centos 4.5
res_musiconhold.c Revisions Number: 89053

I Changed the directory in the musiconhold.conf config file. Then in the
asterisk console and typed 'reload' and moh did not reload. Then i typed
'moh reload' and still nothing. Then i tried to unloading the
res_musiconhold.so module and it would not unload and give me an error. 

OLD DIRECTORY: /var/lig/asterisk/moh
NEW DIRECTORY: /var/lib/asterisk/moh-new

A reload and moh reload does nothing

asterisk*CLI> moh reload
  == Parsing '/etc/asterisk/musiconhold.conf': Found
asterisk*CLI> moh  show  files
Class: default
        File: /var/lib/asterisk/moh/fpm-world-mix
        File: /var/lib/asterisk/moh/fpm-sunshine
        File: /var/lib/asterisk/moh/fpm-calm-river
asterisk*CLI> moh classes show
Class: default
        Mode: files
        Directory: /var/lib/asterisk/moh
        Use Count: 0

CONFIG FILE: /etc/asterisk/musiconhold.conf
[default]
mode=files
directory=/var/lib/asterisk/moh-new
random=yes

FULL DEBUG
[Dec 16 20:33:14] VERBOSE[10474] logger.c:   == Parsing
'/etc/asterisk/musiconhold.conf': [Dec 16 20:33:14] DEBUG[10474] config.c:
Parsing /etc/asterisk/musiconhold.conf
[Dec 16 20:33:14] VERBOSE[10474] logger.c: Found
[Dec 16 20:33:14] DEBUG[10474] res_musiconhold.c: Music on Hold class
'default' left alone from initial load.

SIDE NOTE: NO END OF LINE CHARACTER ON THE FIRST DEBUG LINE. THIS NEEDS TO
BE FIXED AS WELL.


[root at asterisk root]# ls -al /var/lib/asterisk/moh-new/
total 31056
drwxr-xr-x   2 root     root         4096 Dec 16 20:32 .
drwxrwx---  12 asterisk asterisk     4096 Dec 16 20:32 ..
-rw-r--r--   1 root     root     31753960 Dec 16 20:32 moh.wav

asterisk*CLI> module unload res_musiconhold.so
Unable to unload resource res_musiconhold.so
[Dec 16 20:44:40] WARNING[10531]: loader.c:494 ast_unload_resource: Firm
unload failed for res_musiconhold.so

And the only was to get the change to take affect is a 'restart now'

After the restart
asterisk*CLI> moh show files
Class: default
        File: /var/lib/asterisk/moh-new/moh
asterisk*CLI> moh show classes
Class: default
        Mode: files
        Directory: /var/lib/asterisk/moh-new
        Use Count: 0


======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0010536 When reloading moh and the directory is...
====================================================================== 

---------------------------------------------------------------------- 
 junky - 01-05-08 09:40  
---------------------------------------------------------------------- 
yes, this was for trunk.
Code is different from trunk to 1.4, so here's the new patch for 1.4
(M11575_14_rev2.diff)

Also, this is my tests for records:
rabbit*CLI> moh reload 
  == Parsing '/etc/asterisk/musiconhold.conf': Found
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky2 or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky3 or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky4 or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky5 or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/djpicasso or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/teamo or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/teamo2 or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/sk8ter22 or dir does not exist
[Jan  5 10:35:47] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/vero or dir does not exist
rabbit*CLI> moh show files 
Class: conf50
        File: /var/lib/asterisk/moh/50/2
        File: /var/lib/asterisk/moh/50/3
Class: default
        File: /var/lib/asterisk/moh/fpm-sunshine
        File: /var/lib/asterisk/moh/fpm-sunshine2
        File: /var/lib/asterisk/moh/fpm-sunshine6
        File: /var/lib/asterisk/moh/fpm-calm-river
        File: /var/lib/asterisk/moh/fpm-sunshine3
        File: /var/lib/asterisk/moh/fpm-world-mix
rabbit*CLI> !cp /var/lib/asterisk/moh/50/2.wav
/var/lib/asterisk/moh/50/21.wav
rabbit*CLI> moh reload 
  == Parsing '/etc/asterisk/musiconhold.conf': Found
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky2 or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky3 or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky4 or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky5 or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/djpicasso or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/teamo or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/teamo2 or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/sk8ter22 or dir does not exist
[Jan  5 10:36:05] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/vero or dir does not exist
rabbit*CLI> moh show files 
Class: conf50
        File: /var/lib/asterisk/moh/50/2
        File: /var/lib/asterisk/moh/50/21
        File: /var/lib/asterisk/moh/50/3
Class: default
        File: /var/lib/asterisk/moh/fpm-sunshine
        File: /var/lib/asterisk/moh/fpm-sunshine2
        File: /var/lib/asterisk/moh/fpm-sunshine6
        File: /var/lib/asterisk/moh/fpm-calm-river
        File: /var/lib/asterisk/moh/fpm-sunshine3
        File: /var/lib/asterisk/moh/fpm-world-mix
rabbit*CLI> 
the idea here was to tests if not found dirs and no files in a in dir was
sucessfully not added to moh show classes.

and james's stuff:
rabbit*CLI> module unload res_musiconhold.so 
  == Destroying musiconhold processes
  == Unregistered application 'MusicOnHold'
  == Unregistered application 'WaitMusicOnHold'
  == Unregistered application 'SetMusicOnHold'
  == Unregistered application 'StartMusicOnHold'
  == Unregistered application 'StopMusicOnHold'
rabbit*CLI> module load res_musiconhold.so
  == Registered application 'MusicOnHold'
  == Registered application 'WaitMusicOnHold'
  == Registered application 'SetMusicOnHold'
  == Registered application 'StartMusicOnHold'
  == Registered application 'StopMusicOnHold'
  == Parsing '/etc/asterisk/musiconhold.conf': Found
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky2 or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky3 or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky4 or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/junky5 or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/djpicasso or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/teamo or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/teamo2 or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/sk8ter22 or dir does not exist
[Jan  5 10:38:30] WARNING[23636]: res_musiconhold.c:804 moh_scan_files:
Cannot open dir /var/lib/asterisk/moh/vero or dir does not exist
 Loaded res_musiconhold.so => (Music On Hold Resource)
rabbit*CLI> 

    -- Executing [108 at default:1] StartMusicOnHold("SIP/10-081f8be8",
"babysue") in new stack
[Jan  5 10:38:52] WARNING[23673]: res_musiconhold.c:651 get_mohbyname:
Music on Hold class 'babysue' not found
    -- Started music on hold, class 'default', on SIP/10-081f8be8
    -- Executing [108 at default:2] Wait("SIP/10-081f8be8", "22222") in new
stack
rabbit*CLI> module unload res_musiconhold.so
Unable to unload resource res_musiconhold.so
[Jan  5 10:38:55] WARNING[23636]: res_musiconhold.c:1328 unload_module:
Unable to unload res_musiconhold due to active MOH channels
[Jan  5 10:38:55] WARNING[23636]: loader.c:495 ast_unload_resource: Firm
unload failed for res_musiconhold.so
rabbit*CLI> 


So everything seems okay to me.

sunder: could you test that one with me? 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
01-05-08 09:40  junky          Note Added: 0076350                          
======================================================================




More information about the asterisk-bugs mailing list