diff --git a/src/modules/rtp_media_server/Makefile b/src/modules/rtp_media_server/Makefile index d2800c44e6a..490b7590dc9 100644 --- a/src/modules/rtp_media_server/Makefile +++ b/src/modules/rtp_media_server/Makefile @@ -6,7 +6,7 @@ DEFS+=-I$(LOCALBASE)/lib ORTPLIBS=-lortp BCUNITLIBS=-lbcunit -MS2LIBS=-lmediastreamer_voip -lmediastreamer_base +MS2LIBS=-lmediastreamer LIBS=$(ORTPLIBS) $(BCUNITLIBS) $(MS2LIBS) DEFS+=-DKAMAILIO_MOD_INTERFACE diff --git a/src/modules/rtp_media_server/doc/rtp_media_server_admin.xml b/src/modules/rtp_media_server/doc/rtp_media_server_admin.xml index 358c2658ab9..ea6bf2d11c1 100644 --- a/src/modules/rtp_media_server/doc/rtp_media_server_admin.xml +++ b/src/modules/rtp_media_server/doc/rtp_media_server_admin.xml @@ -28,6 +28,19 @@ +
+ Quick start, how-to build on debian +
+ Building on Debian, Dockerfile and docker image + + The module includes Dockerfile that can also be use as a reference on how to build everything + from source on Debian, the of libmediastreamer on Linux is usually outdated. + + A docker image is also available from dockerhub https://hub.docker.com/r/jchavanton/rtp_media_server + +
+
+
Dependencies
diff --git a/src/modules/rtp_media_server/docker/Dockerfile b/src/modules/rtp_media_server/docker/Dockerfile index 1b0cc763563..01213e96ca2 100644 --- a/src/modules/rtp_media_server/docker/Dockerfile +++ b/src/modules/rtp_media_server/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian +FROM debian:buster ENV DEB_PKG_CORES="libevent-dev libjansson-dev libpcre3 libpcre3-dev" @@ -10,10 +10,10 @@ ENV KAM_INC_MOD="uac debugger rtp_media_server usrloc registrar siputils" ENV KAM_SKIP_MOD="uid_domain diversion smsops mediaproxy rtpproxy mqueue topoh app_jsdt tsilo drouting kex acc stun usrloc p_usrloc dmq dmq_usrloc sipjson userblacklist path libtrie kex sipdump uid_uri_db msrp sst imc mohqueue nattraversal pike xhttp rtpengine sca pdt matrix auth_diameter keepalive seas carrierroute ss7ops pipelimit db_cluster secfilter mangler acc_diameter enum app_sqlang pdb mtree sms" ENV COMMIT_KAMAILIO=master -ENV COMMIT_BCUNIT=29c556fa8ac1ab21fba1291231ffa8dea43cf32a -ENV COMMIT_BCTOOLBOX=971953a9fa4058e9c8a40ca4a3fa12d832445255 -ENV COMMIT_ORTP=6e13ef49a55cdd19dae395c38cfff7ffa518a089 -ENV COMMIT_MEDIASTREAMER2=d935123fc497d19a24019c6e7ae4fe0c5f19d55a +ENV COMMIT_BCUNIT=origin/release/4.4 +ENV COMMIT_BCTOOLBOX=origin/release/4.4 +ENV COMMIT_ORTP=4.4.0 +ENV COMMIT_MEDIASTREAMER2=4.4.0 RUN echo "building Kamailio with RTP Media Server" \ && apt-get update && apt-get -y install ${DEB_PKG} ${DEB_PKG_TMP} \ @@ -28,12 +28,14 @@ RUN apt-get install -y automake autogen autoconf libtool pkg-config # && ./configure \ # && make && make install +RUN apt-get install -y cmake + RUN echo "building bcunit" \ && mkdir -p /git && cd /git \ && git clone https://github.com/BelledonneCommunications/bcunit.git \ && cd bcunit \ && git checkout ${COMMIT_BCUNIT} \ - && ./autogen.sh && ./configure \ + && cmake CMakeLists.txt \ && make && make install RUN echo "building bctoolbox" \ @@ -42,15 +44,17 @@ RUN echo "building bctoolbox" \ && git clone https://github.com/BelledonneCommunications/bctoolbox.git \ && cd bctoolbox \ && git checkout ${COMMIT_BCTOOLBOX} \ - && ./autogen.sh && ./configure \ + && cmake CMakeLists.txt \ && make && make install +RUN apt-get install -y libsrtp2-dev + RUN echo "building oRTP" \ && mkdir -p /git && cd /git \ && git clone https://github.com/BelledonneCommunications/ortp.git \ && cd ortp \ && git checkout ${COMMIT_ORTP} \ - && ./autogen.sh && ./configure \ + && cmake CMakeLists.txt \ && make && make install RUN echo "building mediastreamer2" \ @@ -59,7 +63,7 @@ RUN echo "building mediastreamer2" \ && git clone https://github.com/BelledonneCommunications/mediastreamer2.git \ && cd mediastreamer2 \ && git checkout ${COMMIT_MEDIASTREAMER2} \ - && ./autogen.sh && ./configure --disable-sound --disable-video --enable-tools=no --disable-tests \ + && cmake -DENABLE_SOUND=OFF -DENABLE_VIDEO=OFF -DENABLE_ZRTP=OFF CMakeLists.txt \ && make && make install \ && ldconfig @@ -68,9 +72,9 @@ RUN echo "download sample voice files" \ && wget http://www.voiptroubleshooter.com/open_speech/american/OSR_us_000_0010_8k.wav RUN echo "building Kamailio" \ - && mkdir -p /git && cd /git \ - && git clone https://github.com/kamailio/kamailio.git \ - && cd kamailio && git checkout ${COMMIT_KAMAILIO} \ - && make include_modules="${KAM_INC_MOD}" skip_modules="\$(mod_list_extra) \$(mod_list_db) ${KAM_SKIP_MOD}" cfg \ - && make install + && mkdir -p /git && cd /git \ + && git clone https://github.com/kamailio/kamailio.git \ + && cd kamailio && git checkout ${COMMIT_KAMAILIO} \ + && make include_modules="${KAM_INC_MOD}" skip_modules="\$(mod_list_extra) \$(mod_list_db) ${KAM_SKIP_MOD}" cfg \ + && make install diff --git a/src/modules/rtp_media_server/docker/build.sh b/src/modules/rtp_media_server/docker/build.sh index 669bb34bacc..d47df9c696c 100755 --- a/src/modules/rtp_media_server/docker/build.sh +++ b/src/modules/rtp_media_server/docker/build.sh @@ -1 +1,10 @@ docker build . -t rtp_media_server + +VERSION="0.2" +echo +echo "execute these commands to update the public docker image:" +echo +echo " docker tag rtp_media_server:latest jchavanton/rtp_media_server:latest" +echo " docker tag rtp_media_server:latest jchavanton/rtp_media_server:${VERSION}" +echo " docker push jchavanton/rtp_media_server:latest" +echo " docker push jchavanton/rtp_media_server:${VERSION}" diff --git a/src/modules/rtp_media_server/docker/entry.sh b/src/modules/rtp_media_server/docker/entry.sh new file mode 100755 index 00000000000..9d964772eb8 --- /dev/null +++ b/src/modules/rtp_media_server/docker/entry.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ "$1" = "" ]; then + CMD="kamailio -m 64 -D -dd -f /etc/kamailio.cfg" +else + CMD="$*" +fi + +echo "Running ${CMD}" +exec ${CMD} + diff --git a/src/modules/rtp_media_server/docker/rtp_media_server.sh b/src/modules/rtp_media_server/docker/rtp_media_server.sh index 8ef40cd0aa8..02b842ad253 100755 --- a/src/modules/rtp_media_server/docker/rtp_media_server.sh +++ b/src/modules/rtp_media_server/docker/rtp_media_server.sh @@ -6,6 +6,10 @@ docker stop ${CONTAINER} docker rm ${CONTAINER} docker run -d --net=host --name=${CONTAINER} ${IMAGE} /bin/sh -c "tail -f /dev/null" - -echo "docker exec -it rtp_media_server -c kamailio -m 64 -D -dd -f /etc/kamailio.cfg" - +echo "" +echo "manual steps required to start Kamailio in the container:" +echo " cp git/kamailio/src/modules/rtp_media_server/config_example/kamailio.cfg /etc" +echo " set the listen IP in /etc/kamailio.cfg" +echo " docker exec -it rtp_media_server bash" +echo " kamailio -m 64 -D -dd -f /etc/kamailio.cfg" +echo ""