Doorberry-SIP Sprechanlage HowTo SIP Teil 3

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Michael Rene Maurer
    LoxBus Spammer
    • 25.08.2015
    • 221

    #1

    Doorberry-SIP Sprechanlage HowTo SIP Teil 3


    Zitat von Michael Rene Maurer
    Hab eine Frage in die Runde! Habe ja Pjsip auf meinen Raspberry laufen, Funtioniert j ich tadellos,...
    Möchte jetzt gerne auch von Extern auf meinen Raspberry zugreifen können also ein Gespräch aufbauen!
    Mit Asterisk hab ich mich schon auseinandergesetzt, leider ohne Erfolg!
    Zur Erreichbarkeit von außen: Im Moment wird im sip.py ein Userless Account verwendet - also sobald auf Port 5060 was daher kommt, wird die Verbindung angenommen. Will man aber einen vollwertigen SIP-Account (z.B. von iptel.org - klappt übrigens super) verwenden, muss man das Script ein wenig umbauen.
    Code:
    acc = lib.create_account_for_transport(transport, cb=SipAccountCallback())
    Dieser Teil muss mit einer "richtigen" Registrierung, also mit Server, Username, Passwort durchgeführt werden, siehe dazu
    Python_SIP/Accounts – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones

    Ich verwende jetzt
    Code:
    acc_cfg = pj.AccountConfig("iptel.org","mein_user_name","geh eimes_passwort") acc_cb = SipAccountCallback() acc = lib.create_account(acc_cfg, cb=acc_cb)

    Anbei mein sip.py - ich habe sonst nichts geändert, habe allerdings (wie schon erwähnt) alle GPIO-Sachen entfernt (ich habe die RasPi noch nicht verkabelt). Im Moment ist meine Pi also nur eine reine Gegensprechanlage, die ich anrufen kann.

    Für alle, die das nachbasteln wollen, hier meine Vorgehensweise - Meine Ausgangsbasis: Keine Ahnung von SIP oder Python, wenig Ahnung von Linux-Administration. Ich kann mich aber durchwurschteln, und "Shell" ist keine Tankstelle für mich...

    Zum Testen der ganzen SIP-Sachen habe ich mich übrigens nicht auf die Loxone verlassen (kann ja nicht ständig rebooten, müsste ich erst meine Frau aus der Wohnung schaffen :-). Ich habe mir daher zwei SIP-Accounts hergerichtet (einen bei IPTEL.ORG, einen bei mir lokal auf der FritzBox). Ich habe dann erstmal zwischen meinem iPhone (SIP-App "Linphone") und meinem MacBook telefoniert (ebenfalls sehr simple App "Telefon", beide SIP-Accounts eingerichtet). Als das funktioniert hat (Ich hatte zuvor keine Ahnung von SIP), habe ich der Loxone erklärt, dass die Türsteuerung auf den IPTEL.ORG-Account anrufen soll (der Fritz-Box-Zugang ist von außen nicht erreichbar).
    Es war dann sofort möglich aus der LoxApp den Mac anzurufen (Jetzt hätte ich eigentlich aufhören können und den Mac vor die Haustüre stellen, oder ?

    Erst jetzt habe ich mich mit der PI beschäftigt, die Anleitung und die Scripts aus dem Ursprungsposting haben bei mir auf einer frisch aufgesetzten PI einwandfrei funktioniert. Bei wem das nicht klappt: einfach mal formattieren und Raspbian 2014-12-24 installieren (Raspberry Pi [Part 1]: Basic setup without any cables (headless) | self.li - blog by Peter Legierski)

    Die USB-Sachen habe ich übrigens mit Hilfe dieser Anleitung Using a USB Audio Device With a Raspberry Pi - Tuts+ Computer Skills Article gemacht, ich habe nicht die Änderung auf USB1.1 aus dem Original-Script nicht ausgeführt. Ich habe überhaupt jeden Schritt aus den Scripts step-by-step in der Shell gemacht, und nicht das ganze Script auf einmal ausgeführt.

    Nachdem beim Start des Services immer "SIP Intercom terminated!" gekommen ist, habe ich im Script den DEBUG-Level geändert, was mich nicht schlauer machte. Mein Gedanke war dann, dass die fehlende Hardware (ich hab ja nichts an den GPIOs angehängt), den Reset der Schleife auslösen könnte. Also habe ich alle GPIO-Sachen auskommentiert. Siehe da, nun funktionierte das Ding...
    Jedenfalls konnte ich dann vom Mac aus mit der Adresse irgendwas@lokale-raspi-IP die PI anrufen und sie ist drangegangen!
    Ich habe dann die PJSIP-Dokus (Python_SIP/Accounts – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones) gelesen, ein wenig rumprobiert, und schließlich ist das rausgekommen, was im Anhang ist.
    Das reicht für mich erstmal, jetzt hab ich Zeit die GPIO-Sachen zu lernen, und danach kommt der Gehäusebau...

    Was hab ich gelernt? SIP ist gar nicht soo schwierig. Python ist - ohne Vorahnung - schei... zu debuggen (wie bekomme ich die Print-Ausgabe aus dem Script auf den Bildschirm?). Hardwarebasteln ist da eher meins...

    Sorry für das lange Post :-)

    sip.py.zip

    LG MRM
  • Gast

    #2
    Hallo Michael,

    wenn ich das richtig verstehe ist das eigentlich genau das was ich suche, keine GPIO's sondern nur ein simpler SIP Client der meine Anrufe von der Loxone App (im eigenen W-Lan und auch extern) automatisch annimmt wenn ich ein Trigger Signal beim Türsteuerungs-Baustein kriege.

    Allerdings ist mir nicht ganz klar wie ich die "sip.py" Datei jetzt verwenden soll.
    Du sagst hier, dass der Raspi genau so zu installieren ist wie im Teil 1 deiner Anleitung, nur mit dem Unterschied, dass die sip.py aus Teil 3 deiner Anleitung zu verwenden ist.

    Heißt das, dass ich die "sip_intercom.zip" Datei gar nicht benötige für diese Anwendung?
    Wenn nicht, dann müsste der Abschnitt aus "Teil 1" in dem du "den Service installieren" beschreibst irgendwie angepasst werden weil ja eine Datei fehlt, oder?

    ...sorry für die wahrscheinlich blöden Fragen, aber ich bin da nicht sehr fit auf dem Gebiet ;-)

    LG
    Chris
    Zuletzt geändert von Gast; 11.11.2015, 20:47.

    Kommentar

    • Michael Rene Maurer
      LoxBus Spammer
      • 25.08.2015
      • 221

      #3
      Hi Chris,
      Schau ich mir heute noch an!
      LG MRM

      Kommentar

      • Gast

        #4
        Super – vielen Dank!!
        Hab zwar schon einige kleinere Dinge mit dem Raspi umgesetzt aber das SIP Zeugs ist mir einfach zu hoch, da brauch ich echt eine Anleitung für 3-jährige ;-)

        Kommentar

        • Gast

          #5
          DANKEEEEEE Michael, ich bin begeistert, es funktioniert intern sowie auch extern genau so wie es soll.

          Großes Lob an dich und deine Arbeit!!!

          Kommentar


          • Michael Rene Maurer
            Michael Rene Maurer kommentierte
            Kommentar bearbeiten
            Bitte, muss auch sagen, das auch ich Hilfe hatte!...
        • Gast

          #6
          Ich versuche die Funktion zu erweitern aber weiß noch nicht wie. Vielleicht kann jemand helfen.
          Es funktioniert alles wie beschrieben ohne Probleme.
          Jetzt würde ich gerne, dass wenn die Loxone mit dem Pi sprechen tut, auch noch ein weiterer Teilnehmen mitsprechen kann, indem er den Pi auch anrufen tut und automatisch zu dem bestehenden Gespräch hinzugefügt wird. Quasi eine Dreierkonferenz.
          Hat jemand eine Idee wie?

          Kommentar

          • MarcusS
            LoxBus Spammer
            • 25.08.2015
            • 389

            #7
            Ich bin ja auch gerade dabei das Projekt nachzubauen. Eins verstehe ich aber nicht und hoffe auf ein wenig erhellende Worte.

            ​Die Basis Installation verwendet einen internen Account. Das bedeutet, dass der Klingeltaster auf dem Raspberry eine Aktion ausführt. Der Code der sip.py baut in diesem Fall eine direkt Verbindung zur Loxone auf. IP anpassen reicht also.

            Wie kann ich mir denn jetzt die Integration von IPTEL, Linphone oder sonstigen öffentlich SIP Anbietern vorstellen? Ich checke nicht wirklich wie sowas im Zusammensoeil mit der Loxone funktioniert. Meinem Verständnis nach bekomme ich dann die Verbindung zu meiner SIP App wie Linphone. Aber von da aus habe ich doch keine Chance mehr den Türbaustein anzusprechen, oder?

            DoorPi DIY Türsprechstelle how to

            Kommentar


            • tyke
              tyke kommentierte
              Kommentar bearbeiten
              Du brauchst keinen Account, wenn du im internen Netzwerk kommunizieren willst. Wenn du die Klingeltaste drückst, dann schickt der Raspberry ein UDP Kommando an den Miniserver. Der UDP Eingangsverbinder hängt am Türbaustein. Der Miniserver ruft darauf hin den Raspberry an, der wiederum automatisch das Gespräch annimmt.

              Mit Linphone kannst du das testen, wenn du keinen Miniserver hast. Dann rufst du damit einfach den Miniserver an und der hebt ab. Irgenwelche Accounts brauchst du meines Wissens nur, wenn du unterwegs auf deinem Handy mit der Türstation sprechen willst.

            • MarcusS
              MarcusS kommentierte
              Kommentar bearbeiten
              aha...d.h die Initialisierung kommt per UDP zustande und dann meldet sich der Miniserver am Raspi. Dieser nimmt dann das Gespräch an bzw. kommuniziert wiederum mit dem Türbaustein. Dort kann ich ja dann das Gespräch annehmen oder ablehnen. Je nachdem wer von der Tür steht.

              Auf dem Raspi (also genau gesagt in den php scripten) definiere ich dann optional einen echten SIP Account. Wenn ich dort z. B. einen Linphone Account angebe, dann baut der Raspi eine SIP Verbindung zu diesem Anbieter auf. Ich kann also zusätzlich zum Türbaustein noch per Linphone App den Call annehmen. Es geht also beides. App und Linphone kriegen einen Anruf. Korrekt verstanden?

              So ließe sich also auch ein Fritzfon C4 anbinden. Dann ließe sich das Telefon als mobile Gegensprechstelle nutzen. Das wiederum würde dann aber den Linphone Account ausschließen, da ich ja entweder nur den Linphone oder den Fritzbox Account hinterlegen kann. So verstehe ich es aktuell jedenfalls.
          • Michael Rene Maurer
            LoxBus Spammer
            • 25.08.2015
            • 221

            #8
            Hallo Leute!
            Bei meinem Doorberry sieht das sip.py so aus

            Code:
            #!/usr/bin/python
            
            # Module:      SIP Intercom Piface Version
            # Version:     1.1
            #
            # Author:      Michael Rene Maurer v1.1
            # Date:        2015-02-02
            # Description: SIP Intercom on RPI using PIFace and PJSIP to communicate with Loxone miniserver's
            #           
            # Copyright:   Copyright (C) 2014 Christoph Vorhauer <christoph.vorhauer@gmail.com>
            #
            # Credits:     PJSIP/PJSUA:
            #              Inspired by the call.py sample of the PSJIP distribution, http://www.pjsip.org
            #
            #              Raspberry Pi as Intercom:
            #              Inspired by the door-berry project from Marco Pozzato, http://marpoz.blogspot.de
            #              and https://github.com/mpodroid/door-berry.
            #
            #              Raspberry Pi to Loxone:
            #              Inspired by SIP Intercom project from Michael Maurer <mr.maurer14@gmail.com>
            
            import pjsua as pj
            from time import sleep
            import RPi.GPIO as GPIO
            import pifacedigitalio
            import threading
            import socket
            import atexit
            import logging
            
            # global variables
            lib = None
            acc = None
            transport = None
            pfd = None
            listener = None
            outSocket = None
            current_call = None
            
            LOG_LEVEL = 3
            LOG_FILE = "/home/pi/sip_intercom/sip.log"
            LOX_UDP_OUT_PORT=8112 # port for outgoing commands
            LOX_SERVER="192.168.1.102" # ip address of loxone server
            
            # Logging callback
            def log_cb(level, str, len):
                logging.debug(str)
            
                
            # Callback to receive events from account
            class SipAccountCallback(pj.AccountCallback):
                sem = None
                  
                def __init__(self, account=None):
                    pj.AccountCallback.__init__(self, account)
            
                # Notification on incoming call
                def on_incoming_call(self, call):
                    global current_call
                    if current_call:
                        call.answer(486, "Busy")
                        return
            
                    print "Incoming call from ", call.info().remote_uri
                    logging.debug("Incoming call from ", call.info().remote_uri)
                    current_call = call
            
                    call_cb = SipCallCallback(current_call)
                    current_call.set_callback(call_cb)
                    current_call.answer(200)
                    
                def wait(self):
                self.sem = threading.Semaphore(0)
                self.sem.acquire()
            
                def on_reg_state(self):
                    logging.debug("on_reg_state")
                logging.debug("Status %d",self.account.info().reg_status)
                if self.sem:
                    if self.account.info().reg_status >= 200:
                    self.sem.release()
                    
                    
            
            
            # Callback to receive events from Call
            class SipCallCallback(pj.CallCallback):
            
                def __init__(self, call=None):
                    pj.CallCallback.__init__(self, call)
            
                # Notification when call state has changed
                def on_state(self):
                    global current_call
                    logging.debug("Call for %s", self.call.info().uri)        
                    logging.debug("    from %s", self.call.info().remote_uri)        
                    logging.debug("is %s", self.call.info().state_text)
                    logging.debug("last code = %d", self.call.info().last_code)
                    logging.debug("(%s)", self.call.info().last_reason)
            
                    if self.call.info().state == pj.CallState.DISCONNECTED:
                        current_call = None
                        print 'Current call is', current_call
            
                # Notification when call's media state has changed.
                def on_media_state(self):
                    if self.call.info().media_state == pj.MediaState.ACTIVE:
                        # Connect the call to sound device
                        call_slot = self.call.info().conf_slot
                        pj.Lib.instance().conf_connect(call_slot, 0)
                        pj.Lib.instance().conf_connect(0, call_slot)
                        print "Media is now active"
                    else:
                        print "Media is inactive"
            
            
            # SIP Intercom listener class
            class SipIntercom:
            
                # Constructor
                def __init__(self):
                    # Initialize logging
                    logging.basicConfig(filename='/home/pi/sip_intercom/sip.log', level=logging.DEBUG, format='%(asctime)s %(levelname)s %(threadName)-10s %(message)s')
                    logging.debug("initialized!")
                    
                # Actions for Button listener
                def btn_action(tmp, event):
                    global outSocket
                    try:
                        # activate socket
                        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                        if (event.pin_num == 0):
                            s.sendto("? #10 ?", (LOX_SERVER, LOX_UDP_OUT_PORT))
                            logging.debug("light pushed!")
                        elif (event.pin_num == 1):
                            if not (current_call):
                                s.sendto("? #20 ?", (LOX_SERVER, LOX_UDP_OUT_PORT))
                                logging.debug("bell pushed!")
                        elif (event.pin_num == 2):
                            if not (current_call):
                                s.sendto("? #30 ?", (LOX_SERVER, LOX_UDP_OUT_PORT))
                                logging.debug("post incoming!")
                        elif (event.pin_num == 3):
                            if not (current_call):
                                s.sendto("? #40 ?", (LOX_SERVER, LOX_UDP_OUT_PORT))
                                logging.debug("post obtained!")
            
                    except pj.Error, e:    
                    logging.error("Exception: " + str(e))
            
                # Run SIP client and react to GPIO inputs by sending UDP telegrams
                def run(self):
                    # Globals
                    global lib
                    global transport
                    global acc
                    global pfd
                    global listener
                    
                    logging.debug("run!")        
                    
                    # Create library instance
                    lib = pj.Lib()
            
                    try:
                        # Init library with default config and some customized logging config.
                        lib.init(log_cfg=pj.LogConfig(level=LOG_LEVEL, callback=log_cb))
            
                        # Create UDP transport which listens port 5060
                        transport = lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(5060))
                        print "\nListening on", transport.info().host,
                        print "port", transport.info().port, "\n"
            
                        # Start the library
                        lib.start()
            
                        # Create local account
                        # acc = lib.create_account_for_transport(transport, cb=SipAccountCallback())
                        acc_cfg = pj.AccountConfig("192.168.1.254","621","Loxone2015")
                        acc_cb = SipAccountCallback()
                        acc = lib.create_account(acc_cfg, cb=acc_cb)
                        acc_cb.wait()            
            
                        # Local SIP information
                        # my_sip_uri = "sip:" + transport.info().host + ":" + str(transport.info().port)
            
                        # init piface
                        pifacedigitalio.init()
                        pfd = pifacedigitalio.PiFaceDigital()
                        # turn on led to show that system is running
                        pfd.leds[7].turn_on()
            
                        # init button listener for udp transfers
                        listener = pifacedigitalio.InputEventListener(chip=pfd)
                        listener.register(0, pifacedigitalio.IODIR_RISING_EDGE, self.btn_action)
                        listener.register(1, pifacedigitalio.IODIR_FALLING_EDGE, self.btn_action)
                        listener.register(2, pifacedigitalio.IODIR_RISING_EDGE, self.btn_action)
                        listener.register(3, pifacedigitalio.IODIR_RISING_EDGE, self.btn_action)
                        listener.activate()
                        
                        logging.info("SIP Intercom started!")
                        logging.info("SIP address: " + my_sip_uri)
                        logging.debug("pjsua started")
            
                        # Menu loop
                        while True:
                            # This button quits the loop and exits the SIP listener
                            if (pfd.input_pins[3].value == 1):
                                break
                            sleep(10)
            
                        # Cleanup resources before leaving the function
                        shutdown()
                    except pj.Error, e:
                        logging.error("Exception: " + str(e))
                        lib.destroy()
                        lib = None
            
            
            # Cleanup resources on service shutdown
            def shutdown():
                # Globals
                global lib
                global transport
                global acc
                global pfd
                global listener
                global outSocket
            
                try:
                    logging.debug("start destruction...")
            
                    if (pfd):
                        pfd.leds[7].turn_off()
                    pifacedigitalio.deinit()
                    if (listener):
                        listener.deactivate()
                    if (outSocket):
                        outSocket.close()
                    listener = None
                    outSocket = None
                    # PJSIP
                    transport = None
                    if acc:
                        acc.delete()
                    acc = None
                    if lib:
                        lib.destroy()
                    lib = None
            
                    logging.info("SIP Intercom terminated!")
                    logging.debug("destroyed")
                except pj.Error, e:
                    logging.error("Exception: " + str(e))
                    lib.destroy()
                    lib = None
            
            
            atexit.register(shutdown)
            Dieser Code funktioniert jetzt schon seit 1-1/2 Jahren!

            Wichtig dabei sind nur 2 Zeilen!

            Code:
             # Create local account
                        [B][COLOR=#FFFF00]# acc = lib.create_account_for_transport(transport, cb=SipAccountCallback())[/COLOR][/B]
                        [COLOR=#FF0000]acc_cfg = pj.AccountConfig("192.168.1.254","621","Loxone2015")[/COLOR]
                        acc_cb = SipAccountCallback()
                        acc = lib.create_account(acc_cfg, cb=acc_cb)
                        acc_cb.wait()
            Die gelbe Zeile benützt ihr, wenn ihr den Doorberry nut INTERN NUTZT!!!!

            Die Rote Zeile benützt ihr wenn ihr von Extern auf den Raspberry kommunizieren wollt! "192.168.1.254 ist meine Fritzbox" - "621 ist mein Telefoniegerät in der Fritzbox(IP-Telefon anlegen)" - "und Loxone 2015 das Telefoniegerät in der Fitzbox"

            Ich habe bei Ip-Tel.org einen Account angelegt und diesen in der Fitzbox unter Telefonie eine Neue Rufnummer angelegt, dort sind die zugangsdaten von Iptel dann drinnen!

            Bei weiteren Fragen einfach melden!


            LG MRM

            Kommentar


            • MarcusS
              MarcusS kommentierte
              Kommentar bearbeiten
              Jetzt muss ich nochmal fragen. Du schreibst: &quot;621 ist mein Telefoniegerät in der Fritzbox(IP-Telefon anlegen)&quot; - &quot;und Loxone 2015 das Telefoniegerät in der Fitzbox&quot;

              Du hast zwei IP Telefone angelegt?

            • Michael Rene Maurer
              Michael Rene Maurer kommentierte
              Kommentar bearbeiten
              Hi, sorry Loxone2015 ist das Passwort in der Fritzbox für das Telefonigerät 621...

            • MarcusS
              MarcusS kommentierte
              Kommentar bearbeiten
              Hi Michael,

              danke für deine Erklärungen. Aber egal was ich mache, ich laufe auf Fehler. Keiner der in den How Tos beschriebenen Schritte - ich betone keiner! - ließ sich so umsetzen. Ich fummle jetzt schon 2 Wochen immer wieder an der Umsetzung rum und mich verlässt langsam die Motivation. Entweder habe ich übelstes Pech oder es Bedarf noch einiger dringender Hinweise in den HowTos für dummies wie mich.

              Bsp., Wenn ich das letzte Script von dir so übernehme, geht erstmal nix. Python meldet Einrückungs-Fehler im Script (P. S. Ich kenne Python nicht wirklich. Aber was ist das denn für ein sch...? Skripte die nur bei der richtigen Einrückung laufen? Hä? Ich komme aus der Windows Welt, da zählt sowas nicht zur syntax). Mit IDLE- > Format -> untabbify gefixt.

              Dann gibt es Probleme, dass das Objekt &quot;self&quot; unbekannt ist. Hmm. Hab ich irgnoriert, läuft anscheinend trotzdem. Bei falschen Einrückungen sich weigern und bei unbekannten Objekten laufen...aaaja..:-)

              Dann schmiert das Script immer dann ab (Service terminated) wenn es acc.wait() aufruft. Nehme ich das raus, dann läuft das Script. Aber macht der Service noch das was er soll? nämlich warten auf einen Sip Call

              Dennoch kommt kein &quot;Gespräch&quot; mit einem anderen Teilnehmer als der Loxone App zustande. Ich habe in der Fritz.box ein IP Tel angelegt, geht nicht bzw. reagiert überhaupt nicht. Dann habe ich eine Türsprechstelle angelegt -> geht ebenfalls nicht.

              Dann habe ich mir einen Linphone Account besorgt und die Credentials in der sip.py eingetragen. Geht auch nicht. Hinterlege ich die Linphone Daten in der Fritzbox (Rufnummer hinzufügen) und leite das auf mein internes C4 Fritz!Fon um und rufe mich selbst von einem externen Anschluss (IPTEL.org) an, dann klingeln meine Telefone nicht. Ich frage mich wie das auch funktionieren soll. Wenn ich jetzt die GPIOs auskommentiere, dann habe ich ja beim Klingeln keinen UDP Trigger mehr. Wie also soll die Verbindung von einem Sip Clienten hergestellt werden?

              Könntest du eventuell mal ein paar Screenshots von der Config am Türbaustein, ggf deiner Fritzbox oder was auch immer zum Verständnis notwendig ist hier posten? Gerne auch mir erstmal persönlich per Mail/PN, Ich schreiben dann gerne eine Zusammenfassung.
          • Michael Rene Maurer
            LoxBus Spammer
            • 25.08.2015
            • 221

            #9
            Ich kann dir anbieten, mir eine Sd zukommen zu lassen und schieb dir das Image drauf!
            Welchen Rpi hast du denn, denn das Script läuft bei mir seit 2 Jahren.... Und ich hab ein Piface... Also ich nutze keine gpios, das file vom Teil 1 ist nur mit gpio...
            LG MRM

            Kommentar

            • MarcusS
              LoxBus Spammer
              • 25.08.2015
              • 389

              #10
              Das wäre schon mal super. Ich lasse dir auch gerne einen Link zu einem Server per PN zukommen, wo du das image dann hochladen kannst. Wie ist es dir lieber? Post oder Upload? Ich habe übrigens den Raspberry Pi 2 model B

              Könntest du auch mal deine Loxone Einstellung für den Türbaustein und ggf. die Einstellungen in der Fritzbox zeigen? Anonymisiert ohne Kennwörter selbstverständlich :-)

              Anything helps....
              Danke
              DoorPi DIY Türsprechstelle how to

              Kommentar


              • Michael Rene Maurer
                Michael Rene Maurer kommentierte
                Kommentar bearbeiten
                Ok, das erklärt jetzt einiges!!! Mein Raspberry ist ein Modell Pi Modell 2, also noch der mit 2 USB Schnittstellen! Deshalb funktioniert das nicht bei dir!
                Da muss man noch einiges kompilieren das er auf Modell Pi2 Modell läuft!!!!

                Schick mir ne PN...
            • Michael Rene Maurer
              LoxBus Spammer
              • 25.08.2015
              • 221

              #11
              Hallo Marcus!

              anbei

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Fritzbox 1.PNG
Ansichten: 788
Größe: 15,8 KB
ID: 29033 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Fritzbox 4.PNG
Ansichten: 810
Größe: 16,9 KB
ID: 29034 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Fritzbox 3.PNG
Ansichten: 792
Größe: 20,7 KB
ID: 29035 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Fritzbox 2.PNG
Ansichten: 801
Größe: 40,8 KB
ID: 29036 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Intercom_Loxone.PNG
Ansichten: 804
Größe: 93,2 KB
ID: 29037
              LG MRM

              Kommentar

              • MarcusS
                LoxBus Spammer
                • 25.08.2015
                • 389

                #12
                Hat noch irgend jemand eine Idee, warum bei mir keine Anrufe auf die fritz.box bzw auf meinen IPTEl Account gehen? Ich kriege es nur hin zwischen Türbaustein und dem Raspberry. Alles andere bleibt stumm.

                Das Image von Michael kriege ich leider auf dem eigens dafür angeschafften Raspi Model B nicht ans Laufen. Bleibt beim booten mir einem Fehler und Kernel Panic stehen.

                *** ist natürlich nur ein Platzhalter fürdas Passwort in der fritz.box
                192.168.2.1 ist meine FB

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Sippy.PNG
Ansichten: 795
Größe: 22,1 KB
ID: 29667



                In der Config habe ich den Raspi Hostname:"Doorberry" mit der IP 192.168.2.50 als interen Host hinterlegt
                "

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Türbaustein.PNG
Ansichten: 822
Größe: 28,3 KB
ID: 29668


                dann habe ich eine IP Rufnummer für IPTel.org in der Fb angelegt. die 41.... ist meine Nummer und ist auch von einem zweiten Account (linphone) zu erreichen

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Rufnummer.PNG
Ansichten: 763
Größe: 35,6 KB
ID: 29681

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: RufnummerConfig.PNG
Ansichten: 757
Größe: 52,9 KB
ID: 29670
                Zuletzt geändert von MarcusS; 20.02.2016, 23:30.
                DoorPi DIY Türsprechstelle how to

                Kommentar

                • MarcusS
                  LoxBus Spammer
                  • 25.08.2015
                  • 389

                  #13
                  Und ein Telefon eingerichtet


                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IpTelefonConfig2.PNG
