WIP bash VoIP clients
This commit is contained in:
parent
3b4a2730a3
commit
d42f458e84
13 changed files with 123 additions and 8 deletions
|
@ -63,5 +63,5 @@ COPY --from=builder /home/donar-build/out/udpecho /usr/local/bin
|
||||||
COPY --from=builder /home/donar-build/out/torecho /usr/local/bin
|
COPY --from=builder /home/donar-build/out/torecho /usr/local/bin
|
||||||
COPY --from=builder /home/donar-build/tor2/src/app/tor /usr/local/bin/tor2
|
COPY --from=builder /home/donar-build/tor2/src/app/tor /usr/local/bin/tor2
|
||||||
COPY --from=builder /home/donar-build/tor3/src/app/tor /usr/local/bin/tor3
|
COPY --from=builder /home/donar-build/tor3/src/app/tor /usr/local/bin/tor3
|
||||||
COPY ./scripts/* /usr/local/bin/
|
COPY ./scripts/container/* /usr/local/bin/
|
||||||
COPY ./torrc_* /etc/
|
COPY ./torrc_* /etc/
|
||||||
|
|
|
@ -10,7 +10,7 @@ ggplot(data=link_info, aes(x=timestamp, y=link, color=speed)) +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
|
|
||||||
xx <- read.csv("../../donar-res/tmp_light/ae.csv")
|
xx <- read.csv("../../donar-res/tmp_light/v2.csv")
|
||||||
xx2 <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way from xx group by packet_id,way")
|
xx2 <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way from xx group by packet_id,way")
|
||||||
ggplot(data=xx2, aes(x=packet_id, y=lat, color=way)) +
|
ggplot(data=xx2, aes(x=packet_id, y=lat, color=way)) +
|
||||||
geom_line() +
|
geom_line() +
|
||||||
|
@ -68,7 +68,7 @@ ggplot(data=xx3, aes(x=lat, group=flag, color=flag)) +
|
||||||
coord_cartesian(xlim=c(0,1200)) +
|
coord_cartesian(xlim=c(0,1200)) +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
xy <- read.csv("../../donar-res/tmp_light/aa.csv")
|
xy <- read.csv("../../donar-res/tmp_light/light.csv")
|
||||||
xz <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way,conf,run from xy where packet_id > 50 and packet_id < 7400 group by packet_id,way,conf,run")
|
xz <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way,conf,run from xy where packet_id > 50 and packet_id < 7400 group by packet_id,way,conf,run")
|
||||||
xz$conf <- factor(xz$conf)
|
xz$conf <- factor(xz$conf)
|
||||||
ggplot(data=xz, aes(x=lat, group=conf, color=conf)) +
|
ggplot(data=xz, aes(x=lat, group=conf, color=conf)) +
|
||||||
|
@ -83,8 +83,8 @@ ggplot(data=xz, aes(y=lat, x=conf)) +
|
||||||
geom_boxplot(width=0.1, outlier.shape=NA) +
|
geom_boxplot(width=0.1, outlier.shape=NA) +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
xa <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way,conf,run from xy where flag=1 and packet_id > 50 and packet_id < 7400 group by packet_id,way,conf,run")
|
xa <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way,conf,run from xy group by packet_id,way,conf,run")
|
||||||
ggplot(data=sqldf("select * from xa where run='out/bhTF0rd7MOI5SOPs-6'"), aes(x=packet_id, y=lat, color=way)) +
|
ggplot(data=sqldf("select * from xa where run='L6woUXrfE3XkJLyt-0'"), aes(x=packet_id, y=lat, color=way)) +
|
||||||
geom_line() +
|
geom_line() +
|
||||||
geom_hline(yintercept=400) +
|
geom_hline(yintercept=400) +
|
||||||
geom_hline(yintercept=200) +
|
geom_hline(yintercept=200) +
|
||||||
|
@ -92,10 +92,10 @@ ggplot(data=sqldf("select * from xa where run='out/bhTF0rd7MOI5SOPs-6'"), aes(x=
|
||||||
#geom_point(aes(shape=conf)) +
|
#geom_point(aes(shape=conf)) +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
xb <- read.csv("../../donar-res/tmp_light/ae.csv")
|
xb <- read.csv("../../donar-res/tmp_light/v1.csv")
|
||||||
xb$flag <- factor(xb$flag)
|
xb$flag <- factor(xb$flag)
|
||||||
xb$link_id <- factor(xb$link_id)
|
xb$link_id <- factor(xb$link_id)
|
||||||
xc <- sqldf("select *, 1.0 * latency / 1000.0 as lat from xb where vanilla = 1 and link_id = 0")
|
xc <- sqldf("select *, 1.0 * latency / 1000.0 as lat from xb where vanilla = 1 and link_id = 5")
|
||||||
ggplot(data=xc, aes(x=packet_id, y=lat, color=link_id:way)) +
|
ggplot(data=xc, aes(x=packet_id, y=lat, color=link_id:way)) +
|
||||||
coord_cartesian(ylim=c(100,600)) +
|
coord_cartesian(ylim=c(100,600)) +
|
||||||
geom_line() +
|
geom_line() +
|
||||||
|
@ -137,7 +137,7 @@ ggplot(data=xd, aes(x=packet_id, y=lat, color=link_id)) +
|
||||||
geom_line() +
|
geom_line() +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
ggplot(data=sqldf("select * from xb where vanilla = 1 and way= 'server'"), aes(x=packet_id, y=link_id, color=flag)) +
|
ggplot(data=sqldf("select * from xb where vanilla = 1 and way= 'client'"), aes(x=packet_id, y=link_id, color=flag)) +
|
||||||
geom_point() +
|
geom_point() +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
|
|
58
scripts/container/start_client
Executable file
58
scripts/container/start_client
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
#!/bin/bash
|
||||||
|
LPORT="${NLINKS:-9000}"
|
||||||
|
RPORT="${NLINKS:-9000}"
|
||||||
|
NLINKS="${NLINKS:-16}"
|
||||||
|
SCHED="${SCHED:-tick_tock=0}"
|
||||||
|
LOGS="/tmp/donar_log"
|
||||||
|
mkdir -p $LOGS
|
||||||
|
echo "[+] Log folder is $LOGS"
|
||||||
|
|
||||||
|
tor2 -f /etc/torrc_simple > $LOGS/tor.stdout 2> $LOGS/tor.stderr &
|
||||||
|
echo "[+] Started Tor"
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
echo "[+] Please enter links and finish with an empty line"
|
||||||
|
while read -r $line; do
|
||||||
|
[ -z "$line" ] && break
|
||||||
|
echo $line >> onion_services.pub
|
||||||
|
done
|
||||||
|
|
||||||
|
donar \
|
||||||
|
-a lightning \
|
||||||
|
-c \
|
||||||
|
-o onion_services.pub \
|
||||||
|
-l $NLINKS \
|
||||||
|
-p $SCHED \
|
||||||
|
-b \
|
||||||
|
-e $LPORT \
|
||||||
|
-r $RPORT \
|
||||||
|
> $LOGS/client-donar-stdout.log 2> $LOGS/client-donar-stderr.log &
|
||||||
|
echo "[+] Started Donar. Local port is $LPORT, remote port is $RPORT."
|
||||||
|
|
||||||
|
gst-launch-1.0 \
|
||||||
|
autoaudiosrc ! \
|
||||||
|
webrtcdsp ! \
|
||||||
|
queue ! \
|
||||||
|
audioresample ! \
|
||||||
|
opusenc audio-type=voice inband-fec=FALSE frame-size=40 bitrate=32000 dtx=TRUE ! \
|
||||||
|
rtpopuspay ! \
|
||||||
|
udpsink host=127.13.3.7 port=9000 async=FALSE \
|
||||||
|
udpsrc port=9000 caps="application/x-rtp" ! \
|
||||||
|
rtpjitterbuffer do-lost=TRUE do-retransmission=FALSE latency=10 ! \
|
||||||
|
rtpopusdepay ! \
|
||||||
|
opusdec plc=TRUE use-inband-fec=FALSE ! \
|
||||||
|
audioresample ! \
|
||||||
|
webrtcechoprobe ! \
|
||||||
|
autoaudiosink > $LOGS/gstreamer.stdout 2> $LOGS/gstreamer.stderr &
|
||||||
|
echo "[+] Started GStreamer"
|
||||||
|
|
||||||
|
echo "[+] Waiting for connections"
|
||||||
|
connections=0
|
||||||
|
while [ $connections -ne $NLINKS ]; do
|
||||||
|
sleep 1
|
||||||
|
connections=$(grep 'Succeeded,' $LOGS/client-donar-stdout.log | wc -l)
|
||||||
|
echo -ne "Connecting: $connections/$NLINKS%\033[0K\r"
|
||||||
|
done
|
||||||
|
echo "Ready"
|
||||||
|
|
||||||
|
echo "[+] Let's rocks!"
|
57
scripts/container/start_server
Executable file
57
scripts/container/start_server
Executable file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash
|
||||||
|
LPORT="${NLINKS:-9000}"
|
||||||
|
RPORT="${NLINKS:-9000}"
|
||||||
|
NLINKS="${NLINKS:-16}"
|
||||||
|
SCHED="${SCHED:-tick_tock=0}"
|
||||||
|
LOGS="/tmp/donar_log"
|
||||||
|
mkdir -p $LOGS
|
||||||
|
echo "[+] Log folder is $LOGS"
|
||||||
|
|
||||||
|
tor2 -f /etc/torrc_simple > $LOGS/tor.stdout 2> $LOGS/tor.stderr &
|
||||||
|
echo "[+] Started Tor"
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
donar \
|
||||||
|
-a lightning \
|
||||||
|
-s \
|
||||||
|
-l $NLINKS \
|
||||||
|
-p $SCHED \
|
||||||
|
-b \
|
||||||
|
-e $LPORT \
|
||||||
|
-r $RPORT \
|
||||||
|
> $LOGS/server-donar-stdout.log 2> $LOGS/server-donar-stderr.log &
|
||||||
|
echo "[+] Started Donar. Local port is $LPORT, remote port is $RPORT."
|
||||||
|
|
||||||
|
until [ -f onion_services.pub ]; do sleep 1; done
|
||||||
|
echo "--- Please forward the following addresses: ---"
|
||||||
|
cat onion_services.pub
|
||||||
|
echo ""
|
||||||
|
echo "------"
|
||||||
|
|
||||||
|
gst-launch-1.0 \
|
||||||
|
autoaudiosrc ! \
|
||||||
|
webrtcdsp ! \
|
||||||
|
queue ! \
|
||||||
|
audioresample ! \
|
||||||
|
opusenc audio-type=voice inband-fec=FALSE frame-size=40 bitrate=32000 dtx=TRUE ! \
|
||||||
|
rtpopuspay ! \
|
||||||
|
udpsink host=127.13.3.7 port=9000 async=FALSE \
|
||||||
|
udpsrc port=9000 caps="application/x-rtp" ! \
|
||||||
|
rtpjitterbuffer do-lost=TRUE do-retransmission=FALSE latency=10 ! \
|
||||||
|
rtpopusdepay ! \
|
||||||
|
opusdec plc=TRUE use-inband-fec=FALSE ! \
|
||||||
|
audioresample ! \
|
||||||
|
webrtcechoprobe ! \
|
||||||
|
autoaudiosink > $LOGS/gstreamer.stdout 2> $LOGS/gstreamer.stderr &
|
||||||
|
echo "[+] Started GStreamer"
|
||||||
|
|
||||||
|
echo "[+] Waiting for connections"
|
||||||
|
connections=0
|
||||||
|
while [ $connections -ne $NLINKS ]; do
|
||||||
|
sleep 1
|
||||||
|
connections=$(grep 'Succeeded,' $LOGS/server-donar-stdout.log | wc -l)
|
||||||
|
echo -ne "Connecting: $connections/$NLINKS%\033[0K\r"
|
||||||
|
done
|
||||||
|
echo "Ready"
|
||||||
|
|
||||||
|
echo "[+] Let's rocks!"
|
Loading…
Reference in a new issue