Forráskód Böngészése

pjsua container added for sip tests

Hal De 4 éve
szülő
commit
6f7d6a96be
7 módosított fájl, 193 hozzáadás és 0 törlés
  1. 1 0
      pjsua/.dockerignore
  2. 19 0
      pjsua/Dockerfile
  3. 50 0
      pjsua/auto-answer
  4. 56 0
      pjsua/dial
  5. 3 0
      pjsua/docker-entrypoint.sh
  6. 15 0
      pjsua/help
  7. 49 0
      pjsua/register

+ 1 - 0
pjsua/.dockerignore

@@ -0,0 +1 @@
+Dockerfile

+ 19 - 0
pjsua/Dockerfile

@@ -0,0 +1,19 @@
+FROM alpine:latest
+
+ENV ENV="/etc/profile"
+ENV WORKDIR /app
+WORKDIR ${WORKDIR}
+
+RUN apk add --update --no-cache \
+      pjsua \
+ && echo "export PATH=\"${WORKDIR}:${PATH}\"" > /etc/profile.d/pjsua-path.sh \
+ && chmod +x /etc/profile.d/pjsua-path.sh \
+ && rm -rf /var/cache/apk/* \
+           /tmp/* \
+           /var/tmp/*
+
+COPY . .
+
+ENTRYPOINT ["/app/docker-entrypoint.sh"]
+CMD ["./help"]
+

+ 50 - 0
pjsua/auto-answer

@@ -0,0 +1,50 @@
+#!/bin/sh
+
+SIP_USERNAME=$1
+
+if [ "${SIP_USERNAME}" == "" ]; then
+  echo "Missing CLI argument: SIP_USERNAME. Exiting"
+  exit 1
+fi
+
+SIP_SERVER_HOST=${SIP_SERVER_HOST:-asterisk}
+SIP_SERVER_PORT=${SIP_SERVER_PORT:-5160}
+SIP_PASSWORD=${SIP_PASSWORD:-asterisk}
+
+# udp, tcp
+SIP_TRANSPORT=${SIP_TRANSPORT:-udp}
+
+# random ports in a range
+LOCAL_PORT=$(shuf -i 50001-55999 -n 1)
+RTP_PORT=$(shuf -i 56001-59999 -n 1)
+
+pjsua \
+  --log-level=0 \
+  --app-log-level=0 \
+  --no-stderr \
+  --color \
+  --light-bg \
+  --null-audio \
+  --snd-auto-close=0 \
+  --max-calls=15 \
+  --no-vad \
+  --use-compact-form \
+  --reg-timeout=90 \
+  --rereg-delay=90 \
+  --use-srtp=0 \
+  --srtp-secure=0 \
+  --rtcp-mux \
+  --use-timer=1 \
+  --reg-use-proxy=3 \
+  --auto-update-nat=1 \
+  --disable-stun \
+  --local-port=${LOCAL_PORT} \
+  --rtp-port=${RTP_PORT} \
+  --realm="*" \
+  --registrar="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --proxy="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --outbound="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --id="sip:${SIP_USERNAME}@${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --username="${SIP_USERNAME}" \
+  --password="${SIP_PASSWORD}" \
+  --auto-answer=200

+ 56 - 0
pjsua/dial

@@ -0,0 +1,56 @@
+#!/bin/sh
+
+SIP_USERNAME=$1
+DESTINATION=$2
+
+if [ "${SIP_USERNAME}" == "" ]; then
+  echo "Missing CLI arguments: SIP_USERNAME and DESTINATION. Exiting"
+  exit 1
+fi
+
+if [ "${DESTINATION}" == "" ]; then
+  echo "Missing CLI argument: DESTINATION number/endpoint. Exiting"
+  exit 1
+fi
+
+SIP_SERVER_HOST=${SIP_SERVER_HOST:-asterisk}
+SIP_SERVER_PORT=${SIP_SERVER_PORT:-5160}
+SIP_PASSWORD=${SIP_PASSWORD:-asterisk}
+
+# udp, tcp
+SIP_TRANSPORT=${SIP_TRANSPORT:-udp}
+
+# random ports in a range
+LOCAL_PORT=$(shuf -i 50001-55999 -n 1)
+RTP_PORT=$(shuf -i 56001-59999 -n 1)
+
+pjsua \
+  --log-level=0 \
+  --app-log-level=0 \
+  --no-stderr \
+  --color \
+  --light-bg \
+  --null-audio \
+  --snd-auto-close=0 \
+  --max-calls=15 \
+  --no-vad \
+  --use-compact-form \
+  --reg-timeout=90 \
+  --rereg-delay=90 \
+  --use-srtp=0 \
+  --srtp-secure=0 \
+  --rtcp-mux \
+  --use-timer=1 \
+  --reg-use-proxy=3 \
+  --auto-update-nat=1 \
+  --disable-stun \
+  --local-port=${LOCAL_PORT} \
+  --rtp-port=${RTP_PORT} \
+  --realm="*" \
+  --registrar="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --proxy="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --outbound="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --id="sip:${SIP_USERNAME}@${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --username="${SIP_USERNAME}" \
+  --password="${SIP_PASSWORD}" \
+  "sip:${DESTINATION}@${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}"

+ 3 - 0
pjsua/docker-entrypoint.sh

@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec "$@"

+ 15 - 0
pjsua/help

@@ -0,0 +1,15 @@
+#!/bin/sh
+
+cat << EOF
+Usage: run this docker image with name of script and its arguments, i.e.:
+
+docker run phone alice 12345 - will call 12345 using SIP account of alice.
+
+Available scripts:
+------------------
+dial account_name destination - dial given destination from selected account;
+register account_name         - just performs SIP register and waiting for user input
+auto-answer account_name      - same as 'register', but will auto-answer calls
+
+
+EOF

+ 49 - 0
pjsua/register

@@ -0,0 +1,49 @@
+#!/bin/sh
+
+SIP_USERNAME=$1
+
+if [ "${SIP_USERNAME}" == "" ]; then
+  echo "Missing CLI argument: SIP_USERNAME. Exiting"
+  exit 1
+fi
+
+SIP_SERVER_HOST=${SIP_SERVER_HOST:-asterisk}
+SIP_SERVER_PORT=${SIP_SERVER_PORT:-5160}
+SIP_PASSWORD=${SIP_PASSWORD:-asterisk}
+
+# udp, tcp
+SIP_TRANSPORT=${SIP_TRANSPORT:-udp}
+
+# random ports in a range
+LOCAL_PORT=$(shuf -i 50001-55999 -n 1)
+RTP_PORT=$(shuf -i 56001-59999 -n 1)
+
+pjsua \
+  --log-level=0 \
+  --app-log-level=0 \
+  --no-stderr \
+  --color \
+  --light-bg \
+  --null-audio \
+  --snd-auto-close=0 \
+  --max-calls=15 \
+  --no-vad \
+  --use-compact-form \
+  --reg-timeout=90 \
+  --rereg-delay=90 \
+  --use-srtp=0 \
+  --srtp-secure=0 \
+  --rtcp-mux \
+  --use-timer=1 \
+  --reg-use-proxy=3 \
+  --auto-update-nat=1 \
+  --disable-stun \
+  --local-port=${LOCAL_PORT} \
+  --rtp-port=${RTP_PORT} \
+  --realm="*" \
+  --registrar="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --proxy="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --outbound="sip:${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --id="sip:${SIP_USERNAME}@${SIP_SERVER_HOST}:${SIP_SERVER_PORT};transport=${SIP_TRANSPORT}" \
+  --username="${SIP_USERNAME}" \
+  --password="${SIP_PASSWORD}"