[solved] Asterisk15: Pj_ssl_cipher_name: symbol not found error while loading res_pjsip.so on OpenWrt

I am getting the error below while loading res_pjsip.so in asterisk 15 on Openwrt. Can some one please let me know what am I missing?

>>  module load res_pjsip.so

Unable to load module res_pjsip.so
Command 'module load res_pjsip.so' failed.
[Feb 17 09:36:07] WARNING[19228]: loader.c:580 load_dlopen: Error loading module 'res_pjsip.so': Error relocating /usr/lib/asterisk/modules/res_pjsip.so: pj_ssl_cipher_name: symbol not found
[Feb 17 09:36:07] WARNING[19228]: loader.c:1184 load_resource: Module 'res_pjsip.so' could not be loaded.

Hi, please provide more details. The interesting part for now would be the version of openwrt you're using and the version of the packages. And if you compiled the software yourself or downloaded it.

Regards,
Seb

I am using openwrt 18.06 that I am compiling myself for the A20 Olinuxuino-micro board.
Below is the list of all packages installed

~# opkg list
alsa-lib - 1.1.5-1
alsa-utils - 1.1.0-1
asterisk13 - 13.19.2-4
asterisk13-app-verbose - 13.19.2-4
asterisk13-cdr-csv - 13.19.2-4
asterisk13-codec-ulaw - 13.19.2-4
asterisk13-format-g719 - 13.19.2-4
asterisk13-format-g723 - 13.19.2-4
asterisk13-format-g726 - 13.19.2-4
asterisk13-pjsip - 13.19.2-4
asterisk13-res-pjproject - 13.19.2-4
asterisk13-res-rtp-asterisk - 13.19.2-4
asterisk13-res-sorcery - 13.19.2-4
avahi-dbus-daemon - 0.6.32-3
base-files - 190-r6719-a656ea0
bash - 4.4.12-1
bcg729 - 1.0.4-3
boost - 1.67.0-1
boost-container - 1.67.0-1
brcmfmac-firmware-usb - 2017-09-06-a61ac5cf-1
busybox - 1.28.3-1
ca-certificates - 20170717
coreutils - 8.23-3
coreutils-timeout - 8.23-3
dahdi-cfg - 2.11.1-3
dahdi-monitor - 2.11.1-3
dahdi-tools-libtonezone - 2.11.1-3
dbus - 1.10.4-1
dropbear - 2017.75-5
e2fsprogs - 1.44.1-1
firewall - 2018-04-05-35b3e74a-2
fstools - 2018-04-16-e2436836-1
fwtool - 1
hostapd-common - 2018-04-09-fa617ee6-2
iw - 4.14-1
jansson - 2.10-1
jshn - 2018-04-12-6eff829d-1
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 4.14.34-1-ba3c68f57ecaa6c16e5b600353a19b1d
kmod-ac97 - 4.14.34-1
kmod-amfeltec_usb - 4.14.34+4.0.4-2
kmod-ata-ahci-platform - 4.14.34-1
kmod-ata-core - 4.14.34-1
kmod-ata-sunxi - 4.14.34-1
kmod-brcmfmac - 4.14.34+2017-11-01-4
kmod-brcmutil - 4.14.34+2017-11-01-4
kmod-cfg80211 - 4.14.34+2017-11-01-4
kmod-crypto-acompress - 4.14.34-1
kmod-dahdi - 4.14.34+2.11.1-20180111-2
kmod-dahdi-dummy - 4.14.34+2.11.1-20180111-2
kmod-dahdi-echocan-oslec - 4.14.34+2.11.1-20180111-2
kmod-echo - 4.14.34-1
kmod-i2c-core - 4.14.34-1
kmod-input-core - 4.14.34-1
kmod-ip6tables - 4.14.34-1
kmod-ipt-conntrack - 4.14.34-1
kmod-ipt-core - 4.14.34-1
kmod-ipt-nat - 4.14.34-1
kmod-ipt-offload - 4.14.34-1
kmod-ledtrig-heartbeat - 4.14.34-1
kmod-lib-crc-ccitt - 4.14.34-1
kmod-lib-lzo - 4.14.34-1
kmod-libphy - 4.14.34-1
kmod-mac80211 - 4.14.34+2017-11-01-4
kmod-mmc - 4.14.34-1
kmod-nf-conntrack - 4.14.34-1
kmod-nf-conntrack6 - 4.14.34-1
kmod-nf-flow - 4.14.34-1
kmod-nf-ipt - 4.14.34-1
kmod-nf-ipt6 - 4.14.34-1
kmod-nf-nat - 4.14.34-1
kmod-nf-reject - 4.14.34-1
kmod-nf-reject6 - 4.14.34-1
kmod-nls-base - 4.14.34-1
kmod-of-mdio - 4.14.34-1
kmod-ppp - 4.14.34-1
kmod-pppoe - 4.14.34-1
kmod-pppox - 4.14.34-1
kmod-regmap - 4.14.34-1
kmod-rtc-sunxi - 4.14.34-1
kmod-rtl8192c-common - 4.14.34+2017-11-01-4
kmod-rtl8192cu - 4.14.34+2017-11-01-4
kmod-rtl8xxxu - 4.14.34+2017-11-01-4
kmod-rtlwifi - 4.14.34+2017-11-01-4
kmod-rtlwifi-usb - 4.14.34+2017-11-01-4
kmod-scsi-core - 4.14.34-1
kmod-slhc - 4.14.34-1
kmod-sound-core - 4.14.34-1
kmod-sound-soc-core - 4.14.34-1
kmod-sound-soc-sunxi - 4.14.34-1
kmod-sun4i-emac - 4.14.34-1
kmod-usb-core - 4.14.34-1
lede-keyring - 2017-01-20-a50b7529-1
libao - 1.2.0-1
libaudiofile - 0.3.6-4
libavahi-client - 0.6.32-3
libavahi-compat-libdnssd - 0.6.32-3
libavahi-dbus-support - 0.6.32-3
libblkid - 2.32-1
libblobmsg-json - 2018-04-12-6eff829d-1
libbz2 - 1.0.6-3
libc - 1.1.19-1
libcap - 2.25-2
libcares - 1.14.0-1
libcomerr - 1.44.1-1
libcurl - 7.59.0-2
libdaemon - 0.14-5
libdbus - 1.10.4-1
libedit - 20170329-3.1-1
libevdev - 1.5.6-1
libexpat - 2.2.5-1
libext2fs - 1.44.1-1
libf2fs - 1.10.0-1
libffi - 3.2.1-3
libffmpeg-custom - 3.2.10-2
libflac - 1.3.2-1
libgcc - 7.3.0-1
libid3tag - 0.15.1b-4
libip4tc - 1.6.2-1
libip6tc - 1.6.2-1
libiwinfo - 2018-02-15-223e09bf-1
libiwinfo-lua - 2018-02-15-223e09bf-1
libjson-c - 0.12.1-1
libjson-script - 2018-04-12-6eff829d-1
libltdl - 2.4.6-1
liblua - 5.1.5-1
libmbedtls - 2.8.0-1
libminiupnpc - 2.0.20170509-1
libmms - 0.6.4-4
libmosquitto-ssl - 1.4.15-3
libmosquittopp - 1.4.15-3
libmpdclient - 2.11-1
libmpg123 - 1.25.8-1
libmysqlclient - 5.1.73-3
libncurses - 6.1-1
libnl-tiny - 0.1-5
libogg - 1.3.2-2
libopenssl - 1.0.2o-1
libopus - 1.2.1-1
libout123 - 1.25.8-1
libpcap - 1.8.1-1
libpj - 2.6-1
libpjlib-util - 2.6-1
libpjmedia - 2.6-1
libpjnath - 2.6-1
libpjsip - 2.6-1
libpjsip-simple - 2.6-1
libpjsip-ua - 2.6-1
libpjsua - 2.6-1
libpjsua2 - 2.6-1
libpri - 1.6.0-2
libpthread - 1.1.19-1
libreadline - 7.0-1
libresample - 2.6-1
librt - 1.1.19-1
libserialport - 0.1.1-1
libshout - 2.4.1-1
libsmartcols - 2.32-1
libsndfile - 1.0.28-1
libspeex - 1.2.0-1
libspeexdsp - 1.2rc3-1
libsqlite3 - 3230100-1
libsrtp - 1.6.0-2
libsrtp2 - 2.1.0-1
libss - 1.44.1-1
libstdcpp - 7.3.0-1
libubox - 2018-04-12-6eff829d-1
libubus - 2018-01-16-5bae22eb-1
libuci - 2018-03-24-5d2bf09e-1
libuclient - 2017-11-02-4b87d831-1
libudev-fbsd - 20160820-2
libupnp - 1.6.19-2
libupnpp - 0.14.0-1
libusb-1.0 - 1.0.21-1
libuuid - 2.32-1
libvorbis - 1.3.5-2
libvorbisidec - 1.0.3-20150104-3
libxml2 - 2.9.8-1
libxtables - 1.6.2-1
libzip - 0.10.1-1
logd - 2018-02-14-128bc35f-1
lua - 5.1.5-1
miniupnpc - 2.0.20170509-1
mkf2fs - 1.10.0-1
mosquitto-ssl - 1.4.15-3
mpc - 0.28-1
mpd-full - 0.20.23-1
mpg123 - 1.25.8-1
mtd - 21
mysql-server - 5.1.73-3
nand-utils - 1.5.2-1
netifd - 2018-04-16-513eb27d-1
odhcp6c - 2018-05-04-474b5a3a-11
opkg - 2017-12-07-3b417b9f-2
partx-utils - 2.32-1
procd - 2018-03-28-dfb68f85-1
python-base - 2.7.14-10
python-codecs - 2.7.14-10
python-ctypes - 2.7.14-10
python-email - 2.7.14-10
python-light - 2.7.14-10
python-openssl - 2.7.14-10
python-xml - 2.7.14-10
rpcd - 2017-12-07-cfe1e75c-1
rtl8188eu-firmware - 2017-09-06-a61ac5cf-1
rtl8192cu-firmware - 2017-09-06-a61ac5cf-1
shairplay - 2016-01-01-1
shaula720-azan-times - 2.0.6.0-1
shaula720-zgb - 0.0.2.0-1
sheratan990d - 0.0.3.1-1
shine - 3.1.0-2
terminfo - 6.1-1
ubi-utils - 1.5.2-1
uboot-envtools - 2018.03-1
ubox - 2018-02-14-128bc35f-1
ubus - 2018-01-16-5bae22eb-1
ubusd - 2018-01-16-5bae22eb-1
uci - 2018-03-24-5d2bf09e-1
uclibcxx - 0.2.4-3
uclient-fetch - 2017-11-02-4b87d831-1
uhttpd - 2017-11-04-a235636a-1
uhttpd-mod-ubus - 2017-11-04-a235636a-1
upmpdcli - 1.1.3-2
usbutils - 007-7
usign - 2015-07-04-ef641914-1
wireless-regdb - 2017-10-20-4343d359
youtube-dl - 2018.03.10-1
zlib - 1.2.11-2

