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
Kommentar