[Home]

Summary:ASTERISK-25688: configure: No check for PJSIP pj_timer_entry_running
Reporter:Marcelo Terres (mhterres)Labels:
Date Opened:2016-01-12 05:31:14.000-0600Date Closed:
Priority:MinorRegression?
Status:Open/NewComponents:Core/BuildSystem
Versions:13.6.0 Frequency of
Occurrence
Related
Issues:
Environment:Asterisk 13.6.0 (tested in Asterisk 13.7.0 rc2 too), Ubuntu 14.04.3 LTS, Linux rtc 4.1.5-x86_64-linode61 #7 SMP Mon Aug 24 13:46:31 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux Attachments:
Description:When I try to call to another Asterisk via pjsip trunk, Asterisk crashs:

   -- Executing [407@ramais:2] Progress("PJSIP/10-00000000", "") in new stack
   -- Executing [407@ramais:3] Answer("PJSIP/10-00000000", "") in new stack
   -- Executing [407@ramais:4] Dial("PJSIP/10-00000000", "PJSIP/407@asterisk,30") in new stack
   -- Called PJSIP/407@asterisk
      > 0x7f166001e6b0 -- Probation passed - setting RTP source address to 177.27.46.125:4000
   -- PJSIP/10-00000000 requested media update control 26, passing it to PJSIP/asterisk-00000001
      > 0x7f166001e6b0 -- Probation passed - setting RTP source address to 177.27.46.125:4000
   -- PJSIP/asterisk-00000001 answered PJSIP/10-00000000
   -- Channel PJSIP/asterisk-00000001 joined 'simple_bridge' basic-bridge <ee50b922-2431-4571-9627-33a3a6d43921>
   -- Channel PJSIP/10-00000000 joined 'simple_bridge' basic-bridge <ee50b922-2431-4571-9627-33a3a6d43921>
      > Bridge ee50b922-2431-4571-9627-33a3a6d43921: switching from simple_bridge technology to native_rtp
      > Remotely bridged 'PJSIP/10-00000000' and 'PJSIP/asterisk-00000001' - media will flow directly between them
      > Remotely bridged 'PJSIP/10-00000000' and 'PJSIP/asterisk-00000001' - media will flow directly between them
asterisk: symbol lookup error: /usr/lib/asterisk/modules/res_pjsip_session.so: undefined symbol: pj_timer_entry_running

It is the same problem reported in this URL: http://stackoverflow.com/questions/34287633/asterisk-symbol-lookup-error-res-pjsip-session-so-undefined-symbol-pj-timer-ent
Comments:By: Asterisk Team (asteriskteam) 2016-01-12 05:31:16.165-0600

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

By: Joshua C. Colp (jcolp) 2016-01-12 16:03:16.843-0600

What version of PJSIP are you using and how was it built?

By: Marcelo Terres (mhterres) 2016-01-12 16:25:29.427-0600

I'm using 2.2.1.

I try to compile Asterisk with 2.4.5 but I received this error:

  [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_request_serializer’:
res_pjsip/pjsip_distributor.c:114:21: error: ‘pjsip_transaction’ has no member named ‘mutex’
 pj_mutex_unlock(tsx->mutex);
                    ^
res_pjsip/pjsip_distributor.c: In function ‘find_dialog’:
res_pjsip/pjsip_distributor.c:230:21: error: ‘pjsip_transaction’ has no member named ‘mutex’
 pj_mutex_unlock(tsx->mutex);
                    ^
make[1]: *** [res_pjsip/pjsip_distributor.o] Error 1
make: *** [res] Error 2

What pjproject version should I use?

By: Joshua C. Colp (jcolp) 2016-01-12 16:29:32.288-0600

That error will happen if you either have multiple installs of PJSIP which differ, or if you do not re-run ./configure after updating PJSIP. Have you confirmed no other install is present after upgrading? They can be in /usr/lib as well as /usr/local/lib

By: Marcelo Terres (mhterres) 2016-01-12 16:34:09.750-0600

Joshua, I solved the last problem with this approach:

http://forums.asterisk.org/viewtopic.php?f=1&t=90497#p201904

By: Marcelo Terres (mhterres) 2016-01-12 16:35:35.863-0600

But now Asterisk is crashing on start:

 == res_pjsip_session.so => (PJSIP Session resource)
Loading res_hep.so.
asterisk: ../src/pj/lock.c:273: grp_lock_unset_owner_thread: Assertion `glock->owner == pj_thread_this()' failed.


:-(

By: Marcelo Terres (mhterres) 2016-01-12 17:42:53.749-0600

I removed all old files (pjproject 2.2.1) and recompiled pjproject 2.4.5

Then, when I tried to compile Asterisk 13.6.0 I received the following errors:

  [LD] chan_pjsip.o pjsip/dialplan_functions.o -> chan_pjsip.so
/usr/bin/ld: /usr/local/lib/libpjsip-ua-x86_64-unknown-linux-gnu.a(sip_inv.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpjsip-ua-x86_64-unknown-linux-gnu.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [chan_pjsip.so] Error 1
make: *** [channels] Error 2


By: Marcelo Terres (mhterres) 2016-01-12 18:07:53.581-0600

Joshua, it's solved.

I compiled pjproject 2.4.5 and Asterisk 13.6 (both configured with --enable-shared) and now it's working.

Thanks a lot for your attention.

A final suggestion: maybe you should inform in new releases the ideal pjproject version to use with Asterisk. I think that it'll make it easier to put Asterisk and pjsip running together. :)

By: Joshua C. Colp (jcolp) 2016-01-12 19:14:08.365-0600

The configure script is supposed to check for the required parts to determine if the PJSIP is supported or not. In this case that's not happening, so it would be a bug.

By: George Joseph (gjoseph) 2016-02-22 12:19:32.865-0600

What version of pjproject was Asterisk compiled against and what version of pjproject is it running against?




By: Marcelo Terres (mhterres) 2016-02-27 07:27:23.575-0600

Oh, I don't remember the old version.

Now I'm using 2.4.5.