Fritzbox "Tuersprechanlage (LAN/WLAN)" mit Raspberry als SIP-Client

  • Da ich bei meinen Eltern nur einen Klingel-Knopf habe, den ich über den Raspberry (als SIP / IP / Registar) an meine Fritzbox anschließen möchte, habe folgenden Weg gewählt, der bereits funktioniert. Ich kann also aktuell bereits den Klingelknopf drücken und die angeschlossenen Telefone signalisieren, das jemand an der Haustür ist.
    Ich verwende aktuell Asterisk und habe meine Login-Daten für die Fritzbox als LAN/WLAN Gerät eingetragen.



    Nun wollte ich noch zwei Dinge versuchen:


    1)Das man den Raspberry (bzw. den SIP-Client) anrufen kann, dass dieser dann abnimmt und man dann am Telefon von dem man dann den Raspberry anruft z.B. die 25 (oder einen anderen Code) wählt, und der Raspberry dann z.B. ein angeschlossenes Relais schaltet.


    2)Ebenso möchte ich den Raspberry nun als "Tuersprechanlage (LAN/WLAN)" - diese Option gibt es in der Fritzbox - dort einrichten. Durch diese Option hat man zudem die Möglichkeit, mehrere Klingeltaster einzustellen, so dass z.B. Klingeltaster1 die "Rufnummer 11" hat und Klingeltaster2 die "12" hat.
    Ich stelle mir das so vor, dass der Raspberry (dessen SIP-Client) die Fritzbox bzw. deren interne IP-Türsprechanlagenfunktion anruft, und das die Fritzbox dann diesen Ruf entgegennimmt. Dann merkt der Raspberry, sein Ruf wurde angenommen und er sendet z.B. die Zeichenfolge "11", so dass die Türsprechanlagenfunktion der Fritzbox ihrerseits bestimmte Telefone klingeln lassen kann.


    Geht die gewünschte Funktionalität (1,2) mit Asterisk, oder brauche ich da DoorPi dazu? Ich würde mich sehr über eure Tipps freuen!!

  • Jo, das ist genau das, was ich machen will.


    Soweit, wie du war ich auch schon, aber nur theoretisch. Weil das reicht mir nicht.
    Bei mir geht es sogar darüber hinaus, dass ich in meinem Haus bereits eine Gegensprechanlage habe und ich dann natürlich erst mit meinem Besuch sprechen will.


    Das mit dem MFV Code "25"... sagen wir mal "0" reicht uns.
    Erzeugen von der Theorie findet man da schnell: 0 ist ein Ton aus 1336 Hz und 941 Hz.
    Und das ist auch irgendwie zu machen, einen Ton zu erzeugen - dafür gibt es genug Beispiele im Internet.
    Die Kunst ist jetzt, daraus einen String zu machen.
    Weil, wenn du das irgendwie schaffst, den Sound auf eine Soundkarte auszugeben und zu senden, aka mit nem Headset an nem Raspberry über SIP telefonieren, dann hast du ein Telefon.
    Man muss die Signale irgendwie durch ein Skript schleifen.
    Aber, wie geht das und wie kriegt man die Signale raus?
    Ich kann mir das nur als signed 16bit Integer vor, der je nach Hertz, also Wechselrate des Audio-Anschlusses sich ändert.
    Die muss man also immer rauskopieren, bevor Sie sich wieder ändert.
    Und zwar in ein Array, was so lang ist, wie HZ durch 2, also eine halbe Sekunde.
    Dazu hat man noch ein Array, was genau so lang ist und eine selbstgenerierte "0" enthält, also 1336Hz und 941Hz gleichzeitig abgespielt.
    Ein einem dritten Array wird dann der Unterschied zwischen den beiden Arrays ermittelt.
    Sobald der Unterschied gleichbleibend ist, ist wahrscheinlich die 0 gewählt worden.


    Warum gleichbleibend und nicht 0?
    Töne schwingen ja. Und wenn du zuhörst, weißt du ja nicht, wie weit die Gegenseite schon in ihrem Schwung von der Kurve her drin ist. Audio ist halt stressig. Achja und wegen Störgeräuschen, die gleichbleibend zu hören sind.


    So die Theorie, die Praxis war traurig. Ich habe die Vermutung, die Menschheit hat diese Technologie bereits- aber ich weiß nicht, wie es heißt..


    Ich hab hier mal alles hingeschrieben, danach wäre es nicht mal schwierig für dich auch ne Gegensprechanlage dazu zu bauen.


    (Bedenke auf jeden Fall, wenn du auch ne Gegensprechanlage hast, dass gegen Rückkopplung zu sichern, damit niemand vorne einfach klingelt und mit seinem Handy wählt und dadurch Töne erzeugt, womit die Tür aufgeht.)