Jelajahi Sumber

rtp_media_server: update to mediastreamer 4.4.0

update documentation to simplify usage using docker

(cherry picked from commit 32350bcb48757f2431fe463167a2816a702a8cb7)
Julien Chavanton 5 tahun lalu
induk
melakukan
7885322c2a

+ 1 - 1
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

+ 13 - 0
src/modules/rtp_media_server/doc/rtp_media_server_admin.xml

@@ -28,6 +28,19 @@
 	</para>
 </section>
 
+<section>
+	<title>Quick start, how-to build on debian</title>
+	<section>
+		<title>Building on Debian, Dockerfile and docker image</title>
+		<para>
+		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
+		</para>
+	</section>
+</section>
+
 <section>
 	<title>Dependencies</title>
 	<section>

+ 18 - 14
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
 

+ 9 - 0
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}"

+ 11 - 0
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}
+

+ 7 - 3
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 ""