[asterisk-bugs] [Asterisk 0011575]: Music on hold / MOH will not reload or unload
noreply at bugs.digium.com
noreply at bugs.digium.com
Fri Jan 4 19:53:29 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: ready for testing
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-04-2008 19:53 CST
======================================================================
Summary: 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-04-08 19:53
----------------------------------------------------------------------
Tested james's unloading with success.
unload doesnt happen when there's active MOH, otherwise, there no proble,
And if res_musiconhold.so isnt loaded, im getting:
[Jan 4 20:51:03] WARNING[22522]: pbx.c:2642 pbx_extension_helper: No
application 'StartMusicOnHold' for extension (default, 107, 1)
== Spawn extension (default, 107, 1) exited non-zero on
'SIP/10-081e55c0'
which is great.
here's the tests i've made for my patch:
rabbit*CLI> moh show files
Class: default
File: /var/lib/asterisk/moh/fpm-sunshine
File: /var/lib/asterisk/moh/fpm-sunshine4
File: /var/lib/asterisk/moh/fpm-sunshine2
File: /var/lib/asterisk/moh/fpm-sunshine5
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/fpm-sunshine.wav
/var/lib/asterisk/moh/fpm-sunshine6.wav
rabbit*CLI> moh show files
Class: default
File: /var/lib/asterisk/moh/fpm-sunshine
File: /var/lib/asterisk/moh/fpm-sunshine4
File: /var/lib/asterisk/moh/fpm-sunshine2
File: /var/lib/asterisk/moh/fpm-sunshine5
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> moh reload
== Parsing '/etc/asterisk/musiconhold.conf':
== Found
[Jan 4 20:45:38] WARNING[22522]: res_musiconhold.c:937 moh_register:
Music on Hold class 'default' already exists
[Jan 4 20:45:38] WARNING[22522]: res_musiconhold.c:937 moh_register:
Music on Hold class 'babysue' already exists
[Jan 4 20:45:38] WARNING[22522]: res_musiconhold.c:937 moh_register:
Music on Hold class 'babysue' already exists
rabbit*CLI> moh show files
Class: default
File: /var/lib/asterisk/moh/fpm-sunshine
File: /var/lib/asterisk/moh/fpm-sunshine4
File: /var/lib/asterisk/moh/fpm-sunshine2
File: /var/lib/asterisk/moh/fpm-sunshine5
File: /var/lib/asterisk/moh/fpm-sunshine6
File: /var/lib/asterisk/moh/fpm-calm-river
File: /var/lib/asterisk/moh/fpm-sunshine3
rabbit*CFile: /var/lib/asterisk/moh/fpm-world-mix
rabbit*CLI> exit
so fpm-sunshine6.wav is dynamicly added to moh class.
rabbit*CLI> moh show files
Class: default
File: /var/lib/asterisk/moh/fpm-sunshine
File: /var/lib/asterisk/moh/fpm-sunshine4
File: /var/lib/asterisk/moh/fpm-sunshine2
File: /var/lib/asterisk/moh/fpm-sunshine5
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
[Jan 4 20:47:18] NOTICE[22522]: chan_unistim.c:3588 parsing: 192.168.1.50
Warning : received a retransmitted packet :
http://bugs.digium.com/view.php?id=0x0000 (we are at
http://bugs.digium.com/view.php?id=0x0001)
-- Device 'junky' successfuly registered
rabbit*CLI> !rm -f /var/lib/asterisk/moh/fpm-sunshine4.wav
rabbit*CLI> moh reload
== Parsing '/etc/asterisk/musiconhold.conf':
== Found
[Jan 4 20:47:33] WARNING[22522]: res_musiconhold.c:937 moh_register:
Music on Hold class 'default' already exists
[Jan 4 20:47:33] WARNING[22522]: res_musiconhold.c:937 moh_register:
Music on Hold class 'babysue' already exists
[Jan 4 20:47:33] WARNING[22522]: res_musiconhold.c:937 moh_register:
Music on Hold class 'babysue' already exists
rabbit*CLI> moh show files
Class: default
File: /var/lib/asterisk/moh/fpm-sunshine
File: /var/lib/asterisk/moh/fpm-sunshine2
File: /var/lib/asterisk/moh/fpm-sunshine5
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>
Si fpm-sunshine4.wav is dynamicly removed from the class.
so when new files are present, we make sure they are added/removed on "moh
reload".
I also delete the moh_diff() since this was only checking if the dir was
the same and now this is checking if new files are added by that specific
dir.
_rev2.diff contains james' patch+my patch.
Issue History
Date Modified Username Field Change
======================================================================
01-04-08 19:53 junky Note Added: 0076317
======================================================================
More information about the asterisk-bugs
mailing list