Hi :slight_smile:
So I understand that you compiled the base image yourself. And the asterisk packages? Did opkg download them or did you build them as well? And the list shows asterisk 13 instead of 15 (the subject mentions 15). Is Asterisk 13 not working for you or 15?

I built them while compiling the firmware. It shows 13 as I was currently testing to use asterisk 13 instead of asterisk 15 to see if that solves the issue. Any ways the problem persists!

Any idea what can missing that causes this ** pj_ssl_cipher_name: symbol not found**

OK, so both 13 and 15 are failing.

I'm trying to understand what version you built. Above list contains

ca-certificates - 20170717

That is an old version and was updated in the openwrt-18.06 branch on 5th of May 2018 to 20180409. And then the list contains pjproject 2.6. But since 26th of February the openwrt-18.06 branch has version 2.7.2.

Don't get me wrong, if there's an error we should find it. But I see no point in checking something that may only affect old versions.

Can you build the system with an updated 18.06 branch?

git clone https://github.com/openwrt/openwrt.git
cd openwrt
git checkout openwrt-18.06
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
<select target>
make defconfig
make menuconfig
<select packages>

Or just build the target and download the packages with opkg.

I've done some asterisk updates in the past and run-tested the whole thing and it was working fine, also with pjsip.

Kind regards,
Seb

