App für IP Video Türstation

Hallo zusammen!
Ich bin auch schon seit einer gefühlten Ewigkeit mit diesem Thema beschäftigt. ;-)

Ich möchte ein paar Dinge vorstellen, falls Ihr sie noch nicht kanntet:

Neben linphone gibt auch zwei Apps für linHOME: für iOS und für Android
Gibt es hier: https://www.linhome.org/software-products/white-label-app/

Hier werden technische Details zur Realsierung mit den Apps und flexisip gegeben: https://archive.fosdem.org/2020/sch...d_VoIP_network_for_video_intercom_systems.pdf

Hier wird das auch nochmal "high-level" besprochen: https://www.linphone.org/sites/default/files/solutions-intercomsystems.pdf

Diese Lösung basiert auf "Video mittels SIP". D.h., dass im SDP neben den Audio-Streams auch die Video-Streams mit gehandhabt werden.
Interessant bei der linhome-App ist, dass sie auch "Early Media" für Video kann. D.h. vor dem Abheben zeigt sie bereits den Video-Stream an.
Sobald man dann abhebt, kommt ein "RE-INVITE" mit einem SDP in dem dann auch der Audio-Stream enthalten ist.

Soweit so gut.

Ich habe nun das Problem, dass ich eine Wantec Monolith C/IP Sprechstelle habe. Die macht Audio über SIP/RTP und Video über HTTP(MJPEG).
Ich finde es unglaublich, dass es - zumindest für iOS - keine vernünftige gepflegte stabile App gibt, die ein SIP-Telefon darstellt, das einfach noch einen Video-Stream über RTSP bzw. HTTP darstellen kann. Das was ich gesehen habe, ist grottig zuzsammengeschustert und teilweise alt.
Unser Haushalt ist "Apple", daher weiß ich leider nicht, wie es im Android-Universum aussieht. (ok, die Wandtablets sind Android-Tabelts. ;-)

Was ich mir nun zur weiteren Evaluierung gebaut habe, ist folgendes:

1) modifizieter B2BUA
Ich habe ein paar Zeilen im Code modifiziert, so dass der Video-Stream nicht über das Video-Bridge-Modul läuft, sondern der B2BUA speist den per HTTP/RTSP empfangenen Stream direkt selbst ein, wenn er die App anruft. Das klappt sogar mit "early media video". :)

Auskommentieren: https://github.com/baresip/baresip-apps/blob/main/modules/b2bua/b2bua.c#L117-L118
Den Call zu ua_connect() ersetzen durch ua_connect_dir(): https://github.com/baresip/baresip-apps/blob/main/modules/b2bua/b2bua.c#L103
Dann hinten zwei zusätzliche Argumente für die Audio und die Video-Richtung. Bei Video ist es nur "SENDONLY". SENDRECV klappt mit der App nicht.

2) Reine iOS-Lösung: Homekit: homebridge-camera-ffmpeg plugin mit eingebautem SIP für Audio
Dieser PullRequest ist von mir: https://github.com/Sunoo/homebridge-camera-ffmpeg/pull/1253
Das Plugin vermittelt direkt die Audio-RTP Streams über SIP zwischen den beiden FFMPEG-Instanzen und der Türsprechstelle.
Der aktuelle Stand funzt bei mir zuhause sehr gut. Wenn es klingelt, gibt eine Push Notification von Home mit einem Snapshot der Kamera.
Wenn man drauf tippt, dann öffnet sich sofort das große Kamera-Bild und man hört Audio von der Türsprechstelle, da ein direkter IP-Call aufgebaut wurde (das geht sehr schnell bei mir). Wenn man dann auf den "Sprechen"-Button tippt, kann man zur Türsprechstelle sprechen.

Aktuell verfolge ich den Ansatz 1) erstmal weiter, da ich unabhängig von Apple und Homekit sein möchte.

Was mich interessiert: welche Apps kennt ihr noch, die SIP mit Video und vor allem "Early media" vernünftig unterstützen?