Ansichten: 749
Größe: 28,1 KB
ID: 29676
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IpTelefonConfig.PNG
Ansichten: 723
Größe: 26,1 KB
ID: 29677
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IpTelefon1.PNG
Ansichten: 781
Größe: 38,8 KB
ID: 29678
                  Zuletzt geändert von MarcusS; 20.02.2016, 22:39.
                  DoorPi DIY Türsprechstelle how to

                  Kommentar

                  • Michael Rene Maurer
                    LoxBus Spammer
                    • 25.08.2015
                    • 221

                    #14
                    Hallo Marcus,

                    Versuch mal eine NEUE Interne Rufnummer mit 621 anzulegen! Seit dem letzten Update von AVM an der Fritzbox ging bei mir die 620 nicht mehr!
                    Und bei eigene Rufnummer sollte bei Rufnummer nur die ............ ohne .iptel.org stehen!
                    Bei Rufnummer für die anmeldung bei iptel muss auch nur die Rufnummer ohne .iptel.org stehen!

                    LG MRM

                    Kommentar

                    • MarcusS
                      LoxBus Spammer
                      • 25.08.2015
                      • 389

                      #15
                      Das wars leider auch nicht. Ich habe gestern noch mal gefühlte 35 Konstellationen durchgespielt und kann machen was ich will. Das Grundproblem ist nach wie vor, dass alles klappt bis auf den externen Anruf. Rufe ich die IPTEL Nummer von eiem SIP Caller an, dann nimmt mein Raspi auch brav das Gespräch ab. Denn die Iptel Nummer ist in meiner fritz.box eingerichtet und verweist intern auf den Raspi. Dort wartet der PJSUA Service wartet auf einen kommenden Anruf über die interne Nummer (jetzt 621 bei mir, war vorher 620 in den oben stehenden Screenshots). Soweit so gut. Ich hätte jetzt aber erwartet, dass der Türbaustein im Falle des Klingelns auch die als extern hinterlegte SIP-Nummer (in meinem Fall IPTEL.org) automatisch anruft. Macht sie aber nicht. ​Daher habe ich es jetzt anders gelöst.

                      Auf meinem Handy ist eine Push App (Pushalot) eingerichtet. Klingelt es, wird auf dem Raspi mittels eines Curl Befehls der Pushalot Service angesprochen. In der Pushnachricht ist meine iptel- SIP-Nummer und ein Bild von der Kamera hinterlegt. Ich tippe dann in der Notification auf meinem Handy auf die SIP URI und dann startet meine IP Telefon App und ruft meine Türsprechanlage an.

                      P.S. Funktioniert die Anbindung des IPTEL Accounts im Türbaustein unter extern bei irgend jemandem?
                      Zuletzt geändert von MarcusS; 22.02.2016, 11:12.
                      DoorPi DIY Türsprechstelle how to

                      Kommentar

                      Lädt...