Summary:ASTERISK-24001: res_rtp_asterisk fails to load module due to undefined symbol 'dtls_perform_handshake' when PJPROJECT is not installed
Reporter:Don Fanning (jfalcon)Labels:
Date Opened:2014-07-07 22:07:12Date Closed:2014-07-08 09:56:38
Versions:12.3.2 Frequency of
Environment:ubuntu 14.04 ltsAttachments:( 0) ASTERISK-24001-12.diff
Description:During compile time I get this warning:
bq. [CC] res_rtp_asterisk.c -> res_rtp_asterisk.o
bq.  res_rtp_asterisk.c: In function ‘ast_rtp_activate’:
bq.  res_rtp_asterisk.c:4643:2: warning: implicit declaration of function ‘dtls_perform_handshake’ [-Wimplicit-function-declaration]
 dtls_perform_handshake(instance, &rtp->dtls, 0);
bq.     [LD] res_rtp_asterisk.o -> res_rtp_asterisk.so
bq.    [CC] res_rtp_multicast.c -> res_rtp_multicast.o
bq.     [LD] res_rtp_multicast.o -> res_rtp_multicast.so

During asterisk execution this error is presented:
bq.   > Registering module res_rtp_asterisk
bq.  > Unregistering module res_rtp_asterisk
bq.  [Jul  8 04:48:57] WARNING[9026]: loader.c:565 load_dynamic_module: Error loading module 'res_rt _asterisk.so':  /usr/lib/asterisk/modules/res_rtp_asterisk.so: undefined symbol: dtls_perform_handshake
bq.  [Jul  8 04:48:57] WARNING[9026]: loader.c:1032 load_resource: Module 'res_rtp_asterisk.so' could not be loaded.

Comments:By: Matt Jordan (mjordan) 2014-07-08 07:47:12.939-0500

Please try the attached patch. The DTLS handshake function was declared inside the guards for PJPROJECT, while its usage was not.

By: Matt Jordan (mjordan) 2014-07-08 09:36:06.132-0500


I'm pretty sure this is right :-)

I'm going to go ahead and commit + close this issue. If you still have a problem with this patch or with the latest from the 12 branch, let me know by commenting on this issue and I'll reopen it. Thanks!