Res_pjsip.so: undefined symbol Asterisk Docker

Hello!

Iam try to install Asterisk 20.6 in Docker - Debian 11

all be ok, but peers module not loading.

iam long tome do not working with asterisk. (from asterisk 16 ver)
last time work in chan_sip

Today chan_sip not use? pbx show deprication error…

iam try to learn use pjsip but

ERROR[45]: loader.c:283 module_load_error: Error loading module ‘res_pjsip.so’: /usr/lib/asterisk/modules/res_pjsip.so: undefined symbol: pjsip_tls_transport_restart

Dockerfile

FROM ubuntu:22.04 AS builder

ENV DEBIAN_FRONTEND="noninteractive"
ENV AST_VERSION 20.6.0

RUN set -ex; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        build-essential pkg-config \
        wget subversion bzip2 patch \
        libedit-dev libjansson-dev libsqlite3-dev uuid-dev libxml2-dev  \
        liburiparser1 libgsm1 libcurl4-openssl-dev; \
    cd /usr/src; \
    wget "https://github.com/asterisk/asterisk/archive/refs/tags/${AST_VERSION}.tar.gz"; \
    tar xvf ${AST_VERSION}.tar.gz; \
    cd asterisk-${AST_VERSION}*/; \
    ./configure --disable-xmldoc --without-libxslt --without-dahdi ; \
    make menuselect/menuselect menuselect-tree menuselect.makeopts; \
    menuselect/menuselect --disable BUILD_NATIVE menuselect.makeopts; \
    menuselect/menuselect --enable codec_g729a menuselect.makeopts; \
    echo "ENABLE chan_sip"; \
    menuselect/menuselect --enable chan_sip menuselect.makeopts; \
    echo "disable deprecated modules/apps"; \
    menuselect/menuselect --disable res_adsi menuselect.makeopts; \
    menuselect/menuselect --disable app_adsiprog menuselect.makeopts; \
    menuselect/menuselect --disable app_getcpeid menuselect.makeopts; \
    echo "ENABLE cdr and db/sql modules/apps"; \
    menuselect/menuselect --enable func_odbc menuselect.makeopts; \
    menuselect/menuselect --enable res_config_odbc menuselect.makeopts; \
    menuselect/menuselect --enable cdr_adaptive_odbc menuselect.makeopts; \
    menuselect/menuselect --enable cel_odbc menuselect.makeopts; \
    menuselect/menuselect --enable cdr_odbc menuselect.makeopts;  \
    menuselect/menuselect --enable func_cdr menuselect.makeopts; \
    menuselect/menuselect --enable cdr_custom menuselect.makeopts; \
    menuselect/menuselect --enable cdr_manager menuselect.makeopts; \
    menuselect/menuselect --enable res_odbc menuselect.makeopts; \
    menuselect/menuselect --enable res_odbc_transaction menuselect.makeopts; \
    echo "disable cdr and db/sql modules/apps"; \
    menuselect/menuselect --disable cdr_pgsql menuselect.makeopts; \
    menuselect/menuselect --disable cdr_tds menuselect.makeopts; \
    menuselect/menuselect --disable cdr_sqlite3_custom menuselect.makeopts; \
    menuselect/menuselect --disable cdr_csv menuselect.makeopts; \
    menuselect/menuselect --disable app_forkcdr menuselect.makeopts; \
    menuselect/menuselect --disable cdr_radius menuselect.makeopts; \
    menuselect/menuselect --disable cel_pgsql menuselect.makeopts; \
    menuselect/menuselect --disable cel_tds menuselect.makeopts; \
    menuselect/menuselect --disable cel_sqlite3_custom menuselect.makeopts; \
    menuselect/menuselect --disable cel_radius menuselect.makeopts; \
    menuselect/menuselect --disable res_config_sqlite3 menuselect.makeopts; \
    menuselect/menuselect --disable res_config_pgsql menuselect.makeopts; \
    menuselect/menuselect --disable func_db menuselect.makeopts; \
    menuselect/menuselect --disable res_sorcery_astdb menuselect.makeopts; \
    menuselect/menuselect --disable pbx_realtime menuselect.makeopts; \
    echo "disable unused codec"; \
    menuselect/menuselect --disable codec_ilbc menuselect.makeopts; \
    menuselect/menuselect --disable codec_lpc10 menuselect.makeopts; \
    menuselect/menuselect --disable codec_speex menuselect.makeopts; \
    menuselect/menuselect --disable format_ogg_vorbis menuselect.makeopts; \
    echo "ENABLE modules/apps"; \
    menuselect/menuselect --enable res_agi menuselect.makeopts; \
    menuselect/menuselect --enable func_dialgroup menuselect.makeopts; \
    menuselect/menuselect --enable func_groupcount menuselect.makeopts; \
    menuselect/menuselect --enable pbx_loopback menuselect.makeopts; \
    menuselect/menuselect --enable app_followme menuselect.makeopts; \
    menuselect/menuselect --enable app_mp3 menuselect.makeopts; \
    menuselect/menuselect --enable app_dictate menuselect.makeopts; \
    menuselect/menuselect --enable app_signal menuselect.makeopts; \
    echo "enable unused modules/apps"; \
    menuselect/menuselect --disable chan_iax2 menuselect.makeopts; \
    menuselect/menuselect --disable chan_motif menuselect.makeopts; \
    menuselect/menuselect --disable chan_unistim menuselect.makeopts; \
    menuselect/menuselect --disable chan_console menuselect.makeopts; \
    menuselect/menuselect --disable chan_audiosocket menuselect.makeopts; \
    menuselect/menuselect --disable cel_manager menuselect.makeopts; \
    menuselect/menuselect --disable cel_custom menuselect.makeopts; \
    menuselect/menuselect --disable res_geolocation menuselect.makeopts; \
    menuselect/menuselect --disable res_fax  menuselect.makeopts; \
    menuselect/menuselect --disable res_xmpp menuselect.makeopts; \
    menuselect/menuselect --disable res_stir_shaken menuselect.makeopts; \
    menuselect/menuselect --disable res_ael_share menuselect.makeopts; \
    menuselect/menuselect --disable res_parking menuselect.makeopts; \
    menuselect/menuselect --disable res_calendar_caldav menuselect.makeopts; \
    menuselect/menuselect --disable res_aeap menuselect.makeopts; \
    menuselect/menuselect --disable res_calendar menuselect.makeopts; \
    menuselect/menuselect --disable res_snmp menuselect.makeopts; \
    menuselect/menuselect --disable res_phoneprov menuselect.makeopts; \
    menuselect/menuselect --disable res_config_ldap menuselect.makeopts; \
    menuselect/menuselect --disable res_smdi menuselect.makeopts; \
    menuselect/menuselect --disable res_sorcery_memory_cache menuselect.makeopts; \
    menuselect/menuselect --disable res_calendar_ews menuselect.makeopts; \
    menuselect/menuselect --disable res_calendar_icalendar menuselect.makeopts; \
    menuselect/menuselect --disable res_http_media_cache menuselect.makeopts; \
    menuselect/menuselect --disable res_calendar_exchange menuselect.makeopts; \
    menuselect/menuselect --disable res_speech_aeap menuselect.makeopts; \
    menuselect/menuselect --disable res_resolver_unbound menuselect.makeopts; \
    menuselect/menuselect --disable res_hep menuselect.makeopts; \
    menuselect/menuselect --disable res_statsd menuselect.makeopts; \
    menuselect/menuselect --disable res_stun_monitor menuselect.makeopts; \
    menuselect/menuselect --disable res_sorcery_realtime menuselect.makeopts; \
    menuselect/menuselect --disable pbx_lua menuselect.makeopts; \
    menuselect/menuselect --disable pbx_ael menuselect.makeopts; \
    menuselect/menuselect --disable pbx_spool menuselect.makeopts; \
    menuselect/menuselect --disable pbx_dundi menuselect.makeopts; \
    menuselect/menuselect --disable func_env menuselect.makeopts; \
    menuselect/menuselect --disable func_speex menuselect.makeopts; \
    menuselect/menuselect --disable func_srv menuselect.makeopts; \
    menuselect/menuselect --disable func_holdintercept menuselect.makeopts; \
    menuselect/menuselect --disable func_aes menuselect.makeopts; \
    menuselect/menuselect --disable func_devstate menuselect.makeopts; \
    menuselect/menuselect --disable func_pitchshift menuselect.makeopts; \
    menuselect/menuselect --disable func_cut menuselect.makeopts; \
    menuselect/menuselect --disable func_enum menuselect.makeopts; \
    menuselect/menuselect --disable func_sorcery menuselect.makeopts; \
    menuselect/menuselect --disable func_presencestate menuselect.makeopts; \
    menuselect/menuselect --disable func_math menuselect.makeopts; \
    menuselect/menuselect --disable func_periodic_hook menuselect.makeopts; \
    menuselect/menuselect --disable app_zapateller menuselect.makeopts; \
    menuselect/menuselect --disable app_voicemail menuselect.makeopts; \
    menuselect/menuselect --disable app_minivm menuselect.makeopts; \
    menuselect/menuselect --disable app_agent_pool menuselect.makeopts; \
    menuselect/menuselect --disable app_chanspy menuselect.makeopts; \
    menuselect/menuselect --disable app_jack menuselect.makeopts; \
    menuselect/menuselect --disable app_sms menuselect.makeopts; \
    menuselect/menuselect --disable app_directory menuselect.makeopts; \
    menuselect/menuselect --disable app_externalivr menuselect.makeopts; \
    menuselect/menuselect --disable app_speech_utils menuselect.makeopts; \
    menuselect/menuselect --disable app_alarmreceiver menuselect.makeopts; \
    menuselect/menuselect --disable app_broadcast menuselect.makeopts; \
    menuselect/menuselect --disable app_amd menuselect.makeopts; \
    menuselect/menuselect --disable app_test menuselect.makeopts; \
    menuselect/menuselect --disable app_festival menuselect.makeopts; \
    menuselect/menuselect --disable app_disa menuselect.makeopts; \
    menuselect/menuselect --disable app_mf menuselect.makeopts; \
    menuselect/menuselect --disable app_sf menuselect.makeopts; \
    menuselect/menuselect --disable app_page menuselect.makeopts; \
    menuselect/menuselect --disable app_directed_pickup menuselect.makeopts; \
    menuselect/menuselect --disable app_morsecode menuselect.makeopts; \
    menuselect/menuselect --disable app_sendtext menuselect.makeopts; \
    echo "enable all pjsip"; \
    menuselect/menuselect --enable chan_pjsip menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_session menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_history menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_dtmf_info menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_transport_websocket menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_xpidf_body_generator menuselect.makeopts; \
    menuselect/menuselect --enable res_prometheus menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_pidf_body_generator menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_mwi_body_generator menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_empty_info menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_rfc3329 menuselect.makeopts; \
    menuselect/menuselect --enable func_pjsip_endpoint menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_messaging menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_notify menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_t38 menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_diversion menuselect.makeopts; \
    menuselect/menuselect --enable func_pjsip_aor menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_pidf_digium_body_supplement menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_pidf_eyebeam_body_supplement menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_sips_contact menuselect.makeopts; \
    menuselect/menuselect --enable func_pjsip_contact menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_dlg_options menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_refer menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_path menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_endpoint_identifier_anonymous menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_mwi menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_one_touch_record_info menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_caller_id menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_send_to_voicemail menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_endpoint_identifier_user menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_dialog_info_body_generator menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_outbound_registration menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_nat menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_publish_asterisk menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_outbound_publish menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_pubsub menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_endpoint_identifier_ip menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_registrar menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_header_funcs menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_outbound_authenticator_digest menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_acl menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_phoneprov_provider menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_authenticator_digest menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_exten_state menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_rfc3326 menuselect.makeopts; \
    menuselect/menuselect --enable res_pjsip_logger menuselect.makeopts; \
    make; \
    make install; \
    make samples; \
    make config; \
    apt-get remove -y --purge --auto-remove build-essential software-properties-common lib*dev; \
    apt-get clean && rm -rf /var/lib/{apt,dpkg,cache,log}; \
    rm -rf /usr/src/${AST_VERSION}* && rm -rf /usr/src/asterisk*;


