Compile on ubuntu

tanguy
2008-06-24
2013-04-25
  • tanguy
    tanguy
    2008-06-24

    Hello,

    I'm on ubuntu ( 8.04 )
    I've compile kiax last week
    with some modification

    kiax2core.pro
    -------------
    linux-g++ -> unix
    LIBSDIR += ./libs-linux -> /usr/local/lib

    gui.pro
    ---------
    linux-g++ -> unix
    LIBSDIR += $$CORELIBDIR/libs-linux -> /usr/local/lib

    Change in Kiax2MainWindow.h
    ----------------------------
    kiax2Application.h par Kiax2Application.h

    and i've an kiax phone

    but i've update with svn today
    and it's compiling but at the launch of gui
    i've have this message now
    ./gui: symbol lookup error: ./gui: undefined symbol: _ZN6Logger4initEi

    if you have some idea

    PS : i was interesting to make some improvements
    ( like connection with other base - for exemple define a data access and SQL expression to get number )
    Transfer button ...
    Display occupation of other phone

    Tanguy

     
    • tanguy
      tanguy
      2008-06-24

      Sorry,

      i've found the error
      just forget to copy librarie kiax in /usr/local:lib

      Shame on me :) :)

       
    • Emo
      Emo
      2008-06-24

      Yes, you need to change libs paths to the destination preferred by your distro. Logger implementation now includes an init() method which was missing in your compiled kiax2core, so you needed to recompile kiax2core again.

      Thanks for noting the caps K, fixed.

      Cheers,
      Emil

       
      • tanguy
        tanguy
        2008-06-24

        Thanks for answer i've found ( strange my message is post before your's and it's appear after )

        How can i proceed to develop some functionnality

        for example I need to implement transfer button quickly to use really kiax

        if i made some change and send you only the change it's ok for you ?

        ( put a button on the ui - and make the transfer function in this case )

         
        • Emo
          Emo
          2008-06-24

          Hi,

          Iaxclient supports blind transfer, which will be integrated in next version (2.1), together with indicators for levels of input and output, i18n, etc. I guess an option would be to put a button in the call window and on press to prompt for extension.

          Are you familiar with QT4?

          If you send some code as diff against some release in the SVN i would do the necessary to integrate it asap in the rest of the code. Thanks.

          Cheers,
          Emil

           
        • tanguy
          tanguy
          2008-06-24

          Yes with QT 4 it's ok

          but not familiar with iaxclient library

          I want to append three main functions
          ( in my order of priority :) )
          Attended Transfer or blind transfer
          Data source more flexible to interface  with any source of database phone
          possibilty to create a record of the call with a note

          you say you're working on transfer
          So i can concentrate effort on other things

          If you need help on other things tell me

          Tanguy

           
          • Emo
            Emo
            2008-06-25

            If you want to add a data source different than SQLite (what kiax is using as storage back-end) then just take a look at the implementation of the StorageService.cpp in kiax2core. You can create your own binding to whatever database you want. The idea of the kiax2core was to enable this kind of bindings and selectively fetch data from different data sources - currently only SQLite being the only one. I would really appreciate comments on the needed changes or whatever might facilitate better integration of other data sources, because the current state of kiax2core is the "minimalistic but functional".

            If I understood correctly, you would like to enable additional "note" field to the CDR. Or does "record of the call" mean audio record (eg .wav or .mp3 or .ogg)?

            Regards,
            Emil

             
    • Karl Lui
      Karl Lui
      2008-10-18

      Hi,
      I'm running ubuntu 8.0.4 as well. Could you please let me know the command line to compile kiax2?

      Thank you very much.
      Karl

       
      • Emo
        Emo
        2008-10-18

        Hi,

        In the upcoming week I will create a short howto for compilation of Kiax on Linux and Windows, together with the missing but promised libraries pack. I just haven't had the time to create these the last few weeks since we released 2.0. Basically first you need to compile "kiax2core" by running

        qmake
        make

        and then the same for the "gui" subdirectory. Both kiax2core and gui are subdirectories in the trunk.

        You will need to have all dependencies precompiled though. Either you will need to install them in binary form (from repositories) and change the .pro files, or you need compile them on your machine and place them in the directories pointed by the .pro files.

        Cheers,
        Emil

         
        • Ashutosh Kumar
          Ashutosh Kumar
          2008-10-18

          Hi Emil,
          >>Either you will need to install them in binary form (from repositories)

          Have you palce the binary dependencies for windows on the server ? i am unable to locate them. Please help.

          Best regards,
          ashutosh

           
    • Karl Lui
      Karl Lui
      2008-10-18

      Thank you Emil,
      That will be very helpful. Look forward to your Howtos.

      I got problems running Zoiper and xlite on Linux. But Kiax2 works fine on my Ubuntu 8.0.4.

      Thank you again.

      Karl

       
  • Pavel M
    Pavel M
    2012-05-20

    Hi, When compiling the kiax from source codes under Ubuntu, I get next errors: ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `iaxc_is_camera_working': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1778: undefined reference to `vidcap_src_list_update' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `iaxc_YUV420_to_RGB32': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1767: undefined reference to `vidcap_i420_to_rgb32' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `video_destroy': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1736: undefined reference to `vidcap_src_release' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1738: undefined reference to `vidcap_destroy' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1733: undefined reference to `vidcap_src_capture_stop' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `ensure_acquired': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:967: undefined reference to `vidcap_src_acquire' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `prepare_for_capture': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:838: undefined reference to `vidcap_format_bind' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:902: undefined reference to `vidcap_i420_to_rgb32' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:934: undefined reference to `vidcap_fourcc_string_get' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:917: undefined reference to `vidcap_yuy2_to_i420' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:918: undefined reference to `vidcap_yuy2_to_rgb32' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:885: undefined reference to `vidcap_rgb32_to_i420' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `iaxc_video_device_set': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1545: undefined reference to `vidcap_src_capture_stop' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1550: undefined reference to `vidcap_src_release' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1573: undefined reference to `vidcap_src_capture_start' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `iaxc_set_video_prefs': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1058: undefined reference to `vidcap_src_capture_start' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1021: undefined reference to `vidcap_src_capture_stop' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1026: undefined reference to `vidcap_src_release' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `iaxc_video_devices_get': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1384: undefined reference to `vidcap_src_list_update' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1413: undefined reference to `vidcap_src_list_get' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `video_recv_video': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1352: undefined reference to `vidcap_i420_to_rgb32' ../kiax2core/static-libs-linux/libiaxclient.a(video.o): In function `video_initialize': /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1602: undefined reference to `vidcap_initialize' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1608: undefined reference to `vidcap_sapi_acquire' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1614: undefined reference to `vidcap_sapi_info_get' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1624: undefined reference to `vidcap_src_list_update' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1651: undefined reference to `vidcap_src_list_get' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1682: undefined reference to `vidcap_srcs_notify' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1709: undefined reference to `vidcap_sapi_release' /home/paul01/Desktop/freelancer_projects/TrafficSignal/IAXclientLatest/iaxclient/trunk/lib/video.c:1712: undefined reference to `vidcap_destroy' ../kiax2core/static-libs-linux/libldns.a(keys.o): In function `ldns_key_EVP_load_gost_id': /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:130: undefined reference to `EVP_PKEY_asn1_find_str' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:165: undefined reference to `EVP_PKEY_asn1_get0_info' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:154: undefined reference to `EVP_PKEY_asn1_find_str' ../kiax2core/static-libs-linux/libldns.a(keys.o): In function `ldns_gen_gost_key': /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:784: undefined reference to `EVP_PKEY_CTX_new_id' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:789: undefined reference to `EVP_PKEY_CTX_ctrl_str' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:795: undefined reference to `EVP_PKEY_keygen_init' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:799: undefined reference to `EVP_PKEY_keygen' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:804: undefined reference to `EVP_PKEY_CTX_free' /home/paul01/Desktop/freelancer_projects/TrafficSignal/ldns-1.6.12/./keys.c:801: undefined reference to `EVP_PKEY_CTX_free'

    my project file:

    template = app
    CONFIG += qt
    CORELIBDIR = ../kiax2core
    INCLUDEPATH += $$CORELIBDIR $$CORELIBDIR/includes $$CORELIBDIR/includes/json $$CORELIBDIR/dottelutils
    # set USEWEBKIT to true if you want to link to webkit shared library
    USEWEBKIT = false
    win32 {
    LIBSDIR += $$CORELIBDIR/libs-windows
    LIBS += $$LIBSDIR/iaxclient.dll $$LIBSDIR/sqlite3.dll $$CORELIBDIR/release/libkiax2core.a $$LIBSDIR/libjson.a $$LIBSDIR/libcurl-4.dll -leay32 -lssleay32
    DEFINES += WIN32DEP
    }
    linux-g++ {
    # Uncomment if you want dynamic linking
    # LIBSDIR += $$CORELIBDIR/libs-linux
    # LIBS += -L/usr/lib -L/usr/local/lib -L$$CORELIBDIR -liaxclient -lkiax2core -ljson -lspeexdsp -lspeex -lportaudio -lgsm -lsqlite3 -lasound 
    LIBSDIR += $$CORELIBDIR/static-libs-linux
    LIBS += $$LIBSDIR/libiaxclient.a $$CORELIBDIR/libkiax2core.a $$LIBSDIR/libjson.a $$LIBSDIR/libspeexdsp.a $$LIBSDIR/libspeex.a $$LIBSDIR/libportaudio.a $$LIBSDIR/libgsm.a $$LIBSDIR/libsqlite3.a -lcurl /usr/lib/libasound.so.2 
    # Uncomment if you want dynamic linking
    # LIBS += $$LIBSDIR/libiaxclient.so.1.0.2 $$LIBSDIR/libsqlite3.so.0.8.6 $$CORELIBDIR/libkiax2core.so.1.0.0 $$LIBSDIR/libjson.a $$LIBSDIR/libspeexdsp.so.1.4.0 $$LIBSDIR/libspeex.so.1.4.0
    DEFINES += LINUXDEP
    }
    LIBS += -L/usr/local/lib \
            -ljson
    #DEPENDPATH = .
    #include path:
    INCLUDEPATH = . \
        /usr/local/include/libjson \
        /usr/local/include/libjson/Source \
        /usr/local/include/vidcap \
        /usr/local/include/ldns \
        /usr/local/include/speex \
        /usr/local/include/curl \
        ../kiax2core \
        ../kiax2core/dottelutils \
        ../kiax2core/includes \
        ../kiax2core/includes/json
    macx {
    LIBSDIR += $$CORELIBDIR/libs-macx
    LIBS += $$LIBSDIR/libiaxclient.dylib $$LIBSDIR/libsqlite3.dylib $$CORELIBDIR/libkiax2core.dylib $$LIBSDIR/libjson.a -lcurl
    DEFINES += MACXDEP
    ICON = macosicons.icns
    }
    KIAXOPT += dottel
    contains( KIAXOPT, dottel ): {
        message("Enabling dottel support..")
        DEFINES += USE_DOTTEL
        HEADERS +=  Kiax2DotTelDialog.h \
                ../kiax2core/dottelutils/dottelutils.h \
                ../kiax2core/dottelutils/CppDotTelutils.h
        SOURCES +=  Kiax2DotTelDialog.cpp
        FORMS += dotteldialog.ui
    #   INCLUDEPATH += voip/ldns-1.4.0
        linux-g++ {
            LIBS += $$LIBSDIR/libldns.a -lcrypto
        }
        win32 {
            LIBS += $$LIBSDIR/libldns.a -lwsock32 -liphlpapi
        }
    }
    # comment if you don't have hold() in your iaxclient
    # DEFINES += IAXCLIENT_HOLD_HACK
    QT += network
    contains( KIAXOPT, webforms ): {
        message("Using Webforms + WebKit..")
        QT += webkit
        DEFINES += USE_WEBFORMS
        HEADERS +=  Kiax2ChangePassDialog.cpp \
                    Kiax2RegisterDialog.h
        SOURCES +=  Kiax2ChangePassDialog.cpp \
                    Kiax2RegisterDialog.cpp
    }
    contains( KIAXOPT, webfeed ): {
        message("Using Webfeed +  WebKit..")
        QT += webkit
        DEFINES += USE_WEBFEED
    }
    FORMS += kiax2windowAlt.ui \
                accountdialog.ui \
                aboutdialog.ui \
                calldialog.ui \
                contactdialog.ui \
                contactlistitemwidget.ui \
                settingsdialog.ui \
                registerdialog.ui \
                loginscreen.ui
    
    HEADERS += Kiax2MainWindow.h \
                            Kiax2AboutDialog.h \
                            Kiax2AccountDialog.h \
                            Kiax2CallDialog.h \
                            Kiax2ContactDialog.h \
                            Kiax2ListWidgetItem.h \
                            Kiax2ContactListItemWidget.h \
                            Kiax2SettingsDialog.h \
                            IAX2CallbackHandlerQt.h \
                            Kiax2ConnectionMeter.h \
                            Kiax2JSONBalance.h \
                            Kiax2LoginScreen.h \
                            Kiax2Application.h \
                            Kiax2JSONUsersOnline.h \
                            kiax2JSONNotification.h \
                            Kiax2JSONServers.h \
                            Kiax2DispatcherServer.h \
                            Kiax2DispatcherThread.h \
                            Kiax2Servers.h \
                            Kiax2JSONSupernode.h \
                            Kiax2CallAppearance.h \
                            Kiax2CallDialogView.h \
                            Kiax2CallButton.h  \
                            ../kiax2core/PConfiguration.h
    
    SOURCES += Kiax2MainWindow.cpp \
                Kiax2AboutDialog.cpp \
                Kiax2AccountDialog.cpp \
                Kiax2CallDialog.cpp \
                Kiax2ContactDialog.cpp \
                Kiax2ListWidgetItem.cpp \
                Kiax2ContactListItemWidget.cpp \
                Kiax2SettingsDialog.cpp \
                IAX2CallbackHandlerQt.cpp \
                Kiax2ConnectionMeter.cpp \
                Kiax2JSONBalance.cpp \
                Kiax2LoginScreen.cpp \
                Kiax2Application.cpp \
                Kiax2JSONUsersOnline.cpp \
                Kiax2JSONNotification.cpp \
                Kiax2JSONServers.cpp \
                Kiax2DispatcherServer.cpp \
                Kiax2DispatcherThread.cpp \
                Kiax2Servers.cpp \
                Kiax2JSONSupernode.cpp \
                Kiax2CallAppearance.cpp \
                Kiax2CallDialogView.cpp \
                Kiax2CallButton.cpp
    RC_FILE = kiax2.rc
    TRANSLATIONS = kiax2_fr.ts \
                   kiax2_de.ts \
                   kiax2_es.ts
    
    build_all:!build_pass {
        CONFIG -= build_all
        CONFIG += release windows
    }
    # install
    target.path = .
    sources.files = $$SOURCES $$HEADERS $$FORMS *.pro 
    sources.path = .
    INSTALLS += target
    

    Why such ? I use static linking, all the 3rd party libraries were previously compiled and succ. installed and .a files putted to static-libs-linux directory Does anybody know what is the problem ? Thanks in advance.