res_pjsip/pjsip_distributor.c:141:21: error

Hi there

I’m typing to install on my Raspberry PJProject and Asterisk 12.3.0.

Compilation of PJProjects goes without any visable problems.
For Asterisk I start with

/usr/src/asterisk-12.3.0/contrib/scripts/install_prereq install [Ok]
./configure [Ok]
make [ko]

Here I get the following error:

[CC] res_pjsip/config_auth.c -> res_pjsip/config_auth.o
[CC] res_pjsip/config_domain_aliases.c -> res_pjsip/config_domain_aliases.o
[CC] res_pjsip/config_global.c -> res_pjsip/config_global.o
[CC] res_pjsip/config_system.c -> res_pjsip/config_system.o
[CC] res_pjsip/config_transport.c -> res_pjsip/config_transport.o
[CC] res_pjsip/location.c -> res_pjsip/location.o
[CC] res_pjsip/pjsip_cli.c -> res_pjsip/pjsip_cli.o
[CC] res_pjsip/pjsip_configuration.c -> res_pjsip/pjsip_configuration.o
[CC] res_pjsip/pjsip_distributor.c -> res_pjsip/pjsip_distributor.o
res_pjsip/pjsip_distributor.c: In function ‘find_dialog’:
res_pjsip/pjsip_distributor.c:141:21: error: ‘pjsip_transaction’ has no member named ‘mutex’
make[1]: *** [res_pjsip/pjsip_distributor.o] Error 1
make: *** [res] Error 2
root@raspberrypi:/usr/src/asterisk-12.3.0#

I tryed to find a solution on the net

Replace in /usr/include/pj/config.h
#elif defined (PJ_M_ARMV4) || defined(ARM) || defined(ARM) ||
defined(ARMV4) || defined(arm)
/*
* ARM, bi-endian, so raise error if endianness is not configured
*/

undef PJ_M_ARMV4

define PJ_M_ARMV4 1

define PJ_M_NAME “armv4”

define PJ_HAS_PENTIUM 0

if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN

error Endianness must be declared for this processor

endif

with

#elif defined (PJ_M_ARMV4) || defined(ARM) || defined(ARM) ||
defined(ARMV4) || defined(arm)
/*
* ARM, bi-endian, so raise error if endianness is not configured
*/

undef PJ_M_ARMV4

define PJ_M_ARMV4 1

define PJ_M_NAME “armv4”

define PJ_HAS_PENTIUM 0

define PJ_IS_LITTLE_ENDIAN 1

define PJ_IS_BIG_ENDIAN 0

But still the same error.
I hope to find some help here.

Thanks in adavance and best regards

Tra

Hello. The solution to your issue is as follows:

  1. Compile & install pjsip as normal.
  2. Run “configure” for Asterisk as normal
  3. Run “Make menuselect” for Asterisk as normal
  4. BEFORE running “make” to compile Asterisk, locate “autoconfig.h” and open it with vi or nano. It will be in the “include/asterisk/” folder.
    Find the 2 lines:

[quote]/* Define to 1 if PJPROJECT has the PJSIP Transaction Group Lock Support feature. /
/
#undef HAVE_PJ_TRANSACTION_GRP_LOCK */[/quote]
Change the second line to:

  1. Save the file
  2. You should be able to run “make” successfully now.

Thank you for the fix. It’s odd that this problem still exists.