問題:Cepstral(ttsエンジン)をDebian 8を実行しているFreeswitchにインストールする必要があります。Freeswitchはすでに稼働していますが、mod_cepstralモジュールを作成するためにソースからビルドする必要がありました。
make
を実行すると、次のエラーが発生します。
In file included from ./crypto/include/prng.h:17:0,
from ./crypto/include/crypto_kernel.h:50,
from ./include/srtp.h:53,
from srtp/srtp.c:46:
./crypto/include/aes_icm_ossl.h:66:20: error: field ‘ctx’ has incomplete type
EVP_CIPHER_CTX ctx;
^~~
In file included from srtp/srtp.c:50:0:
./crypto/include/aes_gcm_ossl.h:58:18: error: field ‘ctx’ has incomplete type
EVP_CIPHER_CTX ctx;
^~~
Makefile:646: recipe for target 'srtp.lo' failed
make[1]: *** [srtp.lo] Error 1
make[1]: Leaving directory '/usr/src/freeswitch/libs/srtp'
Makefile:3931: recipe for target 'libs/srtp/libsrtp.la' failed
make: *** [libs/srtp/libsrtp.la] Error 2
私はインターネットを使って解決策を模索していますが、私は開発者ではありません。任意の助けいただければ幸いです。
Cepstralでサポートと話し合った結果、Jessie(Debian 8)はまだ完全には互換性がないと判断しました。私はサーバーをDebian 7で再構築し、現在は正常に動作しています。
wget https://github.com/Cisco/libsrtp/archive/v2.1.0.tar.gz
tar xfv v2.1.0.tar.gz
cd libsrtp-2.1.0
./configure --prefix=/usr --enable-openssl
make shared_library && Sudo make install
libsrtp
の最新バージョンを入手してください。
より新しいOpenSSLが公開しない原因strcut EVP_CIPHER_CTX、
これを試して
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
EVP_CIPHER_CTX_init(ctx);
//do sth here
//...
EVP_CIPHER_CTX_free(ctx);
OpenSSLに依存しているようですが、使用しているOpenSSLのバージョンに互換性がありません。 OpenSSL 1.1.0を使用していますが、OpenSSL 1.0.2を使用する必要があります