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
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,339
Punkte für Reaktionen
457
Punkte
83
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>
 

showa

Neuer User
Mitglied seit
14 Mrz 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
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
 

jodost

Mitglied
Mitglied seit
29 Apr 2004
Beiträge
421
Punkte für Reaktionen
36
Punkte
28
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?
 

ws65

Aktives Mitglied
Mitglied seit
23 Jan 2012
Beiträge
1,140
Punkte für Reaktionen
18
Punkte
38
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!
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,339
Punkte für Reaktionen
457
Punkte
83
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.
 

ws65

Aktives Mitglied
Mitglied seit
23 Jan 2012
Beiträge
1,140
Punkte für Reaktionen
18
Punkte
38
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:

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,339
Punkte für Reaktionen
457
Punkte
83
:) 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:

ws65

Aktives Mitglied
Mitglied seit
23 Jan 2012
Beiträge
1,140
Punkte für Reaktionen
18
Punkte
38
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:)
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,339
Punkte für Reaktionen
457
Punkte
83
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/**[email protected]fbfgateway0
Also bei dir...
Rich (BBCode):
channel originate SIP/**[email protected] 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:

ws65

Aktives Mitglied
Mitglied seit
23 Jan 2012
Beiträge
1,140
Punkte für Reaktionen
18
Punkte
38
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.
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,339
Punkte für Reaktionen
457
Punkte
83
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:

ws65

Aktives Mitglied
Mitglied seit
23 Jan 2012
Beiträge
1,140
Punkte für Reaktionen
18
Punkte
38
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!
 

showa

Neuer User
Mitglied seit
14 Mrz 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
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

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,339
Punkte für Reaktionen
457
Punkte
83
Bei #Einstellungen erstmal callerid definieren und dann musste dass noch bei der callfile Definition (eins tiefer) einfügen.
 

showa

Neuer User
Mitglied seit
14 Mrz 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
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
 

eisbaerin

IPPF-Urgestein
Mitglied seit
29 Sep 2009
Beiträge
10,780
Punkte für Reaktionen
911
Punkte
113
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:

showa

Neuer User
Mitglied seit
14 Mrz 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hallo Eisbär(in)

Habe beides eingetragen

\nCallerid:<" + callerid +" >

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

Besten Dank
Roland
 

eisbaerin

IPPF-Urgestein
Mitglied seit
29 Sep 2009
Beiträge
10,780
Punkte für Reaktionen
911
Punkte
113

showa

Neuer User
Mitglied seit
14 Mrz 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
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
 
3CX

Statistik des Forums

Themen
237,889
Beiträge
2,102,392
Mitglieder
360,391
Neuestes Mitglied
Knut894

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

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.
oder via