lib/README
18e13af8
 Standalone libraries:
 ---------------------
 
 binrpc - A library that provides common interface for different communication
          methods (UNIX sockets, TCP, UDP) using binary RPC as a transport form 
          of data. The interface is documented directly in binrpc_api.h file and 
          can by generated into HTML form by using Doxygen. There is no 
          difference between compilation "with" or "without" SER (see compilation
          section below).
 
1c24f8eb
 Libraries common to modules:
 ---------------------------
 
 cds - Common Data Structures (basic string operations, dynamic string,
       vector, message queue, ...)
 
 presence - Library holding common structures and functions abaut presence
            (API for internal subscriptions, common presence structures,
            common presence data formats)
            requires internal libraries: cds
 
 xcap - Common XCAP operations and structures (XCAP authorization documents
        and XCAP resource lists processing)
a30fa200
        requires external libraries: libxml2, libcurl3 (nonSER version)
1c24f8eb
        requires internal libraries: cds
 
e01a4580
 shm_regex - Wrapper functions for regcomp, regexec, regfree and regerror
 	    using shared memory. See 'man regex' for details.
 
1c24f8eb
 Used by modules: pa, rls, dialog, rpa
 
99d1967f
 trie - Common digit trie implementation for prefix matching, used by
        carrierroute and userblacklist
 
b4189892
 Used by IMS modules: icscf, usrloc_scscf, usrloc_pcscf, registrar_scscf, registrar_pcscf
 
 ims - IMS extensions helpers. Generally just getters.
 
2360deed
 Usage:
 -----
 
e01a4580
 All libraries except shm_regex can be compiled "with ser" or "without ser".
 Compilation without ser may be useful for debugging purposes or for example for 
2360deed
 searching for memory leaks with some tool like valgrind.
e01a4580
 shm_regex library can be compiled only with ser.
2360deed
 
 Compilation with ser:
 --------------------
 
 Compilation and installation of these libraries is NOT DONE by running
b73a8d9a
 main Kamailio makefile now - it MUST be done MANUALLY. To compile and install
e01a4580
 libraries simply run
2360deed
 
e01a4580
    make install
2360deed
 
 in lib directory. You can select destination directory like in the case
 of ser, for example:
 
e01a4580
    make install prefix="/my/ser/directory"
2360deed
    
 AFTER COMPILATION of libraries you can COMPILE MODULES using this 
 libraries like PA, RLS or dialog.
 
 
b73a8d9a
 Running with Kamailio (Linux):
2360deed
 ----------------
 
 The path to installed libraries must be known to linker on startup. This
b73a8d9a
 can be done by setting variable LD_LIBRARY_PATH before running Kamailio. For
2360deed
 example, if libraries were installed to default directory (/usr/local),
b73a8d9a
 you should set LD_LIBRARY_PATH=/usr/local/lib/kamailio. In the case of 
2360deed
 nonstandard installation, you can use something like 
b73a8d9a
 LD_LIBRARY_PATH=/my/ser/directory/lib/kamailio.
2360deed
 
e01a4580
 Compilation without ser:
 --------------------
 Use the alternate makefile, Makefile.noser:
 
    make -f Makefile.noser install
 
54814b09
 Documentation
 -------------
 Documentation for all libraries is (or will be) in 
 docbook-XML format and it is stored in doc directory (for example cds/doc 
 contains documentation for Common Data Structures library).
 
 Documentation can be translated into HTML using a XSLT processor
 which is able to work with "include" directives.
 For example
    xmlto html cds/doc/cds.xml
 will create HTML documentation for CDS library in current directory.