Como compilar minisip (y no morir en el intento)

Me habían hablado bastante bien de este cliente SIP, y quería probarlo, pero no hay paquetes deb ni nada por el estilo, y dado que la compilación no es trivial, aquí la escribo por si a alguien le sirve:

Primero descargamos minisip del repositorio svn. Yo he intentado compilar la versión trunk, pero no he podido, así que he compilado la versión estable.

#cd /usr/src
#svn co svn://minisip.org/minisip/branches/stable minisip

Una vez hemos descargado el código fuente, antes de comenzar la compilación hay que instalar algunas dependencias:

#apt-get install libss-dev libglademm-2.4-dev automake1.7 libtool

Con las dependencias instaladas, ya podemos compilar minisip!

#cd /usr/src/minisip/libmutil
#./bootstrap
#./configure
#make
#make install

#cd /usr/src/minisip/libmnetutil
#./bootstrap
#./configure
#make
#make install

#cd /usr/src/minisip/libmikey
#./bootstrap
#./configure
#make
#make instal

#cd /usr/src/minisip/libmsip
#./bootstrap
#./configure
#make
#make install

Llegado este punto ya están compiladas todas las librerías, pero al compilar el programa principal se producen errores. Para evitarlos haremos lo siguiente:

Editamos el fichero /usr/src/minisip/minisip/mediahandler/Media.h y localizamos la siguiente línea:

std::list< MRef > Media::getAvailableCodecs();

y la sustituimos por esta otra:

std::list< MRef > getAvailableCodecs();

También buscamos esta otra línea:

MRef Media::createCodecInstance( uint8_t payloadType );

y la sustituimos por esta:

MRef createCodecInstance( uint8_t payloadType );

A continuación editamos el fichero /usr/src/minisip/minisip/aec/aec.h y localizamos la siguiente línea:

int AEC::doAEC(int d, int x);

y la sustituimos por esta:

int doAEC(int d, int x);

Una vez hemos arreglado los ficheros, ya podemos terminar de compilar minisip:

#cd /usr/src/minisip/minisip
#./bootstrap
#./configure --enable-debug --enable-color-terminal
#make
#make install

Ya esta!! Ya podemos ejecutar minisip haciendo:

#minisip

Si nos da un error de que no encuentra una librería hacemos:

#export LD_LIBRARY_PATH=/usr/local/lib

y después ejecutamos minisip. Voila!! 🙂

minisip1.jpg

PD: Si, son las 03:20 aprox y no lo he probado, pero he conseguido compilarlo y se ejecuta!! 🙂

4 thoughts on “Como compilar minisip (y no morir en el intento)

  1. Juasss. Yo hace unos meses que no lo toco, pero pasé por un calvario parecido :-DDDD Antes debían proporcionar hasta paquetes .deb, pero cuando yo llegué, me tuve que pegar con el trunk SVN a pelamen. Después de un montón de enlaces simbólicos para engañar a los makefiles, conseguí compilarlo »’:-)

    Gracias por esta guía, cuando retome el asunto me volveré a pasar por aquí 😉

  2. Hi Saghul,
    you done a good work with minisip. I’m using fedora core 7, and I followed your instructions: minisip compiles well but when i go execute it throws me the following error :

    Initializing NetUtil
    Creating SipSoftPhoneConfiguration
    init 1/9: Creating timeout provider
    init 2/9: Creating GUI
    Creating GTK GUI
    Minisip: gtk 1
    Minisip: gtk 2
    Setting contact db
    Thread 2 running – doing initParseConfig
    init 3/9: Parsing configuration file ()
    Config file version checked ok!
    terminate called after throwing an instance of ‘ConfBackendException’
    Aborted

    and minisip terminates. Could you tell me what’s happened here?

    thank you
    Larry

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *