SIP Sprechanlage im Selbstbau

Begonnen von netbus, 01 Mai 2014, 22:35:25

Vorheriges Thema - Nächstes Thema

netbus

Ich bin auf der Suche nach einer Sip Gegensprechanlage doch die sind leider im 4 stelligen Euro Bereich.
Da es ja mittlerweil Raspberrys gibt denke müsste es doch viel billiger und vorallem selber zu realisieren sein.
Hat vielleicht schon jemand was in diese Richtung gemacht?

Tobias

Ich habe mal mit einem Asterisk herumprobiert, damit  war es relativ einfach möglich. Man muss sich aber schon etwas mit der Asterisk Programmiersprache auseinandersetzen. Aber nicht weiter verfolgt und auch keine Codeschnipsel mehr :(
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

netbus

Asterisk hab ich schon am laufen. Das war der leichteste Part  :D
Ich versuche gerade das Projekt Doorberry nachzubauen.
Leider scheiterts bei mir an den python Kenntnissen.

ext23

Mhh wozu hat der denn noch eine extra Asterisk laufen? Ich meine das Teil meldet sich doch an die Fritze an als "Telefon".
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

netbus

Ich habe keine Fritzbox am laufen.
Ziel ist es, dass ein Klingeltaster gedrückt wird welcher mit dem GPIO vom RPi verbunden ist.
Dieser hat einen Sipclient laufen (pjsua) welcher einen Call aufbaut zu einem Handy.
Am Handy drück man zb. #9 (Call Feature) womit man dann die Türe öffnen kann.

ext23

Achso OK da macht es Sinn... Naja ich hab eine Fritze und meine Telefone sind auch alle SIP die ich zu Hause habe. Von dem her wäre das Teil dann nur ein "zustätzliches" Telefon. Das dann ein Handy angerufen wird ist ja über die Fritze alles machbar.

Wenn du da Fortschritte hast kannst du das hier gerne publizieren. Ich brauch es im Moment noch nicht aber mit interessiert die Sache und ich würde das auch gerne einmal ausprobieren.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

carlos

Hallo netbus,
Genau das will ich auch bei mir haben. Bin gerade dabei mich da etwas einzuarbeiten.
Habe FHEM auf meinen neuen Raspberry Pi umgestellt und spiele gerade da etwas mit rum.
Habe mir das doorberry auch schon angeschaut und dachte mir so etwas wäre toll.
Wollte jetzt erst mal versuchen einen Klingeltaster anzuschließen und die  Kamera (muss ich noch bestellen) zu nutzen.
Asterix habe ich auch noch nicht installiert.

Ich wäre aber bereit bei dem Projekt mitzumachen.
Kannst du schon mal Details mitteilen, was du gemacht hast(hardware und Software).
Mir ist z.B. nicht ganz klar wie man einen Klingeltaster(da gibts ja auch verschiedene) anschließt.
Gruß
Carlos

FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

netbus

Also:
Ich habe einen Raspberry mit Raspbian am laufen. Drauf installiert ist noch pjsua (command line sip client)
Da der RPi keinen Mic Eingang hat verwende ich eine USB Soundkarte.
Auf dem NAS läuft Asterisk.
Auf den GPIO hängt ein Taster der durch ein python script pjsua startet und einen call aufbaut

root@doorberry:~# cat test.py
# watch LOW level on pin 5 to enter sleep mode
# status led on pin 7: ON = ready, BLINK = confirm button

import RPi.GPIO as GPIO
import os
import time

# use the pin number as on the raspi board

GPIO.setmode(GPIO.BOARD)

# set pin 23 as output and HIGH, pin 5 is input

GPIO.setup(23, GPIO.OUT)
GPIO.output(23, True)
GPIO.setup(5, GPIO.IN)

# start the loop for every .5 seconds, waiting for LOW on pin 5
# then 2 short flashes with led to confirm and shutdown to sleep mode

while True:
        if not (GPIO.input(5)):
                GPIO.output(23, False)
                time.sleep(.1)
                GPIO.output(23, True)
                time.sleep(.1)
                GPIO.output(23, False)
                time.sleep(.1)
                GPIO.output(23, True)
                os.system("pjsua --config-file /etc/pjsip/sip.cfg sip:6001@192.168.1.4:55060")
        time.sleep(.5)
root@doorberry:~#

Das Problem momentan ist das der pjsua nach einem Call weiter läuft.
Wenn ich es noch schaffe den pjsua zu schließen nach einem Call wäre es perfekt.
Ich hätte sogar schon eine Anleitung gefunden was man in der source ändern muss aber leider scheitere ich auch da
http://www.rootserver-guide.de/automatische-telefonanrufe-leicht-gemacht/

ext23

Naja perfekt noch nicht ganz, oder wie machst du die Tür auf? Also den Summer? Der SIP Client müsste ja noch irgendwie auf DTMF Töne reagieren um dann eine Aktion am GPIO auszulösen oder?

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

netbus

Okay das habe ich noch verschwiegen,
Ich habe ein Call Feature in Asterisk konfiguriert und wenn ich (in meinem Fall) *9 drücke sende ich an Fhem einen curl request der mir ein Relais betätigt

extensions.conf
[globals]
FEATURES=opendoor

features.conf

[applicationmap]
opendoor=*9,peer/both,System,/etc/asterisk/opendoor.sh

ext23

Achso mhh gut auch ne Idee, aber das geht dann natürlich wirklich nur wenn man eine Asterisk am Start hat. Ich bin eigentlich froh das ich die nicht mehr brauche seit dem ich ne Fritzbox habe ;-)

Aber gut das muss ja mir diesem SIP Client auch irgendwie gehen.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)