Problème: j'ai besoin d'installer Cepstral (moteur tts) dans Freeswitch exécutant Debian 8. Freeswitch est déjà opérationnel, mais je devais le construire à partir des sources pour qu'il crée le module mod_cepstral.
Lorsque j'exécute make
, voici l'erreur que j'obtiens:
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
J'ai parcouru Internet pour trouver des solutions, mais je ne suis pas un développeur et c'est bien au-dessus de ma tête. Toute aide serait appréciée.
Après avoir discuté avec le support de Cepstral, nous avons déterminé que Jessie (Debian 8) n'est pas encore entièrement compatible. J'ai reconstruit le serveur avec Debian 7 et cela fonctionne bien maintenant.
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
Obtenez la dernière version de libsrtp
.
car les nouveaux OpenSSL n'exposent pas strcut EVP_CIPHER_CTX,
essaye ça
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
EVP_CIPHER_CTX_init(ctx);
//do sth here
//...
EVP_CIPHER_CTX_free(ctx);
Il semble qu'il existe une dépendance à OpenSSL, mais la version d'OpenSSL que vous utilisez est incompatible. Vous utilisez OpenSSL 1.1.0 mais vous devez utiliser OpenSSL 1.0.2