Raspi Asterisk

showa

Neuer User
Mitglied seit
14 Mrz 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hallo Experten,
vorweg, ich bin auf dem Gebiet Voip und Asterisk absoluter Einsteiger.
Habe die Türklingel von heise nachgebaut siehe link https://www.heise.de/select/ct/2017/17/1502995489716437

Änderungen klingel.call Datei.

Vorher:
Channel: SIP/623/**9
Application: Playback
WaitTime:10
Data: /var/lib/asterisk/sounds/custom/play

Geändert:
Channel: SIP/623/0171xxxxxxx
Callerid: <0171xxxxxxxx>
Application: Playback

Datei Abgespeichert, Anruf getestet Funktioniert, die Nummer und der Name wird auch angezeigt.
Jetzt mein Problem, nach Neustart vom Raspberry ist die Datei wie Vorher, meine Änderungen sind nicht mehr vorhanden.
Es wäre super, wenn einer mir da helfen könnte.

Besten Dank schon Mal im Voraus...
Roland
 
Moinsen


Das ist jetzt, gelinde gesagt, etwas ungenau formuliert, denn...
Wenn ein Callfile in das Spoolverzeichnis (/var/spool/asterisk/outgoing) verschoben wurde und Asterisk das bei nächster Gelegenheit abarbeitet, dann wird es einfach gelöscht.
Siehe: http://das-asterisk-buch.de/1.6/call-file.html
...es sei denn, du ergänzt es noch mit: Archive: yes
Dann findest du die abgearbeiteten Callfiles in: /var/spool/asterisk/outgoing_done
...mit einer extra Zeile die besagt obs geklappt hat oder nicht: Status: <Expired|Completed|Failed>
 
Hallo Koyaanisqatsi
wie gesagt absoluter Laie bei Asterisk.

Die klingel.call Datei sowie die klingel.py Datei liegt bei mir unter dem Pfad /home/pi/
Ich ändere die klingel.call Datei wie oben beschrieben.
Wenn ich keinen Neustart durchführe wird die Nummer in meinem Handy angezeigt die ich in der Fritz Box hinterlegt habe.
Ich verstehe nicht wer die klingel.call wieder überschreibt.

Besten Dank schon Mal im Voraus...
Roland
 
spontane Vermutung (ohne den Artikel genau gelesen zu haben): kann es sein, dass das verwendete Image Teile des Systems auf eine RAM-Disk auslagert, um die Anzahl der Schreibzugriffe auf die Speicherkarte zu minimieren?
 
hatte meine Klingel auch mal über Raspberry und Asterisk weiter geleitet,

hab dazu aber keine .call Datei verwendet, sondern im Py-Script den Anruf mit
os.system(...) direkt gestartet!

Code:
def voip():
    try:
        os.system(asterisk -r -x 'console dial 698')
        time.sleep(5)
        os.system('asterisk -r -x "console hangup"')
        time.sleep(2)
    except:
        pass

per Taster funktioniert das immer noch, nur bekomme ich kein richtiges Signal aus meiner Video Sprechanlage zum ansteuern des Raspberry!
 
Ich verstehe nicht wer die klingel.call wieder überschreibt.
Ich vermute mal, dass das Callfile vom Pythonskript erstellt wird.
...welches mit crond im Hintergrund rumrödelt.

Da ich das Skript nicht kenne, ist das natürlich mal wieder nur geraten.

Warum fragst du eigentlich nicht die, die das vertreiben?

@ws65 - Meinst du via SIP/RTP oder was ganz anderes?
...wenn deine Video Sprechanlage SIP URI Calls kann, ist Asterisk schon die richtige Adresse.
...erst recht, wenn es um SIP-Video mit H.263/H.264 Codec geht.
 
ne, da ist nix mit SIP/RTP oder ähnliches, ist eine ganz einfache Anlage von Anykam mit 2 Draht Bus-System, laut Schaltbild soll man an den Monitor eine externe Klingel anschliessen können, aber da kommt nichts raus! villeicht defekt?

klingel-anschlussplan.jpg

Bild gemäß Boardregeln geschrumpft by stoney
 
Zuletzt bearbeitet von einem Moderator:
:) Das bedeutet ja, mit deinem Videomonitor kannste noch 1% der kosmischen Hintergrundstrahlung empfangen. Respekt.
Der BUS sieht aus wie eine immobile Lüsterklemme. Wenn die mal nicht isoliert von den Leiterbahnen der Platine befestigt wurde :cool:
...ja dann musste wohl für GND/EXT-RING von linker Seite mit Kabelresten nen Bypass dahin legen
...und Jumper finde ich auch immer Klasse zum Raten: Warum ist die 6 ausgegraut?
 
Zuletzt bearbeitet:
alles schon versucht, Stecker von Computer Soundkabel passt da drauf!
aber alle Pin´s durch gemessen. Es kommt nirgendwo auch nicht das kleinste Signal raus!
vermute die Buchse ist nur eine Atrappe und nicht verdrahtet!
wenn man es genau wissen wollte müsste ich den Monitor auseinander nehmen,
aber hab das ganze erst mal auf gegeben.
ist sowieso nur spielerei und wird nicht wirlich gebraucht!
Obwohl mit meiner vorherigen Klingel war schon Interessanz, der Raspbery kann ja noch mehr als anrufen.
zB. hat er mir beim klingenl 3 Bilder von meiner IP-Kamera aufgenommen.
hat man immer gesehen wer geklingelt hat:)
 
Eine Himbeere mit Asterisk ist schon was Feines, dazu noch ne Prise Apache und am Besten auf nem debianbasierten Open Source Media Center aka Kodi.
...ich schweife ab.

Noch eine Möglichkeit einen Call mit Asterisk zu vermitteln...
Rich (BBCode):
channel originate SIP/1000 Application Dial SIP/100@osmc
Das verbindet einen User/Peer (klingelt zuerst) mit der Extension @ Kontextname
Kontextname oder Gateway

Eine Vermittlung über authorisierten Peer zum FRITZ!Box Anrufbeantworter sieht bei mir so aus:
Rich (BBCode):
channel originate SIP/1000 Application Dial SIP/**600@fbfgateway0
Also bei dir...
Rich (BBCode):
channel originate SIP/**9@623 Application Playback demo-congrats
( Von solchen internen Anrufen ist natürlich im Webinterface einer FRITZ!Box nichts zu sehen )

Ach, Blau vergessen :cool: Das ist die Technologie Local/SIP/PJSIP/IAX2
 
Zuletzt bearbeitet:
ja, der Raspberry ist schon ein schönes Spielzeug.
leider bin ich nicht ganz so fit mit meinen Programmierkentnissen,
alles nur zusammen geklaut und dann für mich angepasst, das schaffe ich noch!
mein Schwerpunkt liegt da aber eher beim schalten mit Php oder auch Asterisk kann bei Anruf fast alle meine Schalter schalten!
Problem ist bei mir nur die vielen unterschiedlichen Schalter, aber die meisten gehen, wenn auch manchmal über Umwege!
Herausforderung ist da auch das ansprechen der Api Schnittstellen bei W-Lan Schalter, Bosch Controller, Hue Bridge, Mediola Gateway, usw.
 
Das kennen wir ja auch von SaS und das unsägliche Quoten ( jonglieren mit Hochkommata und Gänsefüßchen ) beim PHP - Besonders bei Json nochmal eins drauf, damit wird Kodi ferngesteuert/abgefragt.
...mit Lua hab ich gute Erfahrung ;)

Da kannste fast alles was sich als widerspänstig erweist in doppelte eckige Klammern packen und dann wird es mit allem was drinne ist ( Whitespace/Zeilenvorschübe etc. ) weiterhin genauso angeboten.
Nach dem Motto...
Code:
koyanisquatschi=[[Hier drinne kann Text oder irgend ein Code in irgendeiner Sprache mit
Zeilenumbrüchen und Leerzeichen/Sonderzeichen @ $ # 
und auch Lua Code höchstselbst abgebunkert werden.]]
Viele Programme, VLC zum Beispiel, bieten auch für Plugins/Addons eine Lua-Schnittstelle.
 
Zuletzt bearbeitet:
ja, SaS war bei mir der Anfang vom Programmieren, schade das man da nichts mehr von hört.
SaS läuft auch heute noch immer im Hintergrund mit, obwohl ich da einiges abgeändert habe.
Die Sripts holen sich die Daten zum schalten alle aus einer Datenbank, schreiben Status in die Datenbank.
Paralell dazu läuft mein eigenes PHP-Programm welche auf die gleichen Daten zugreift!
genialste Erfindung ist dabei der sashelper.
einfach Befehle zwischen verschiedenen Rechner austauschen, egal ob Curl, Python, Php oder sh, alles ist möglich!
 
Hallo Koyaanisqatsi

Du hattest recht die klingel.call Datei wird im klingel.py erstellt.
Geändert sipziel = **9 geändert in sipziel= 0171xxxxxxxx , Anruf kommt jetzt zum Handy aber die Rufnummer wird nicht angezeigt.
Ist es möglich dass die Rufnummer angezeigt wird.
Wenn ich diesen Aufruf Callerid: <0171xxxxxxx> in das in die klingel.call eintrage wird die Nummer Angezeigt, aber nach Neustart wird sie ja wieder Überschrieben.
Wie könnte man den Aufruf Callerid: <0171xxxxxxx>: in die klingel.py eintragen.

Anhang: klingel.py


Besten Dank schon Mal im Voraus...
Roland
 

Anhänge

  • klingel.txt
    1.2 KB · Aufrufe: 5
Bei #Einstellungen erstmal callerid definieren und dann musste dass noch bei der callfile Definition (eins tiefer) einfügen.
 
Hallo Koyaanisqatsi

Habe leider keine Programmierkenntnisse könntest du mir bitte die Änderung zeigen wie ich die Einfügen muss.

#Einstellungen
klingel_gpio = 4 #GPIO, der mit der Schaltung verbunden ist
callfilepfad = "/home/pi/klingel.call" #Dateipfad in dem das Script die .call-Datei ablegt
sipkanal = "623" #Name des SIP-Kanals (in eckigen Klammern in der SIP.conf)
sipziel = "0171xxxxxxx" #Ziel des Anrufes (Beispiel: **9 als Rundruf der Fritz!Box)
Callerid: ????????
sipwartezeit = "12" #Wartezeit bevor wieder aufgelegt wird

#Hier wird die .call-Datei zusammengebaut und abgespeichert

callfile = "Channel: SIP/" + sipkanal + "/" + sipziel + "\Callerid ????????\nApplication: Playback\nWaitTime:" + sipwartezeit + "\nData: /var/lib/asterisk/sounds/custom/play"



Besten Dank schon Mal im Voraus...
Roland
 
Probiere es mal so:

callerid = "0171xxxxxxx"

callfile = "Channel: SIP/" + sipkanal + "/" + sipziel + "\nCallerid: <" + callerid + ">\nApplication: Playback"

oder so, für dich bestimmt leichter verständlich:

callfile = "Channel: SIP/623/0171xxxxxxx\nCallerid: <0171xxxxxxx>\nApplication: Playback"
 
Zuletzt bearbeitet:
Hallo Eisbär(in)

Habe beides eingetragen

\nCallerid:<" + callerid +" >

Danke schön für die Info, jetzt wird der Namen angezeigt.

Besten Dank
Roland
 
Hat auch Funktioniert mit dem fehlenden Leerzeichen nach dem letzten +> !!!!!!!
Habe es jetzt so eingegeben wie du es geschrieben hast.

Danke schön nochmals
mfg
Roland
 
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.