FROM ubuntu:22.04
RUN set -ex; \
    apt-get update; \
    export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true; \
    apt-get install -y --no-install-recommends  \
       wget tzdata libedit2 libjansson4 libsqlite3-0 libuuid1 libxml2  \
       liburiparser1 libgsm1 libcurl4; \
    apt-get clean && rm -rf /var/lib/{apt,dpkg,cache,log};

COPY --from=builder /var/spool/asterisk /var/spool/asterisk
COPY --from=builder /var/lib/asterisk /var/lib/asterisk
COPY --from=builder /var/run/asterisk /var/run/asterisk
COPY --from=builder /usr/lib/asterisk /usr/lib/asterisk
COPY --from=builder /etc/asterisk /etc/asterisk

COPY --from=builder /usr/sbin/astcanary \
                    /usr/sbin/astdb2bdb \
                    /usr/sbin/astdb2sqlite3 \
                    /usr/sbin/asterisk \
                    /usr/sbin/astgenkey \
                    /usr/sbin/astversion \
                    /usr/sbin/autosupport \
                    /usr/sbin/rasterisk \
                    /usr/sbin/safe_asterisk \
                    /usr/sbin/

COPY --from=builder /usr/lib/libasteriskssl.so.1 \
                    /usr/lib/libasteriskssl.so \
                    /usr/lib/libasteriskpj.so.2 \
                    /usr/lib/libasteriskpj.so \
                    /usr/lib/

ENV TZ Europe/Tallinn
RUN set -ex; \
    echo $TZ > /etc/timezone; \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \
    wget "http://asterisk.hosting.lv/bin/codec_g729-ast180-gcc4-glibc-x86_64-core2-sse4.so"  \
    -O /usr/lib/asterisk/modules/codec_g729.so;

# if need curl for Global Web
# RUN set -ex; \
#     apt-get install -y --no-install-recommends ca-certificates;

CMD [ "asterisk", "-f" ]

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