Can't load asterisk modules after upgrade to 1.3.0

558 views
Skip to first unread message

Nicola Ruggiero

unread,
Feb 19, 2015, 5:58:06 AM2/19/15
to uni...@googlegroups.com
Hi all,
today I decided to upgrade my installation to version 1.3.0
I downloaded and installed the components in the following order:
1) unimrcp-deps-1.3.0.tar.gz
2) unimrcp-1.3.0.tar.gz
3) asterisk-unimrcp-1.3.0.tar.gz

After intalling point 3 I copied the asterisk module from /usr/lib/asterisk/modules to /usr/lib64/asterisk/modules as I always do since I'm on CentOS 6.6 x86_64.

I restarted asterisk but new modules couldn't get loaded.
The error is the following:

pbx*CLI> module load res_speech_unimrcp.so
Unable to load module res_speech_unimrcp.so
Command 'module load res_speech_unimrcp.so' failed.
[2015-02-19 11:36:23] WARNING[1647]: loader.c:502 load_dynamic_module: Error loading module 'res_speech_unimrcp.so': /usr/local/unimrcp/lib/libunimrcpclient.so.0: undefined symbol: apr_queue_timedpop
[2015-02-19 11:36:23] WARNING[1647]: loader.c:918 load_resource: Module 'res_speech_unimrcp.so' could not be loaded.

Same for app_unimrpc.so
Command 'module load app_unimrcp.so ' failed.
[2015-02-19 11:56:57] WARNING[1698]: loader.c:502 load_dynamic_module: Error loading module 'app_unimrcp.so': /usr/local/unimrcp/lib/libunimrcpclient.so.0: undefined symbol: apr_queue_timedpop
[2015-02-19 11:56:57] WARNING[1698]: loader.c:918 load_resource: Module 'app_unimrcp.so' could not be loaded.

What wrong?

Thank you very much

Nicola Ruggiero

unread,
Feb 19, 2015, 11:23:16 AM2/19/15
to uni...@googlegroups.com
I solved with a clean installation of unimrcp 1.3.0 after deleting folder /usr/local/unimrcp

Thanks,
Nicola

Arsen Chaloyan

unread,
Feb 19, 2015, 4:02:34 PM2/19/15
to UniMRCP
Hi Nicola,

Glad you could solve the problem and thanks for posting your resolution to the group.

A few more comments below, just in case...

On Thu, Feb 19, 2015 at 8:23 AM, Nicola Ruggiero <nrugg...@gmail.com> wrote:
I solved with a clean installation of unimrcp 1.3.0 after deleting folder /usr/local/unimrcp

Thanks,
Nicola


Il giorno giovedì 19 febbraio 2015 11:58:06 UTC+1, Nicola Ruggiero ha scritto:
Hi all,
today I decided to upgrade my installation to version 1.3.0
I downloaded and installed the components in the following order:
1) unimrcp-deps-1.3.0.tar.gz
2) unimrcp-1.3.0.tar.gz
3) asterisk-unimrcp-1.3.0.tar.gz

After intalling point 3 I copied the asterisk module from /usr/lib/asterisk/modules to /usr/lib64/asterisk/modules as I always do since I'm on CentOS 6.6 x86_64.

You don't have to manually copy the modules, but just specify the proper installation location while configuring them (step 3).

./configure --prefix=/usr/lib64/asterisk/modules

One may say why "lib64" is not used on x86_64 by default, and the answer is in Asterisk itself. When you compile Asterisk from source with default options, the modules are getting installed in /usr/lib/asterisk/modules even on x86_64 OS. Whereas, in case of binary installation (RPMs), the modules go to /usr/lib64/asterisk/modules. I also had to take these peculiarities into account while building UniMRCP RPMs for Asterisk.

 

I restarted asterisk but new modules couldn't get loaded.
The error is the following:

pbx*CLI> module load res_speech_unimrcp.so
Unable to load module res_speech_unimrcp.so
Command 'module load res_speech_unimrcp.so' failed.
[2015-02-19 11:36:23] WARNING[1647]: loader.c:502 load_dynamic_module: Error loading module 'res_speech_unimrcp.so': /usr/local/unimrcp/lib/libunimrcpclient.so.0: undefined symbol: apr_queue_timedpop
[2015-02-19 11:36:23] WARNING[1647]: loader.c:918 load_resource: Module 'res_speech_unimrcp.so' could not be loaded.

Same for app_unimrpc.so
Command 'module load app_unimrcp.so ' failed.
[2015-02-19 11:56:57] WARNING[1698]: loader.c:502 load_dynamic_module: Error loading module 'app_unimrcp.so': /usr/local/unimrcp/lib/libunimrcpclient.so.0: undefined symbol: apr_queue_timedpop
[2015-02-19 11:56:57] WARNING[1698]: loader.c:918 load_resource: Module 'app_unimrcp.so' could not be loaded.

What wrong?

This happens because the UniMRCP modules were built with one version of the APR library, but were using a different version at run-time. In such a case, ldd should help determine the problem:

ldd /usr/local/unimrcp/lib/libunimcpclient.so
 

Thank you very much

--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unimrcp+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Arsen Chaloyan
Author of UniMRCP
http://www.unimrcp.org

Nicola Ruggiero

unread,
Feb 19, 2015, 6:51:49 PM2/19/15
to uni...@googlegroups.com
Thank you very much Arsen,

I also wrote some comments:


Il giorno giovedì 19 febbraio 2015 22:02:34 UTC+1, Arsen Chaloyan ha scritto:
Hi Nicola,

Glad you could solve the problem and thanks for posting your resolution to the group.

A few more comments below, just in case...

On Thu, Feb 19, 2015 at 8:23 AM, Nicola Ruggiero <nrugg...@gmail.com> wrote:
I solved with a clean installation of unimrcp 1.3.0 after deleting folder /usr/local/unimrcp

Thanks,
Nicola


Il giorno giovedì 19 febbraio 2015 11:58:06 UTC+1, Nicola Ruggiero ha scritto:
Hi all,
today I decided to upgrade my installation to version 1.3.0
I downloaded and installed the components in the following order:
1) unimrcp-deps-1.3.0.tar.gz
2) unimrcp-1.3.0.tar.gz
3) asterisk-unimrcp-1.3.0.tar.gz

After intalling point 3 I copied the asterisk module from /usr/lib/asterisk/modules to /usr/lib64/asterisk/modules as I always do since I'm on CentOS 6.6 x86_64.

You don't have to manually copy the modules, but just specify the proper installation location while configuring them (step 3).

./configure --prefix=/usr/lib64/asterisk/modules

That was exactly what I was looking for! :-)
 
One may say why "lib64" is not used on x86_64 by default, and the answer is in Asterisk itself. When you compile Asterisk from source with default options, the modules are getting installed in /usr/lib/asterisk/modules even on x86_64 OS. Whereas, in case of binary installation (RPMs), the modules go to /usr/lib64/asterisk/modules. I also had to take these peculiarities into account while building UniMRCP RPMs for Asterisk.


In fact, in the official Asterisk documentation (Asterisk: The Definitive Guide, 4th Edition) and also in the digium blog (http://blogs.digium.com/2012/11/05/how-to-install-asterisk-11-on-centos-6/), they say:
Use this command if you are installing Asterisk on 64bit CentOS.
./configure --libdir=/usr/lib64 && make menuselect && make && make install
Reply all
Reply to author
Forward
0 new messages