Falls man die linhome-Apps anpassen möchte:
Den Source Code für die linhome-Android App gibt es hier: https://gitlab.linphone.org/BC/public/linhome-android
Für iOS hier: https://gitlab.linphone.org/BC/public/linhome-ios/

Leider bringt mir das bei Apple nichts, da man ja bei Apple die Apps signieren muss. Selbst ohne Developer-Account funzt eine für private-zwecke signierte App nur max. 1 Woche (?), wenn man denn überhaupt einen Mac zum Entwickeln hat.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: riogrande75
Falls man die linhome-Apps anpassen möchte:

Die linhome App muss man eigentlich nicht mehr anpassen.. es gibt bereits eine angepasste Version , welche von einem Anlagenhersteller verwendet wird...

BAS-IP

Dort wurde im Gegensatz zu linhome ein anderer Weg genommen.

Anstelle von "echtem" Early Media wird dort einfach für das Video ein RTSP Stream angezeigt. Dadurch ist eine Video-Preview möglich, ohne den Anruf anzunehmen.

Leider funktioniert Push wie auch bei linhome NUR wenn du deren eigene Cloud (flexisip) verwendest.

Diese (und andere) Anpassungen kann man bei Belledonne einkaufen, für einmalig 10.000€.

Leider muss man mindestens EIN Gerät von BasIP kaufen, um Zugang zu deren Cloud zu bekommen (4 Geräte). Da es ein stinknormaler Sip-Server ist, kann man natürlich jedes x beliebiges Gerät benutzen


Akuvox macht auch nix anderes, verwenden aber eine eigene App.

Die App "vfone" ist der Vorgänger der Smartplus ... leider funktioniert bei vfone push nicht richtig, sondern nur udp-keep alive. Bei Smartplus haben sie das jetzt korrigiert, mit Cloud Zwang.
Dort wird der Durchwahl der Türstation dann eine RTSP Url hinzugefügt. Sobald der Kontakt anruft, wird der RTSP Link abgespielt...


Sobald RTSP im Spiel ist muss man aber entweder auf Portforwarding oder VPN zurückgreifen.

Push Notifications benötigen bei SIP immer eine Cloud... Der Server meldet sich auf dem SIP-Server an und guckt die ganze zeit ob ein Anruf eingeht und sendet dir dann eine Benachrichtigung. Anders funktioniert es leider nicht...

mit WebRTC könnte man vieles überwinden, SIP ist relativ ungeeignet für Video. Leider gibt es nur einige wenige Axis Geräte die angeblich WebRTC können.
 
hey @starlight+ , i see you also investigated a lot:)

The biggest problem is that early video doesn't work with a PBX if you setup group/follow me/queue calling, it only works on a 1-1 call

VFONE is indeed old, no push, but RTSP works nice indeed, but indeed only udp keep alive, and no support anymore

BAS-IP, indeed a very nice app to intect also RTSP as a preview, PUSH works indeed only if you use their paid sip provider, but if you are smart , you can have 5 accounts for free :) , i have setup their sip provider as an outbound trunk in my asterisk, works quite well
But you can also use BAS-IP with your onw PBX, there is no push then, but you send an android INTENT to wake up the app, before the actually dial...
i used the one below, it wakes up the app in background:

YAML:
channel: com.basip.app
tag: android.intent.action.MAIN
intent_class_name: org.linphone.LinphoneLauncherActivity

Linhome/Linphone, i'm using it now, i compiled it to also have the option to intect an RTSP stream, just added some extra lines of code
Just replaced the incoming/oncall view with the view below!
They have their own free FlexiSIP provider that uses push, so you can also use it as an outbound trunk from asterisk
OR
Just supply it with your own JSON file, and then you can use local extensions and also use PUSH

its a bit more work, but now i can actually use Linhome/LInphone with the RTSP feature like BAS-IP, with PUSH technology, and local accounts

-- Zusammenführung Doppelpost gemäß Boardregeln by stoney

i didnt test Smartplus yet, do they offer also SIP provider/server? do you need it? probably a paid service also? can it work without their hardware?
 
Zuletzt bearbeitet von einem Moderator:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.