Infrastruktur

Klingel

FIXME

Projekte SIP-Türklingel in „Ritto Minivox“-Gehäuse

Netzwerk
IPv4172.23.195.38
IPv62001:4dd0:ff00:9456::38
Hostnameklingel
Switchap2
Port
Dosewifi

Hardware

  • Ritto Minivox-Gehäuse
  • WRTnode
  • USB-Soundkarte (vgl.)
  • Strombezug über vorhandene Klingelinstallation, in der Hauptverteilung im EG die Sicherung B3.
    • Gleichrichter → Fette Elkos → Step-Down mit LM2576

Software

  • baresip
    • Module: cons.so, g711.so, alsa.so, uuid.so (tmp), account.so (tmp), contact.so, menu.so
      • cons_listen 127.0.0.1:5555
  • /etc/rc.button/reset
#!/bin/sh

[ "${ACTION}" = "released" ] || exit 0
logger "$BUTTON pressed for $SEEN seconds"

[ ! -f /tmp/bell_triggered ] || exit 0
logger "bell triggered"
touch /tmp/bell_triggered

echo "/base" | nc 127.0.0.1 5555

(sleep 15
echo "l" | nc 127.0.0.1 5555 | grep RINGING
if [ $? -eq 0 ]
	then echo "b" | nc 127.0.0.1 5555
fi

rm /tmp/bell_triggered)&
  • /etc/asound.conf
pcm.!default {
    type asym
    playback.pcm "plug:softvol"
    capture.pcm "plug:dsnoop"
}

pcm.softvol {
    type softvol
    slave.pcm "dmix"
    control { name "PCM"; card 0; }
    max_dB 32.0
}
  • /etc/rc.local
alsactl -f /etc/alsa/alsa0.state restore 0

Patches OpenWRT

diff --git a/target/linux/ramips/dts/WRTNODE.dts b/target/linux/ramips/dts/WRTNODE.dts
index 3fb2303..1926317 100644
--- a/target/linux/ramips/dts/WRTNODE.dts
+++ b/target/linux/ramips/dts/WRTNODE.dts
@@ -6,7 +6,15 @@
        compatible = "wrtnode", "ralink,mt7620n-soc";
        model = "WRTNODE";

+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
        palmbus@10000000 {
+               gpio1: gpio@638 {
+                       status = "okay";
+               };
+
                gpio2: gpio@660 {
                        status = "okay";
                };
@@ -72,9 +80,29 @@
        pinctrl {
                state_default: pinctrl0 {
                        default {
-                               ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf";
+                               ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf", "spi refclk";
                                ralink,function = "gpio";
                        };
                };
        };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               indicator {
+                       label = "wrtnode:blue:indicator";
+                       gpios = <&gpio1 14 1>;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <20>;
+               bell {
+                       label = "bell";
+                       gpios = <&gpio0 1 1>;
+                       linux,code = <0x198>;
+               };
+       };
 };
diff --git a/net/baresip/Makefile b/net/baresip/Makefile
index a2be05a..eedde46 100644
--- a/net/baresip/Makefile
+++ b/net/baresip/Makefile
@@ -26,6 +26,8 @@ baresip-mods:= \
        g722 \
        oss \
        speex \
+       speex_aec \
+       speex_pp \
        stdio \
        uuid \
        v4l \
@@ -59,6 +61,8 @@ baresip-mod-g711      := USE_G711
 baresip-mod-g722      := USE_G722
 baresip-mod-oss       := USE_OSS
 baresip-mod-speex     := USE_SPEEX
+baresip-mod-speex_aec  := USE_SPEEX_AEC
+baresip-mod-speex_pp   := USE_SPEEX_PP
 baresip-mod-stdio     := USE_STDIO
 baresip-mod-uuid      := USE_UUID
 baresip-mod-v4l       := USE_V4L
@@ -140,6 +144,8 @@ $(eval $(call BuildPlugin,g711,G.711 audio codec,g711,))
 $(eval $(call BuildPlugin,g722,G.722 audio codec,g722,+PACKAGE_baresip-mod-g722:libspandsp))
 $(eval $(call BuildPlugin,oss,OSS audio driver,oss,))
 $(eval $(call BuildPlugin,speex,Speex audio codec,speex,+PACKAGE_baresip-mod-speex:libspeex))
+$(eval $(call BuildPlugin,speex_aec,Speex acoustic echo canceller,speex_aec,+PACKAGE_baresip-mod-speex_aec:libspeexdsp))
+$(eval $(call BuildPlugin,speex_pp,Speex preprocessor,speex_pp,+PACKAGE_baresip-mod-speex_pp:libspeexdsp))
 $(eval $(call BuildPlugin,stdio,standard I/O UI,stdio,))
 $(eval $(call BuildPlugin,uuid,UUID,uuid,+libuuid))
 $(eval $(call BuildPlugin,v4l,Video4Linux video source,v4l,+PACKAGE_baresip-mod-v4l:libv4l))