Installing Jack Application

Hi
I am trying to install the app_jack.C application with Asterisk 1.6.1.4. As I found in the menuselect, the application does not get installed automatically. It is not allowing me to choose the application by giving a XXX before the name of the application. How do I install this application with Asterisk?
Thanks in advance.

Regards
Harshat

In menuselect, look at the dependencies and enable or install as necessary to fix the missing ones. app_jack seems to depend on “jack”, which is presumably some optional third party component, and resample, which again looks like a third party component, also required for codec_resample.

Looks like jack comes from http://www.jackaudio.org/ and libresample seems to come from Digium, but has its own branch in the SVN repository.

Hi
Thanks for the inputs. Actually after posting this question, I did make some progress and as you mention, I installed the packages of jack and libresample through yum -install. Specifically, I used -
yum -y install jack-audio-connection-kit-devel
yum -y install libresample-devel
This has enabled the app_jack option on the menuselect and it is trying to compile app_jack.C. However, there seems to be some problem with the libresample package and I am getting an error. Any ideas on what is wrong? Do I need some other version of the libresample package? The error is pasted below:

CC=“cc” CXX=“g++” LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="–silent" makeopts
make[1]: Entering directory /home/hpant/Asterisk_1.6/menuselect' make[1]:makeopts’ is up to date.
make[1]: Leaving directory /home/hpant/Asterisk_1.6/menuselect' menuselect/menuselect --check-deps menuselect.makeopts Generating embedded module rules ... [LD] app_jack.o -> app_jack.so /usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libresample.a(resample.c.o): relocation R_X86_64_32 againsta local symbol’ can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/…/…/…/…/lib64/libresample.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [app_jack.so] Error 1
make: *** [apps] Error 2

That looks like the Makefile for libresample doesn’t support 64 bit binaries. Assuming that it is supposed to, raise a bug report (against libresample, not Asterisk). Alternatively try adding -fPIC to the compiler option in that Makefile.

Hi
Thanks for your help. I tried another experiment but am still having some trouble.

Instead of using the package of libresample from yum install, I checked out from the svn of digium, as given in the file app_jack.C and now the make went through correctly, without raising any problems. I compiled Asterisk and see that app_jack.so has been placed in the /usr/lib/asterisk/modules area. However, when I try to use the application Jack(), it does not recognize it. I tried > core show application Jack but it says that this application Jack is not registered. What could be causing this?

Thanks
Harshat

Could be a missing configuration file, or you may need to explicitly load it. Look at the log for when Asterisk is starting, to see if there is a problem reported there.

Still no luck :frowning:
I tried the following:

I removed the jack installed through the yum install and instead installed the jack obtained through the download from the digium site. It compiled fine.
I also compiled the libresample from the downloaded version from digium site and this also compiled fine.
Next, I compiled Asterisk and everything compiled fine with the app_jack.so file being saved in /usr/lib/asterisk/modules directory.
However, the application Jack still did not register.

Next I removed the complete installation of Asterisk and downloaded the latest version from Digium site and repeated the whole procedure. The app_jack.c is compiling without any error/warning whatsoever and the new .so file is getting saved in the modules directory but the application is still not registering.

Any clue as to what could be missing here?

Ok…this should give a clue.

It seems the problem is that Asterisk is unable to find the file libresample.so.1.0 that app_jack.so uses. This file has been formed by the compilation of the libresample directory downloaded from the Digium server. Where should I copy this? I mean how do I know which place app_jack.so is looking for this file? I tried copying it in the modules directory, the main Asterisk directory and the main/ directory but it still does not find it.

Thanks
Harshat

Try /usr/local/lib, then /usr/lib. It is possible that a 64 bit systems will have a 64 somewhere in these names.

Ok …finally it worked :smile:

I had to add the path to the libresample.so.1.0 file in my LD_LIBRARY_PATH

Thanks for the help
Harshat