[SR-Users] C++ module

Daniel-Constantin Mierla miconda at gmail.com
Thu Jan 12 11:56:24 CET 2017


Oh, incomplete typing: it was supposed to be: (to add your module)

Can you paste here the content of the Makefile in your internal library?

Cheers,
Daniel

On 12/01/2017 11:52, Patrick wrote:
> I use a slightly modified version of ....pkg/kamailio/rpm/kamailio.spec
>
> By "mode" if you mean in the compile flag -DRTC_COMMON_TRACE, I update
> DEFS in each module that uses it the internal library
> DEFS+=-DKAMAILIO_MOD_INTERFACE *-DRTC_COMMON_TRACE*
>
> ​If you were instead asking about including the module,m then yes - I
> added that to the rpm spec:
> %{_libdir}/kamailio/modules/db_arl.so​
>
>
> On Thu, Jan 12, 2017 at 5:32 AM, Daniel-Constantin Mierla
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     do you have your own rpm specs, or do you use an updated version
>     (to add your mode) of some spec in kamailio repository?
>
>     Cheers,
>     Daniel
>
>
>     On 11/01/2017 16:24, Patrick wrote:
>>     Hi Daniel, Thanks for the help
>>
>>     Sort of. 
>>     The internal library seems to be compiled and linked each my
>>     module is compiled - this happens 2x, for %build and for %install
>>     of the RPM
>>     This doesn't seem to be a problem when the %build stage is executed:
>>
>>
>>     Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.EOkbPI
>>     ...
>>     + make all quiet=verbose 'skip_modules=mysql jabber cpl-c
>>     avp_radius auth_radius group_radius uri_radius pa postgres osp
>>     tlsops unixodbc dbtext' cfg-target=//etc/kamailio/ 
>>     ...
>>     gcc -fPIC -DPIC -g -funroll-loops -Wcast-align -m64
>>     -minline-all-stringops -falign-loops -ftree-vectorize
>>     -fno-strict-overflow -mtune=opteron -Wall    -DNAME='"kamailio"'
>>     -DVERSION='"4.2.4"' -DARCH='"x86_64"' -DOS='linux_'
>>     -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' -D__CPU_x86_64
>>     -D__OS_linux -DSER_VER=4002004
>>     -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM
>>     -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
>>     -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER
>>     -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC
>>     -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS
>>     -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT
>>     -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024
>>     -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
>>     -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL
>>     -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
>>     -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT
>>     -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT
>>      -DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE
>>     -DMOD_NAME='"db_arl"' -c db_arl_mod.c -o db_arl_mod.o -MMD -MP
>>     Makefile.defs defs skipped
>>     make[2]: `libsrdb2.so.1.0' is up to date.
>>     Makefile.defs defs skipped
>>     make[2]: `libsrdb1.so.1.0' is up to date.
>>     Makefile.defs defs skipped
>>     make[2]: `librtctrace.so.1.0' is up to date.
>>     COL_LOCAL_BUILDS_ROOT=/home/pshea/_localbuilds/
>>     Compiling db_arl_base.cpp
>>     g++ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64
>>     -minline-all-stringops -falign-loops -ftree-vectorize
>>     -fno-strict-overflow -mtune=opteron -Wall -Wno-write-strings
>>     -Wno-deprecated -Wno-unused-function -Wno-sign-compare
>>     -Wno-strict-aliasing  -I
>>     /home/pshea/_localbuilds//ExternalLibs/boost/V1.60.0_27/ -I
>>     ./jsoncpp-dist/ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64
>>     -minline-all-stringops -falign-loops -ftree-vectorize
>>     -fno-strict-overflow -mtune=opteron -Wall  -DNAME='"kamailio"'
>>     -DVERSION='"4.2.4"' -DARCH='"x86_64"' -DOS='linux_'
>>     -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' -D__CPU_x86_64
>>     -D__OS_linux -DSER_VER=4002004
>>     -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM
>>     -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
>>     -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER
>>     -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC
>>     -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS
>>     -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT
>>     -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024
>>     -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
>>     -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL
>>     -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
>>     -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT
>>     -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT
>>      -DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE
>>     -DMOD_NAME='"db_arl"' -c db_arl_base.cpp -o db_arl_base.o
>>     db_arl_base.cpp: In function 'std::string convert_value(int,
>>     const db_val_t*)':
>>     db_arl_base.cpp:789: warning: enumeration value 'DB1_UNKNOWN' not
>>     handled in switch
>>     COL_LOCAL_BUILDS_ROOT=/home/pshea/_localbuilds/
>>     Compiling jsoncpp-dist/jsoncpp.cpp
>>     g++ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64
>>     -minline-all-stringops -falign-loops -ftree-vectorize
>>     -fno-strict-overflow -mtune=opteron -Wall -Wno-write-strings
>>     -Wno-deprecated -Wno-unused-function -Wno-sign-compare
>>     -Wno-strict-aliasing  -I
>>     /home/pshea/_localbuilds//ExternalLibs/boost/V1.60.0_27/ -I
>>     ./jsoncpp-dist/ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64
>>     -minline-all-stringops -falign-loops -ftree-vectorize
>>     -fno-strict-overflow -mtune=opteron -Wall  -DNAME='"kamailio"'
>>     -DVERSION='"4.2.4"' -DARCH='"x86_64"' -DOS='linux_'
>>     -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' -D__CPU_x86_64
>>     -D__OS_linux -DSER_VER=4002004
>>     -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM
>>     -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
>>     -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER
>>     -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC
>>     -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS
>>     -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT
>>     -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024
>>     -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
>>     -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL
>>     -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
>>     -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT
>>     -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT
>>      -DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE
>>     -DMOD_NAME='"db_arl"' -c jsoncpp-dist/jsoncpp.cpp -o jsoncpp.o
>>     g++ -shared  -m64 -Wl,-O2 -Wl,-E    db_arl_mod.o  db_arl_base.o
>>     jsoncpp.o -lcurl -pthread  -L../../lib/srdb2/ -lsrdb2
>>      -L../../lib/srdb1/ -lsrdb1 * -L../../lib/rtctrace/ -lrtctrace*
>>     -Wl,-rpath,/tmp/kamailio/BUILD/kamailio-4.2.4/lib/srdb2
>>     -Wl,-rpath,/tmp/kamailio/BUILD/kamailio-4.2.4/lib/srdb1
>>     -Wl,-rpath,/tmp/kamailio/BUILD/kamailio-4.2.4/lib/rtctrace -o
>>     db_arl.so
>>
>>
>>
>>
>>     However, during the %install stage - this does seem to cause a
>>     problem. 
>>     There are different options passed to make, in this case, and I
>>     am trying to figure out how this causes a problem.
>>     In this case, you'll see that the internal library is NOT "up to
>>     date" so make attempts to *rebuild*it. In the link line, you'll
>>     see the objects from the LIBS in my custom module.
>>
>>
>>     Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.AkEuuP
>>     ...
>>     + make install quiet=verbose 'skip_modules=mysql jabber cpl-c
>>     avp_radius auth_radius group_radius uri_radius pa postgres osp
>>     tlsops unixodbc dbtext'
>>     *basedir=/tmp/kamailio/BUILDROOT/kamailio-4.2.4-0.x86_64
>>     prefix=/usr
>>     cfg-prefix=/tmp/kamailio/BUILDROOT/kamailio-4.2.4-0.x86_64*cfg-target=//etc/kamailio/
>>     ...
>>     Makefile.defs defs skipped
>>     make[2]: `libsrdb2.so.1.0' is up to date.
>>     Makefile.defs defs skipped
>>     make[2]: `libsrdb1.so.1.0' is up to date.
>>     Makefile.defs defs skipped
>>     Makefile.defs defs skipped
>>     */opt/rh/devtoolset-4/root/usr/bin/g++ -fPIC -DPIC -g
>>     -funroll-loops -Wcast-align -m64 -minline-all-stringops
>>     -falign-loops -ftree-vectorize -fno-strict-overflow
>>     -mtune=opteron -Wall  
>>     -I/home/pshea/_localbuilds//RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include
>>       -DNAME='"kamailio"' -DVERSION='"4.2.4"' -DARCH='"x86_64"'
>>     -DOS='linux_' -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"'
>>     -D__CPU_x86_64 -D__OS_linux -DSER_VER=4002004
>>     -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM
>>     -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
>>     -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER
>>     -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC
>>     -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS
>>     -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT
>>     -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024
>>     -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
>>     -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL
>>     -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
>>     -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT
>>     -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT  -std=c++0x
>>     -I/home/pshea/_localbuilds//RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include
>>     -c rtctrace.c -o rtctrace.o -MMD -MP*
>>     *
>>     *
>>     */opt/rh/devtoolset-4/root/usr/bin/g++ -shared  -m64 -Wl,-O2
>>     -Wl,-E    -Wl,-soname,librtctrace.so.1 rtctrace.o  db_arl_base.o
>>     jsoncpp.o -lcurl -pthread
>>     -L/home/pshea/_localbuilds//RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/lib
>>     -lrtccommon
>>     -L/home/pshea/_localbuilds//ExternalLibs/boost/V1.60.0_22/Server_Linux26_x64_dts4_pic/lib
>>     -lboost_system -lboost_thread -lpthread   -o librtctrace.so.1.0*
>>     *g++: error: db_arl_base.o: No such file or directory*
>>     *g++: error: jsoncpp.o: No such file or directory*
>>     make[2]: *** [librtctrace.so.1.0] Error 1
>>     make[1]: *** [../../lib/rtctrace/librtctrace.so] Error 2
>>     make: *** [install-modules] Error 1
>>     error: Bad exit status from /var/tmp/rpm-tmp.AkEuuP (%install)
>>
>>
>>
>>     On Wed, Jan 11, 2017 at 8:36 AM, Daniel-Constantin Mierla
>>     <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>
>>         Hello,
>>
>>         to be sure I understand properly the issue: you say that the
>>         value of the LIBS from Makefile of the module is inherited
>>         when compiling the internal library?
>>
>>         Cheers,
>>         Daniel
>>
>>
>>         On 11/01/2017 04:21, Patrick wrote:
>>>         I added a C++ module to kamalio at some point, and now I am
>>>         trying to integrate that module with another C++ internal
>>>         library, but I'm getting all sorts of headaches when trying
>>>         to compile. 
>>>
>>>         The latest problem is during the "make install" part of the
>>>         build - it seems like the objects from the module are
>>>         "infecting" the link line of the internal library it's
>>>         dependent on.
>>>
>>>         Here is the Makefile for the module. At the time, the only
>>>         way I figured to link in the C++ object was adding them to
>>>         the LIBS. Now, i think this interferes with the 'make
>>>         install' dependencies.
>>>
>>>         Any thoughs on how to do this properly would be great!
>>>
>>>         Thanks
>>>
>>>
>>>         *_Module Makefile_*
>>>
>>>         #
>>>         # db_cassandra module makefile
>>>         #
>>>         #
>>>         # WARNING: do not run this directly, it should be run by the
>>>         master Makefile
>>>
>>>         include ../../Makefile.defs
>>>
>>>         CXX=g++
>>>         LD=g++
>>>         auto_gen=
>>>         NAME=db_arl.so
>>>
>>>         ifeq ($(CROSS_COMPILE),)
>>>         CURL_BUILDER=$(shell \
>>>         if pkg-config --exists libcurl; then \
>>>         echo 'pkg-config libcurl'; \
>>>         else \
>>>         which curl-config; \
>>>         fi)
>>>         endif
>>>
>>>         DEFS+=-DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE
>>>         *LIBS += db_arl_base.o jsoncpp.o*-lcurl -pthread
>>>
>>>         CXXFLAGS=$(CFLAGS:-Wno-deprecated option=)
>>>         CXXFLAGS+= -Wno-write-strings -Wno-deprecated
>>>         -Wno-unused-function -Wno-sign-compare -Wno-strict-aliasing 
>>>         CXXFLAGS+= -I
>>>         ${COL_LOCAL_BUILDS_ROOT}/ExternalLibs/boost/V1.60.0_27/
>>>         CXXFLAGS+= -I ./jsoncpp-dist/
>>>
>>>         SERLIBPATH=../../lib
>>>         SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2
>>>         SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1
>>>         *SER_LIBS+=$(SERLIBPATH)/rtctrace/rtctrace*
>>>
>>>         include ../../Makefile.modules
>>>
>>>         jsoncpp.o: jsoncpp-dist/jsoncpp.cpp
>>>         @echo COL_LOCAL_BUILDS_ROOT=${COL_LOCAL_BUILDS_ROOT}
>>>         @echo "Compiling $<"
>>>         $(CXX) $(CXXFLAGS) $(CFLAGS) $(C_DEFS) $(DEFS) -c $< -o $@
>>>
>>>         db_arl_base.o: db_arl_base.cpp db_arl_base.h
>>>         @echo COL_LOCAL_BUILDS_ROOT=${COL_LOCAL_BUILDS_ROOT}
>>>         @echo "Compiling $<"
>>>         $(CXX) $(CXXFLAGS) $(CFLAGS) $(C_DEFS) $(DEFS) -c $< -o $@
>>>
>>>         db_arl.so: db_arl_base.o jsoncpp.o
>>>
>>>
>>>         During 'make install' the objects in *red*have no business
>>>         in the link line for the internal library
>>>         /opt/rh/devtoolset-4/root/usr/bin/g++ -fPIC -DPIC -g
>>>         -funroll-loops -Wcast-align -m64 -minline-all-stringops
>>>         -falign-loops -ftree-vectorize -fno-strict-overflow
>>>         -mtune=opteron -Wall  
>>>         -I/home/pshea/_localbuilds/RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include
>>>           -DNAME='"kamailio"' -DVERSION='"4.2.4"' -DARCH='"x86_64"'
>>>         -DOS='linux_' -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"'
>>>         -D__CPU_x86_64 -D__OS_linux -DSER_VER=4002004
>>>         -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC
>>>         -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP
>>>         -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DUSE_DNS_CACHE
>>>         -DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST -DUSE_NAPTR
>>>         -DWITH_XAVP -DF_MALLOC -DDBG_F_MALLOC -DMEM_JOIN_FREE
>>>         -DUSE_TLS -DTLS_HOOKS -DUSE_CORE_STATS -DSTATISTICS
>>>         -DMALLOC_STATS -DWITH_AS_SUPPORT -DFAST_LOCK -DADAPTIVE_WAIT
>>>         -DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM
>>>         -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD
>>>         -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL
>>>         -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
>>>         -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT
>>>         -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT
>>>          -std=c++0x
>>>         -I/home/pshea/_localbuilds/RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include
>>>         -c rtctrace.c -o rtctrace.o -MMD -MP
>>>         /opt/rh/devtoolset-4/root/usr/bin/g++ -shared  -m64 -Wl,-O2
>>>         -Wl,-E    -Wl,-soname,librtctrace.so.1 rtctrace.o
>>>         * db_arl_base.o jsoncpp.o*-lcurl -pthread
>>>         -L/home/pshea/_localbuilds/RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/lib
>>>         -lrtccommon
>>>         -L/home/pshea/_localbuilds/ExternalLibs/boost/V1.60.0_22/Server_Linux26_x64_dts4_pic/lib
>>>         -lboost_system -lboost_thread -lpthread   -o librtctrace.so.1.0
>>>         *g++: error: db_arl_base.o: No such file or directory*
>>>         *g++: error: jsoncpp.o: No such file or directory*
>>>
>>>
>>>
>>>         _______________________________________________
>>>         SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>         sr-users at lists.sip-router.org
>>>         <mailto:sr-users at lists.sip-router.org>
>>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>         <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>
>>
>>         -- 
>>         Daniel-Constantin Mierla
>>         www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>         Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com <http://www.kamailioworld.com>
>>
>>         _______________________________________________ SIP Express
>>         Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>         sr-users at lists.sip-router.org
>>         <mailto:sr-users at lists.sip-router.org>
>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>         <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users> 
>>
>     -- 
>     Daniel-Constantin Mierla
>     www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>     Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com <http://www.kamailioworld.com>
>
-- 
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20170112/3084d4ac/attachment.html>


More information about the sr-users mailing list