jambonz / freeswitch-modules

Freeswitch modules designed for use with jambonz
Other
24 stars 21 forks source link

Unable to load mod_aws_transcribe #81

Closed realsama closed 2 months ago

realsama commented 3 months ago

Hello, thank you fro providing this libs. I have been able to install and use mod_google_transcribe successfully but I can't get mod_aws_transcribe to work properly. The below is my error.

2024-06-25 16:16:54.926542 73.60% [CRIT] switch_loadable_module.c:1750 Error Loading module /usr/local/freeswitch/mod/mod_aws_transcribe.so
**/usr/local/freeswitch/mod/mod_aws_transcribe.so: undefined symbol: aws_symmetric_cipher_destroy**

I have lifted the relevant parts in the provided configure.ac and Makefile.am files in your packer repository. I can't use the ansible/packer script because I have a custom build process. Can you help provide some pointers on how to solve this? Thank you.

justin-lavelle commented 3 months ago

Having the same issues with the deepgram and assemblyai modules.

freeswitch> load mod_assemblyai_transcribe
+OK Reloading XML
-ERR [module load file routine returned an error]

2024-06-26 04:31:08.024520 89.83% [CRIT] switch_loadable_module.c:1755 Error Loading module /usr/lib/freeswitch/mod/mod_assemblyai_transcribe.so
**/usr/lib/freeswitch/mod/mod_assemblyai_transcribe.so: undefined symbol: aai_transcribe_session_stop**

I'm building the module and then running on a separate system using the official 1.10.9 release for Ubuntu 22.04, libwebsockets-dev is installed on that system.

davehorton commented 3 months ago

These modules are provided for use with jambonz (jambonz.org), unfortunately I no longer have time to troubleshoot other implementations.

realsama commented 2 months ago

I have been able to create a Cmake file that compiles the needed symbols properly.

justin-lavelle commented 2 months ago

I have been able to create a Cmake file that compiles the needed symbols properly.

Can you please share that here?

realsama commented 2 months ago

I have been able to create a Cmake file that compiles the needed symbols properly.

Can you please share that here?

# /usr/local/src/freeswitch/src/mod/applications/mod_aws_transcribe/CMakeLists.txt

cmake_minimum_required(VERSION 3.18)
project(mod_aws_transcribe)

set(ENV{PKG_CONFIG_PATH} "/usr/local/freeswitch/lib/pkgconfig:/usr/local/ssl/lib/pkgconfig/:$ENV{PKG_CONFIG_PATH}")

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_SHARED_LIBRARY_PREFIX "")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g")

find_package(PkgConfig REQUIRED)
  find_package(ZLIB REQUIRED)
find_package(AWSSDK COMPONENTS transcribestreaming)

pkg_check_modules(FreeSWITCH REQUIRED IMPORTED_TARGET freeswitch)
pkg_get_variable(FS_MOD_DIR freeswitch modulesdir)
message("FreeSWITCH modules dir: ${FS_MOD_DIR}")

add_library(mod_aws_transcribe SHARED mod_aws_transcribe.c aws_transcribe_glue.cpp mod_aws_transcribe.h aws_transcribe_glue.h simple_buffer.h)
set_property(TARGET mod_aws_transcribe PROPERTY POSITION_INDEPENDENT_CODE ON)

target_include_directories(mod_aws_transcribe PRIVATE ${FreeSWITCH_INCLUDE_DIRS})

target_link_libraries(mod_aws_transcribe PRIVATE PkgConfig::FreeSWITCH pthread)
target_link_libraries(mod_aws_transcribe PRIVATE ${AWSSDK_LINK_LIBRARIES})

install(TARGETS mod_aws_transcribe DESTINATION ${FS_MOD_DIR})
mkdir mod_aws_transcribe/build && cd mod_aws_transcribe/build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j 4
make install
mv mod_aws_transcribe.so /usr/local/freeswitch/mod/

You need to install the was cpp sdk before trying to compile.