NEWS
Test Adapter doorio v2.1.2
-
@m4rcus ,
lasse WLan mal weg und mach mal so wie ich installiert habe.
Mit dem RPI-OS-Imager das Lite Image schreiben und vor dem einlegen in den RPI die Datei config.txt auf der SD-Karte bearbeiten :# turn wifi and bluetooth off dtoverlay=disable-wifi dtoverlay=disable-bt # Enable audio (loads snd_bcm2835) dtparam=audio=off
das ist selbsterklärend
Für Fernzugriff eine Datei ssh in boot erzeugen.
SD-Karte einlegen und booten.Konsole öffnen und Befehle abarbeiten
- Password für Nutzer pi ändern
- Localisation und Timezone setzen
- Hostname setzen
- reboot aus raspi-config machen
- Pakete updaten
- benötigte Pakete installieren
passwd sudo raspi-config sudo apt update sudo apt full-upgrade sudo loginctl enable-linger pi sudo apt install libspandsp-dev libasound2-dev pulseaudio libpulse-dev git mc cmake libjpeg-dev automake autoconf libtool libsamplerate0-dev libspeexdsp-dev libspeex-dev libasound2-doc python3-pip sudo reboot
Soundkarte einrichten:
pactl list sudo nano /etc/pulse/default.pa sudo reboot
ich denke das hast du schon hinbekommen, da Baresip auf der Konsole ja läuft.
alsamixer
testen ob pulseaudio im alsamixer als default gesetzt ist.
wget https://github.com/baresip/baresip/archive/refs/tags/v1.1.0.tar.gz wget https://github.com/baresip/re/archive/refs/tags/v2.0.1.tar.gz wget https://github.com/baresip/rem/archive/refs/tags/v1.0.0.tar.gz tar -xvzf v1.1.0.tar.gz tar -xvzf v2.0.1.tar.gz tar -xvzf v1.0.0.tar.gz cd re-* make sudo make install sudo ldconfig cd .. cd rem* sudo make install sudo ldconfig cd .. cd bare* sudo make install sudo ldconfig cd .. baresip -vvv nano .baresip/accounts nano .baresip/config
baresip installieren und die configs anpassen.
config genau so bitte:
# # baresip configuration # #------------------------------------------------------------------------------ # Core poll_method epoll # poll, select, epoll .. # SIP sip_listen 0.0.0.0:5060 #sip_certificate cert.pem # Call call_local_timeout 20 call_max_calls 2 # Audio audio_path /usr/local/share/baresip #audio_player alsa,default #audio_source alsa,default #audio_alert alsa,null audio_player pulse,noecho.sound_out audio_source pulse,noecho.mic_in audio_alert pulse,noecho.sound_out #ausrc_srate 48000 #auplay_srate 48000 #ausrc_channels 0 #auplay_channels 0 #audio_txmode poll # poll, thread audio_level no ausrc_format s16 # s16, float, .. auplay_format s16 # s16, float, .. auenc_format s16 # s16, float, .. audec_format s16 # s16, float, .. # Video #video_source v4l2,/dev/video0 #video_display x11,nil video_size 352x288 video_bitrate 500000 video_fps 25.00 video_fullscreen yes videnc_format yuv420p # AVT - Audio/Video Transport rtp_tos 184 #rtp_ports 10000-20000 #rtp_bandwidth 512-1024 # [kbit/s] rtcp_mux no jitter_buffer_delay 5-10 # frames rtp_stats no #rtp_timeout 20 # Network #dns_server 10.0.0.1:53 #net_interface eth0 # BFCP #bfcp_proto udp #------------------------------------------------------------------------------ # Modules module_path /usr/local/lib/baresip/modules # UI Modules module stdio.so #module cons.so #module evdev.so #module httpd.so # Audio codec Modules (in order) #module opus.so #module amr.so #module g7221.so #module g722.so #module g726.so module g711.so #module gsm.so #module l16.so #module bv32.so #module mpa.so #module codec2.so #module ilbc.so #module isac.so # Audio filter Modules (in encoding order) #module vumeter.so #module sndfile.so #module speex_aec.so #module speex_pp.so #module plc.so # Audio driver Modules #module alsa.so module pulse.so #module jack.so #module portaudio.so #module aubridge.so #module aufile.so # Video codec Modules (in order) #module avcodec.so #module vp8.so #module vp9.so #module h265.so # Video filter Modules (in encoding order) #module selfview.so #module snapshot.so #module swscale.so #module vidinfo.so # Video source modules #module v4l2.so #module v4l2_codec.so #module avformat.so #module x11grab.so #module cairo.so #module vidbridge.so # Video display modules #module directfb.so #module x11.so #module sdl2.so #module fakevideo.so # Audio/Video source modules #module rst.so #module gst1.so #module gst_video1.so # Media NAT modules #module stun.so #module turn.so #module ice.so #module natpmp.so #module pcp.so # Media encryption modules #module srtp.so #module dtls_srtp.so #module zrtp.so #------------------------------------------------------------------------------ # Temporary Modules (loaded then unloaded) #module_tmp uuid.so module_tmp account.so #------------------------------------------------------------------------------ # Application Modules #module_app auloop.so #module_app b2bua.so #module_app contact.so module_app debug_cmd.so #module_app dtmfio.so #module_app echo.so #module_app gtk.so module_app menu.so #module_app mwi.so #module_app presence.so module_app syslog.so #module_app mqtt.so module_app ctrl_tcp.so #module_app vidloop.so #------------------------------------------------------------------------------ # Module parameters # UI Modules parameters cons_listen 0.0.0.0:5555 # cons http_listen 0.0.0.0:8000 # httpd - server ctrl_tcp_listen 0.0.0.0:4444 # ctrl_tcp evdev_device /dev/input/event0 # Opus codec parameters opus_bitrate 28000 # 6000-510000 #opus_stereo yes #opus_sprop_stereo yes #opus_cbr no #opus_inband_fec no #opus_dtx no #opus_mirror no #opus_complexity 10 #opus_application audio # {voip,audio} # Opus Multistream codec parameters #opus_ms_channels 2 #total channels (2 or 4) #opus_ms_streams 2 #number of streams #opus_ms_c_streams 2 #number of coupled streams vumeter_stderr yes # Selfview video_selfview window # {window,pip} #selfview_size 64x64 # ICE ice_turn no ice_debug no ice_nomination regular # {regular,aggressive} ice_mode full # {full,lite} # ZRTP #zrtp_hash no # Disable SDP zrtp-hash (not recommended) # Menu #menu_bell yes #redial_attempts 3 # Num or <inf> #redial_delay 5 # Delay in seconds #ringback_disabled yes #statmode_default off # avcodec #avcodec_h264enc libx264 #avcodec_h264dec h264 # h265 #h265_encoder libx265 #h265_decoder hevc # MQTT #mqtt_broker_host localhost #mqtt_broker_port 1883 #mqtt_broker_clientid baresip #mqtt_broker_user pi #mqtt_broker_password raspberry #mqtt_basetopic doorio
testen ob baresip so läuft:
baresip -vvv
Autostart als User einrichten:
mkdir -p ~/.config/systemd/user/ nano ~/.config/systemd/user/baresip.service
das einfügen:
[Unit] Description=baresip [Service] ExecStart=/usr/local/bin/baresip -4 -f /home/pi/.baresip [Install] WantedBy=default.target
aktivieren und reboot:
systemctl --user daemon-reload systemctl --user enable baresip.service sudo reboot
bitte die configs und Befehle erst einmal so lassen.
das wars. -
Also ich habe es so nicht hinbekommen, leider ist der baresip Support nicht so princkelnd, auch bezüglich installation usw.
obwohl anscheinend dran entwickelt wird.Ich habe das Problem so nicht lösen können, dass beim autostart von baresip der Anruf bei annahme gleich wieder aufgelegt wurde.
Da ich eh Alles mit NodeRed steuere habe ich dort beim start von NodeRed eingebaut danach per consolenbefehl
baresip zu starten.Allgemein bin ich noch nicht zufrieden damit, wenn ich eine Mobilnummer anrufe, dauert es mir zu lange,
ist aber ja allgemein so bis es klingelt, ich denke mal viel vor allem Paketboten sind dann schon weg.
Ich habe mir daher eine Voip nummer angelegt, das geht schon mal schneller.Da fehlt mir noch das Videobild von der Tür.
Da bin ich mir nicht sicher, ob es Baresip unterstützt und der voip Anbieter auch.Ich bin echt am überlegen, ob man da nicht ein komplettes gemeinsames Projekt draus machen kann,
auf der einen Seite der Rapi mit einer Software, die Audio/Video streamt und auch ein Klingelsignal gibt
und auf der anderen Seite eine App die zumindest auf Knopfdruck Audio streamt und das Klingelsignal aufnimmt
und auf dem Smartphone signalisiert.
Aber ich habe noch nichts das richtig gefunden.
Normal würde man sagen das kann doch nicht so schwer sein, aber man findet fast nichts...
Außer fertige teure Lösungen.Gehört hier aber ja auch nicht wirklich her.
Gruß
Jens -
Vielleicht probiere ich das auch nach Deiner Anleitung mal komplett durch ob das Problem dann weg ist.
Sieht auf jeden Fall gut aus und detaillierter!Ich gebe Rückmeldung
Danke
Gruß Jens -
@aingtii ,
wie schon gesagt nutze ich Baresip ohne Video, da das Fritzfon einen externen Stream nutzt. Wenn ich mal Zeit finde, versuche ich mal Video einzubinden um über eine Sipapp zu kommunizieren. -
Hallo zusammen,
@Wal :
nach einem doch etwas turbulenteren Wochenende habe ich deine Anleitung durchgearbeitet, und siehe da: Es funktioniert!Ich denke, die geheime Zutat war
sudo loginctl enable-linger pi
in Verbindung mit
mkdir -p ~/.config/systemd/user/ nano ~/.config/systemd/user/baresip.service
Der baresip Service läuft jetzt für den user pi und somit meckert Pulseaudio auch nicht. Nachdem baresip korrekt installiert war, war das Nachziehen von iobroker, doorio und mqtt-io im Vergleich dazu ein Kinderspiel.
@AingTii: Ich gebe dir vollkommen recht - die "Doku" von baresip ist etwas lückenhaft
Videostreaming fänd ich auch sehr interessant, aber ich habe da auch noch nicht von wirklich lauffähigen Projekten gehört.Jetzt werde ich erstmal schauen, dass ich wirklich alles bootfest konfiguriert bekomme, und dann geht der Pi erstmal an die Hausklingel für einen Feldtest Verkabelung steht ja schon...
Vielen Dank für die Hilfe und die ausführliche Anleitung!
-
@m4rcus ,
das Problem ist das man gefühlt alle 4 Wochen die Anleitungen überarbeiten müsste, um mit den Updates von Linux Schritt zu halten. Das Ausführen als User hat die ganze Zeit im normalen Systemd-Daemon funktioniert, wenn der User und die Gruppe im Daemon-Script angegeben wurde. Das das nicht mehr funktioniert habe ich bei der letzten Neuinstallation auf meinem Testsystem erst gemerkt. Danach war eine Google Langzeitsession von Nöten um das wieder gerade zu biegen, das ist ab und zu sehr nervig. -
@m4rcus sagte in Test Adapter doorio v1.1.x:
Nachdem baresip korrekt installiert war, war das Nachziehen von iobroker, doorio und mqtt-io im Vergleich dazu ein Kinderspiel.
Bei mqtt-io gibt es z.Z. auch ein Problem, deshalb bin ich auf pi-mqtt-gpio zurück gegangen.
Wenn der MQTT-Server neu gestartet wird z.B. bei einem ioBroker update, verbindet sich der mqtt-io Client nicht sofort wieder. Erst nachdem versucht wird eine Nachricht an den Server zu schicken wie zum Beispiel beim Klingeln, verbindet er sich wieder. Da wird aber das Klingeln verschluckt. Der pi-mqtt-gpio Client verbindet sich sofort wieder. -
@wal
Moin, wie aktuell ist denn das Image, welches in der Anleitung zum Download steht?
Ist das mit aktueller Konfiguration, mqtt und mjpg? -
@renegade-0 ,
nicht sehr aktuell ist noch vom letzten Jahr und auch nicht RPI-OS. -
@wal
Ach so, was für ein OS hast du genutzt?Schade, aber dann werd ich mir eines mim lite aufbauen.
-
@renegade-0,
das war vor RPI-OS und war Raspbian Stretch.
Die Anleitung für RPI-OS-Lite ist ja weiter oben zu finden. -
@m4rcus ,
das Problem ist das man gefühlt alle 4 Wochen die Anleitungen überarbeiten müsste, um mit den Updates von Linux Schritt zu halten. Das Ausführen als User hat die ganze Zeit im normalen Systemd-Daemon funktioniert, wenn der User und die Gruppe im Daemon-Script angegeben wurde. Das das nicht mehr funktioniert habe ich bei der letzten Neuinstallation auf meinem Testsystem erst gemerkt. Danach war eine Google Langzeitsession von Nöten um das wieder gerade zu biegen, das ist ab und zu sehr nervig.@Wal: Stimmt, die Linux-Updates können schonmal vieles durcheinander bringen. Ich frage mich, ob man die Grundinstallation in ein Dockerfile bzw. mehrere kippen könnte... das will ich mal ausprobieren, wenn ich etwas mehr Zeit finde. Momentan sind wir vor ein paar Wochen Eltern geworden und dementsprechend ist die Zeit etwas rar gesät
Aber vom Ansatz her könnte man doch den baresip und den mqtt-Server in separaten Docker-Images betreiben. iobroker gibt es ja schon als Docker-Variante, welche ich auch im Einsatz habe. Zumindest würde man damit die Linux-Updates in den Griff bekommen - und bei Bedarf könnte man das Image dann durch eine neuere Version ersetzen oder eben einen Fallback durchführen, wenn man alles zerfummelt hat
Ich habe ja bereits eine fertige Klingel-Installation mit aktuell noch DoorPi hier, daher bin ich auch darauf angewiesen, dass ich auch zukünftig eine Lösung ans Laufen bekomme. Ich bleibe also dran.
-
Hallo Walter,
Ich wollte ja noch mal Rückmeldung geben bezüglich der Anleitung.
Erst mal, funktionert sie soweit bis die Fehlermeldung mit dem X11 kommt.Evtl. könntest Du das noch mit einbauen, dass man vor der Installation noch X11 installieren muss?
Du hast es ganz oben beschrieben, konnte ich aber nicht testen, da ich es übersudo apt-get install libxext-dev
Ob das nun richtig ist kann ich nicht sagen....
installiert habe und erst nachher gesehen hatte das oben noch was von baresip-x11 stand.
pulse audio kriege ich irgendwie nicht hin, also zickt bei dem neu aufgesetzen ebenfalls, bekomme kein Audio raus.
Da hätte ich die Frage, was hat es für einen Grund dass Du pulse benutzt anstatt alsa?
Evtl. könntest Du die pulse installation und Einrichtung noch etwas detaillierter erklären,
wäre für mich auf jeden Fall HilfreichDann habe ich einen 3cx server aufgesetzt in der Hoffnung das ganze besser zu managen und auch Video
benutzten zu können, der SIP Bereich der Fritzbox scheint es nicht zu unterstützen.Da käme noch die Frage, hast Du evtl. eine Idee wie ich in baresip den VideoCodec vp8 installiere?
Wenn ich den in der config aktiviere, kommt ne Fehlermeldung, kann nicht gefunden werden udn die vp8.so ist auch nicht
da, obwohl im github im src vp8 vorhanden ist.Danke
Gruß Jens -
@aingtii ,
pulse nehme ich wegen Acoustic Echo Cancellation, wenn man das nicht braucht genügt auch alsa.
Die Anleitung eine Seite voher genügt normal und baresip-x11 braucht nicht jeder. -
@aingtii ,
in der Datei https://github.com/baresip/baresip/blob/master/mk/modules.mk siehst du welche Dateien vorhanden sein müssen, um das Modul zu erstellen. Um vp8.so zu erstellen braucht baresip die Datei vp8.h und die ist im Paket libvpx-dev enthalten.sudo apt install libvpx-dev
-
Ok, danke das hat schon mal geklappt.
nun verbindet baresip sich nicht mehr mit dem 3cx server, immer timeout...
Das muss auch einer verstehen.....Also wieder rumfummeln um den Fehler zu finden
-
bin schon mal ein stück weiter, videotelefonie funktioniert über 3cx
allerdings, wieder dieses komische verhalten, starte ich baresip automatisch,
egal ob über ssh aus Nodered oder per autostart wie oben beschrieben wird die Verbindung
gleich wieder beendet nach dem abnehmen.Auch ist das Problem, dass ich auf jeden Fall
export DISPLAY=:0
eingeben muss damit die videoverbindung funktioniert.
Beendet ich baresip über killall und starte es in der console manuell, geht alles (export DISPLAY.... vorrausgesetzt)
Da frage ich mich, was ist der unterschied, ob ich mich mit putty oder per Nodered mit dem user Pi einlogge,
das es sich unterschiedlich verhältDanke
Gruß Jens -
@aingtii ,
das kann nur ein Rechte Problem sein. Das Beste wäre auch, wenn du einen neuen Thread erstellst, da es nichts mit dem Adapter zu tun hat. -
Hallo zusammen,
ich sezte gerade auf einem zero w einen baresip-client auf Basis des hier verfügbaren images um. Um Videotelefonie zu ermöglichen bzw. das Bild von meiner Haustür einzufangen, habe ich noch den mjpg-controller installiert. Ich bekomme diesen auch problemlos gestartet. Will ich diesen aber automatisch per Systemdienst starten, funktioniert das nicht.
Meine Servicedatei sieht wie folgt aus /etc/systemd/system/doorcam.service
[Unit] Description=doorcam After=syslog.target network.target [Service] Type=simple User=pi ExecStart=/usr/local/bin/doorcam.sh WorkingDirectory=/usr/local/bin/ StandardOutput=inherit StandardError=inherit [Install] WantedBy=multi-user.target
Die script-Datei /usr/local/bin/doorcam.sh
#!/bin/sh export LD_LIBRARY_PATH=/urs/local/bin sudo /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 1280x720 -d /dev/video0 -f 30" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www" &
Führe ich die Datei doorcam.sh lokal über putty aus, dann sieht es wie folgt aus (und die Camera ist über den WebBrowser erreichbar).
pi@raspberrypi:/etc/systemd/system $ MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39 i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 1280 x 720 i: Frames Per Second.: 30 i: Format............: JPEG i: TV-Norm...........: DEFAULT UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25) UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25) UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25) UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25) UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25) UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25) UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25) o: www-folder-path......: /usr/local/share/mjpg-streamer/www/ o: HTTP TCP port........: 8080 o: HTTP Listen Address..: (null) o: username:password....: disabled o: commands.............: enabled
sudo systemctl start doorcam
liefert
pi@raspberrypi:/etc/systemd/system $ sudo systemctl status doorcam ● doorcam.service - doorcam Loaded: loaded (/etc/systemd/system/doorcam.service; disabled; vendor preset: enabled) Active: inactive (dead) Mai 31 17:05:08 raspberrypi systemd[1]: Stopped doorcam. Mai 31 17:05:08 raspberrypi systemd[1]: Started doorcam. Mai 31 17:05:08 raspberrypi systemd[1]: doorcam.service: Succeeded. Mai 31 17:05:10 raspberrypi systemd[1]: Stopped doorcam. Mai 31 17:05:37 raspberrypi systemd[1]: Started doorcam. Mai 31 17:05:37 raspberrypi systemd[1]: doorcam.service: Succeeded. Mai 31 17:08:01 raspberrypi systemd[1]: Started doorcam. Mai 31 17:08:01 raspberrypi systemd[1]: doorcam.service: Succeeded. Mai 31 17:20:14 raspberrypi systemd[1]: Started doorcam. Mai 31 17:20:14 raspberrypi systemd[1]: doorcam.service: Succeeded.
Aber unter pstree ist kein Job sichtbar. Das Webfrontend des Streamers läuft ebenfalls nicht. Setze ich in der Service-Datei Restart auf always, dann startet er zwar in einer Endlosschleife (zumindest theoretisch) den Job, praktisch aber nicht. Das Protokoll sagt Folgendes dazu
May 31 17:20:14 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 31 17:20:14 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway. May 31 17:20:14 raspberrypi systemd[1]: Started doorcam. May 31 17:20:14 raspberrypi systemd[1]: doorcam.service: Succeeded. May 31 17:20:14 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 31 17:20:14 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway. May 31 17:20:35 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 31 17:20:35 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway. May 31 17:20:35 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 31 17:20:35 raspberrypi systemd[1]: Configuration file /etc/systemd/system/doorcam.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway.
Sorry, will Euch nicht vollspammen.....aber ich hab das ganze Wochenende damit verbracht...leider erfolglos
-
@rayjayvaughan sagte in Test Adapter doorio v2.0.1:
systemctl status doorcam
sagt? Masked? Disabled?
getfacl /etc/systemd/system/doorcam.service
sagt?