1 Like

I didn't update the openwrt as this build was properly tested for other stuff that I am utilizing, I am using pjproject 2.6 as one of the custom modules depends on it and won't work smoothly with 2.7.

Anyways I would try to update openwrt to the latest stable version and report back

1 Like

I think there should be no harm when you just let opkg download pj* and asterisk* for you from the 18.06 package repo. Unless you have problems with space on the device. Then you can test right away without the need to compile anything.

1 Like

Ah, so you have custom modules that depend on pjsip 2-6. OK :smiley: I can understand why that would be tricky.

1 Like

pjsip loads and works fine on fresh 18.06 openwrt and same asterisk and pjsip related packages. Will try to update the pjsip on my previous buildroot dir and see if that solves the issue

Update: I updated pjproject to 2.7 and this solves the ssl_chiper_name issue. Any how now ins asterisk I am not able to see pjsip related commands

 core show help
!                              -- Execute a shell command
acl show                       -- Show a named ACL or list all named ACLs
aoc set debug                  -- enable cli debugging of AOC messages
bridge kick                    -- Kick a channel from a bridge
bridge show all                -- List all bridges
bridge show                    -- Show information about a bridge
bridge technology show         -- List registered bridge technologies
bridge technology {suspend|unsuspend} -- Suspend/unsuspend a bridge technology
cc cancel [core|all]           -- Kill a CC transaction
cc report status               -- Reports CC stats
cdr set debug [on|off]         -- Enable debugging in the CDR engine
cdr show active                -- Display active CDRs for channels
cdr show status                -- Display the CDR status
cdr submit                     -- Posts all pending batched CDR data
cel show status                -- Display the CEL status
channel request hangup         -- Request a hangup on a given channel
cli check permissions          -- Try a permissions config for a user
cli reload permissions         -- Reload CLI permissions config
cli show permissions           -- Show CLI permissions
confbridge kick                -- Kick participants out of conference bridges.
confbridge list                -- List conference bridges and participants.
confbridge lock                -- Lock a conference.
confbridge mute                -- Mute participants.
confbridge record start        -- Start recording a conference
confbridge record stop         -- Stop recording a conference.
confbridge show menu           -- Show a conference menu
confbridge show menus          -- Show a list of conference menus
confbridge show profile bridge -- Show a conference bridge profile.
confbridge show profile bridges -- Show a list of conference bridge profiles.
confbridge show profile user   -- Show a conference user profile.
confbridge show profile users  -- Show a list of conference user profiles.
confbridge unlock              -- Unlock a conference.
confbridge unmute              -- Unmute participants.
config list                    -- Show all files that have loaded a configuration file
config reload                  -- Force a reload on modules using a particular configuration file
core abort shutdown            -- Cancel a running shutdown
core clear profile             -- Clear profiling info
core ping taskprocessor        -- Ping a named task processor
core reload                    -- Global reload
core restart gracefully        -- Restart Asterisk gracefully
core restart now               -- Restart Asterisk immediately
core restart when convenient   -- Restart Asterisk at empty call volume
core set debug channel         -- Enable/disable debugging on a channel
core set debug                 -- Set level of debug chattiness
core set verbose               -- Set level of verbose chattiness
core show applications [like|describing] -- Shows registered dialplan applications
core show application          -- Describe a specific dialplan application
core show calls [uptime]       -- Display information on calls
core show channels [concise|verbose|count] -- Display information on channels
core show channel              -- Display information on a specific channel
core show channeltypes         -- List available channel types
core show channeltype          -- Give more details on that channel type
core show codecs [audio|video|image|text] -- Displays a list of registered codecs
core show codec                -- Shows a specific codec
core show config mappings      -- Display config mappings (file names to config engines)
core show file formats         -- Displays file formats
core show functions [like]     -- Shows registered dialplan functions
core show function             -- Describe a specific dialplan function
core show hanguphandlers all   -- Show hangup handlers of all channels
core show hanguphandlers       -- Show hangup handlers of a specified channel
core show help                 -- Display help list, or specific help on a command
core show hints                -- Show dialplan hints
core show hint                 -- Show dialplan hint
core show image formats        -- Displays image formats
core show license              -- Show the license(s) for this copy of Asterisk
core show profile              -- Display profiling info
core show settings             -- Show some core settings
core show sounds               -- Shows available sounds
core show sound                -- Shows details about a specific sound
core show switches             -- Show alternative switches
core show sysinfo              -- Show System Information
core show taskprocessors       -- List instantiated task processors and statistics
core show threads              -- Show running threads
core show translation          -- Display translation matrix
core show uptime [seconds]     -- Show uptime information
core show version              -- Display version info
core show warranty             -- Show the warranty (if any) for this copy of Asterisk
core stop gracefully           -- Gracefully shut down Asterisk
core stop now                  -- Shut down Asterisk immediately
core stop when convenient      -- Shut down Asterisk at empty call volume
core waitfullybooted           -- Wait for Asterisk to be fully booted
dahdi create channels          -- Create channels
dahdi destroy channels         -- Destroy channels
dahdi restart                  -- Fully restart DAHDI channels
dahdi set dnd                  -- Sets/resets DND (Do Not Disturb) mode on a channel
dahdi set hwgain {rx|tx}       -- Set hardware gain on a channel
dahdi set swgain {rx|tx}       -- Set software gain on a channel
dahdi show cadences            -- List cadences
dahdi show channels [group|context] -- Show active DAHDI channels
dahdi show channel             -- Show information on a channel
dahdi show status              -- Show all DAHDI cards status
dahdi show version             -- Show the DAHDI version in use
database del                   -- Removes database key/value
database deltree               -- Removes database keytree/values
database get                   -- Gets database value
database put                   -- Adds/updates database value
database query                 -- Run a user-specified query on the astdb
database show                  -- Shows database contents
database showkey               -- Shows database contents
dialplan add extension         -- Add new extension into context
dialplan add ignorepat         -- Add new ignore pattern
dialplan add include           -- Include context in other context
dialplan debug                 -- Show fast extension pattern matching data structures
dialplan reload                -- Reload extensions and *only* extensions
dialplan remove context        -- Remove a specified context
dialplan remove extension      -- Remove a specified extension
dialplan remove ignorepat      -- Remove ignore pattern from context
dialplan remove include        -- Remove a specified include from context
dialplan save                  -- Save current dialplan into a file
dialplan set chanvar           -- Set a channel variable
dialplan set extenpatternmatchnew false -- Use the Old extension pattern matching algorithm.
dialplan set extenpatternmatchnew true -- Use the New extension pattern matching algorithm.
dialplan set global            -- Set global dialplan variable
dialplan show                  -- Show dialplan
dialplan show chanvar          -- Show channel variables
dialplan show globals          -- Show global dialplan variables
dnsmgr refresh                 -- Performs an immediate refresh
dnsmgr reload                  -- Reloads the DNS manager configuration
dnsmgr status                  -- Display the DNS manager status
features show                  -- Lists configured features
g729 debug                     -- Toggle g729 codec frame size statistics
group show channels            -- Display active channels with group(s)
http show status               -- Display HTTP server status
indication add                 -- Add the given indication to the country
indication remove              -- Remove the given indication from the country
indication show                -- Display a list of all countries/indications
keys init                      -- Initialize RSA key passcodes
keys show                      -- Displays RSA key information
local show channels            -- List status of local channels
logger add channel             -- Adds a new logging channel
logger mute                    -- Toggle logging output to a console
logger reload                  -- Reopens the log files
logger remove channel          -- Removes a logging channel
logger rotate                  -- Rotates and reopens the log files
logger set level {DEBUG|NOTICE|WARNING|ERROR|VERBOSE|DTMF} {on|off} -- Enables/Disables a specific logging level for this console
logger show channels           -- List configured log channels
manager reload                 -- Reload manager configurations
manager set debug [on|off]     -- Show, enable, disable debugging of the manager code
manager show command           -- Show a manager interface command
manager show commands          -- List manager interface commands
manager show connected         -- List connected manager interface users
manager show eventq            -- List manager interface queued events
manager show settings          -- Show manager global settings
manager show users             -- List configured manager users
manager show user              -- Display information on a specific manager user
media cache create             -- Create an item in the media cache
media cache delete             -- Remove an item from the media cache
media cache refresh            -- Refresh an item in the media cache
media cache show all           -- Show all items in the media cache
media cache show               -- Show a single item in the media cache
module load                    -- Load a module by name
module reload                  -- Reload configuration for a module
module show [like]             -- List modules and info
module unload                  -- Unload a module by name
no debug channel               -- Disable debugging on channel(s)
pri destroy span               -- Destroy a PRI span
pri service disable channel    -- Remove a channel from service
pri service enable channel     -- Return a channel to service
pri set debug {on|off|hex|intense|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15} span -- Enables PRI debugging on a span
pri set debug file             -- Sends PRI debug output to the specified file
pri show channels              -- Displays PRI channel information
pri show debug                 -- Displays current PRI debug settings
pri show spans                 -- Displays PRI span information
pri show span                  -- Displays PRI span information
pri show version               -- Displays libpri version
say load [new|old]             -- Set or show the say mode
stun set debug {on|off}        -- Enable/Disable STUN debugging
timing test                    -- Run a timing test
transcoder show                -- Display DAHDI transcoder utilization.
udptl set debug {on|off|ip}    -- Enable/Disable UDPTL debugging
udptl show config              -- Show UDPTL config options

Hello Dost,

Unfortunately don't have much time today. Can you check that the modules are loaded properly?

"module show like pj"

Also, I'm not sure what asterisk considers core commands. Are commands available that start with "pjsip"? For example:

"pjsip show registrations"

"pjsip show identifiers"

Best regards,
Seb

1 Like

I guess the built image was missing some so files. Running make command after make menuconfig produced proper image.

Glad you sorted it out. Have a nice day!

1 Like

@dmsherazi If your problem is solved, please consider marking this topic as [Solved]. (Click the pencil behind the topic...)

1 Like

is there any drop down etc? I couldn't see that so just edited the topic text .

You did it perfectly right.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.