Weckruf

Kleiner Tip zu run_wakeups und * auf dem Fli4L .

Nehmt die parameter hinter dem MV befehl raus uns ändert des Shell Typ von BASH nach SH da auf dem FLI Bash nicht vorhanden ist.

Gruß Martin
 
Hallo, habe gerade diese nette Wackruf Agi gefunden. Nur leider fehlt im Download der Version 0.04 die Datei run_wakeups.

Was steht denn da drin? Muss die Datei über Cron aufgerufen werden?

Kleine Anmerkung am Rande: Das die alten Versionen des Skripts nicht mehr zum Download angeboten werden, weil sie überholt sind ist löblich, aber zum nachvollziehen des Threads eher unübersichtlich.

Danke und Grüße aus Mönchengladbach,

Stefan
 
OK, habe nach ein wenig suchen über google eine funktionierende run_wakeups.sh gefunden, die auch über cron ausgeführt wird.

Sollte neben mir jemand die Datei suchen, poste ich sie hier mal rein:

Code:
#!/bin/bash

PENDING=/tmp/wakeups
OUTGOING=/var/spool/asterisk/outgoing
SLEEP=3

TIME=$(/bin/date +%H%M)

for fn in $PENDING/$TIME.*.call
do
 if test -r $fn
 then
  /bin/mv -f $fn $OUTGOING/
  echo "Das Kommando /bin/mv -f $fn $OUTGOING/ wird ausgeführt"
  sleep $SLEEP
 fi
done

Aber jetzt tut sich in meinem Fall doch noch ein neues Problem auf:

[s:6e93d7e85b]Die vom agi-script erstellte Datei sieht jetzt so aus:[/s:6e93d7e85b]
Code:
Channel: SIP/10-f69e/10
Callerid: "Weckruf" <999>
MaxRetries: 2
RetryTime: 60
WaitTime: 60
Context: weckruf
Extension: ***
Priority: 1

[s:6e93d7e85b]Und die Zeile : "Channel: SIP/10-f69e/10" mag mein Asterisk gar nicht, weil es den entsprechenden Channel nicht gibt.
Der korrekte Eintrag in der Zeile müsste IMHO lauten "Channel: SIP/10".
Zusammengesetzt aus den beiden Variablen $agi_channel und $callerid. Aber die Variable $agi_channel hat ja (um bei dem Beispiel zu bleiben) den Wert "SIP/10-f69e". Ich habe gesehen, dass mit einigen "sed" Kommandos die Variable schon arg beschnitten wird, da ja der ursprüngliche Inhalt viel mehr Informationen beinhaltet. Nur leider kenne ich mich mit "sed" nun überhaupt nicht aus um ggf noch die hinteren Zeichen (also "10-f69e") abzuschneiden.

Kann mir da vielleicht jemand helfen ?[/s:6e93d7e85b]

EDIT: Ja, vielleicht sollte ich den Thread erst mal zu ende lesen :) Ist ja in dem Post über mir schon erklärt Sorry :oops:

Danke und nochmal Grüße aus Mönchengladbach

Stefan
 
Zapod schrieb:
Kleine Anmerkung am Rande: Das die alten Versionen des Skripts nicht mehr zum Download angeboten werden, weil sie überholt sind ist löblich, aber zum nachvollziehen des Threads eher unübersichtlich.
Hallo Stefan,

da hast du vollkommen Recht. Der Thread wird dadurch zerstückelt. Ich hatte mich zu diesem Vorgehen entschieden, damit die aktuelle Version immer gleich im ersten Beitrag ist und man nicht lange suchen muss. Vielleicht würde ich es heute anders machen.

Sollte irgendwer mal die älteren Versionen benötigen, ich bin immernoch per PM zu erreichen. Das gilt zumindest solange, bis mich die Mods für tot erklären.

Viele Grüße!
Benno
 
Hallo Benno,

trotzdem ist das Skript klasse :)

Allerdings habe ich doch noch ein kleines Problem, denn beim Ausführen der Kontrollansage (die eingegebene Uhrzeit wird ja nochmal angesagt) tauchen ein paar Warnmeldungen auf:

Code:
    -- Executing Answer("SIP/10-9f1b", "") in new stack
    -- Executing Wait("SIP/10-9f1b", "1") in new stack
    -- Executing Playback("SIP/10-9f1b", "eigene/Erinner-Welcome") in new stack
    -- Playing 'eigene/Erinner-Welcome' (language 'de')
    -- Executing AGI("SIP/10-9f1b", "wakeup.agi") in new stack
    -- Launched AGI Script /usr/share/asterisk/agi-bin/wakeup.agi
    -- Playing 'hours' (language 'de')
    -- Playing 'minutes' (language 'de')
    -- Playing 'digits/2-and' (language 'de')
May 16 23:35:43 WARNING[8679]: file.c:475 ast_openstream: File  does not exist in any format
May 16 23:35:43 WARNING[8679]: file.c:779 ast_streamfile: Unable to open  (format alaw): No such file or directory
    -- Playing 'digits/20' (language 'de')
May 16 23:35:44 WARNING[8679]: file.c:475 ast_openstream: File  does not exist in any format
May 16 23:35:44 WARNING[8679]: file.c:779 ast_streamfile: Unable to open  (format alaw): No such file or directory
    -- Playing 'digits/2-and' (language 'de')
May 16 23:35:45 WARNING[8679]: file.c:475 ast_openstream: File  does not exist in any format
May 16 23:35:45 WARNING[8679]: file.c:779 ast_streamfile: Unable to open  (format alaw): No such file or directory
    -- Playing 'digits/20' (language 'de')
May 16 23:35:46 WARNING[8679]: file.c:475 ast_openstream: File  does not exist in any format
May 16 23:35:46 WARNING[8679]: file.c:779 ast_streamfile: Unable to open  (format alaw): No such file or directory
  == Spawn extension (default, 999, 4) exited non-zero on 'SIP/10-9f1b'

Man beachte hier die 2 Leerzeichen bei der Meldung "File does not ..."

Hab leider noch nicht raus, warum das so ist .

Gruß
Stefan
 
Download

Wo kann man das script ziehen ?

Ich finde nirgends einen link :(

danke im voraus
 
Hi Ihr Lieben,

Ich krieg es nicht hin...
folgendes Problem:
Grundsätzlich funktioniert das script, d.h. ich kann darauf anrufen,
es nimmt ab, ich wähle die Zeit und er generiert das call file...auch dieses würde er problemlos zum richtigen Zeitpunkt ausführen, nur stimmt der channel nicht... wenn ich jedoch das Scripte versuche abzuändern, bekomme ich andauernd eine Fehlermeldung nach der Stunden eingabe.. ..auch wenn ich das script garnicht abändere, sondern nur
überschreibe....
wenn ich dann wieder das orginal drauflade, funktioniert alles wieder, bis auf den falschen channel...

Ich währe sehr froh, wenn das ein !?+* - Anfänger -Problem ist und jemand von Euch, mir eine Antwort geben könnte..

herzlichsten Dank,

toldap
 
Hi,

kannst du mal zeigen, wie das call file aussieht? Dann kann ich da bestimmt was machen.

Benno
 
Hi Benno,

so sieht das call file aus, welches erstellt wird;

Channel: IAX2/mbleiker@iaxuser-1/iaxnr
Callerid: "Weckruf" <3>
MaxRetries: 2
RetryTime: 60
WaitTime: 60
Context: weckruf
Extension: ***
Priority: 1

Der Channel wird je nach Phone, mit welchem man das agi ausführt, angepasst. Gerne würde ich jedoch einen fixen-channel definieren, und nur noch die callerid setzen. Wenn ich dieses File manuell abändere. bevor run_wakeups ausgeführt wird, funktioniert der weckruf.

Das Agi welches ich benutze, findest Du weiter unten.
Was mich jedoch verwundert ist,dass, wenn ich das script nicht abändere, sondern lediglich öffne und wieder abspeichere, bereits der Fehler (1) auftritt.

(1) Fehler: Wenn ich das agi anrufe, bekomme ich nach der Stundeneingabe den Fehler; "Leider haben Sie keine gültige nr. gewählt" und Hangup...(Natürlich ist die Nr.,welche eingegeben wird, gültig)

Ich verwende das Orginal-Agi von;
toldap[web:860e9ad42d]http://www.ip-phone-forum.de/forum/viewtopic.php?t=3899&postdays=0&postorder=asc&start=0[/web:860e9ad42d]

Da habe ich, so denke ich, ein Grundlegendes Problem mit dem ändern des agi-Script.

Herzlichen Dank für Deine Bemühungen,
 
Hi,

also damit wir nicht aneinander vorbeireden. Soweit ich das in Erinnerung habe, ist die callerid ziemlich unwichtig. Denn der caller ist in diesem Fall der Weckdienst. Und die callerid ist nur dazu da, dass in deinem Telefondisplay "Weckruf <Nr.>" angezeigt wird.
Wenn du mehrere Telefone benutzt, sieht der channel-Eintrag für jedes Telefon anders aus und kann daher nicht als Konstante definiert werden. Für ein einzelnes Telefon ginge das natürlich.
Der channel ist also der Eintrag, der gewählt wird, wie bei einem normalen dial-Kommando in extensions.conf. Wenn du mir sagst, mit welchem dial-Kommando deine Telefone klingeln, kann ich das Skript entsprechend anpassen.
Ich muss mich da auch erst wieder reinarbeiten. Aber wenn du etwas Geduld hast, bekommen wir das ganz bestimmt hin.
Was die Fehlermeldung betrifft, könnte ich mir das jetzt evtl. so erklären, dass Stunden oder Minuten nicht zweistellig eingegeben wurden, also für 5:00 h muss man 05 für Stunden und 00 für Minuten eingeben.

Benno
 
Also,
meine internen phones spreche ich mit;
SIP/sipuser,
IAX2/iaxuser,

Gerne würde ich aber den weckdienst vorallem von extern ansprechen, also über den
CAPI/contr1/$callerid
channel.
(Hier die Callerid desshalb, damit * erkennt, wer anruft, und so das richtige Ziel weckt, oder nicht?)

Nun müsste man doch das Script entsprechend anpassen..doch, selbst wenn ich keine modifikation vornehme, bekomme ich den Fehler (1).
Also das Problem mit den Stunden. Ich gebe die Ziffern richtig mit dem 0 ein, d.h. für 8:30 08 Stunden usw...Wenn ich das Orginal drauflade, funktioniert das ganze ja auch...mit dne gleichen Ziffern....

toldap
 
Also das Skript ist so angelegt, dass es genau das Telefon weckt, von dem aus angerufen wurde.
Das funktioniert jetzt so:

1. Du rufst das Skript an von CAPI/contr1/12345
2. Das Skript schreibt CAPI/contr1/12345 in den Channel-Eintrag
3. In den Callerid-Eintrag schreibt das Skript die Telefonnummer vom Weckdienst und nicht die, die vom Weckdienst angerufen werden soll. Die steckt ja schon in Channel.

Kannst du mir auch nochmal die entsprechenden Einträge aus extensions.conf posten?
 
Das Skript schreibt
Channel: CAPI/ISDN1/1234-4/1234561212
...was für meine config falsch ist...

So würde es funktionieren:
Channel: CAPI/contr1/1234561212

Um die Kosten zu senken, bestenfalls so etwas:
Channel: SIP/1234561212@sipcallout

Die extensions.conf hab ich Momentan so:

[weckruf]
exten => ***,1,Answer
exten => ***,2,MP3Player(/var/lib/asterisk/mohmp3/fpm-calm-river.mp3)
exten => ***,3,Hangup

Danke,
toldap
 
Gut, hier kommt ein angepasstes wakeup.agi. Du musst noch die Dateiendung .txt in .agi ändern. Gib mir dann mal Rückmeldung, was das Skript macht! Ich habe den Eintrag sipcallout jetzt wörtlich genommen. Wenn das irgendwie anders heißt, kannst du die entsprechende Zeichenkette im Skript direkt editieren.

Was ist mit der Fehlermeldung (1)?

Benno

EDIT: Phantomskript wurde entfernt, siehe unten.
 
Leider bringt mir Dein Skript so (0 Bytes) nicht besonders viel...
sipcallout ist für meine config ok.

Fehlermeldung (1) erscheint nach wie vor, wenn ich das Skript
öffne und dann überschreibe...
 
Jo, ich versuchs nochmal!
 

Anhänge

  • wakeup_814.txt
    2.2 KB · Aufrufe: 31
Hi,
herzlichsten Dank, es funkt.!! :D
Nur,
Ich kann doch die Anzahl Wählversuche, bzw. die zeit die er
wählt, einstellen...Nur stösse ich da wieder an mein altes Problem, wenn
ich bspielsweise die
echo 'RetryTime: 60' oder die
echo 'WaitTime: 60'
auf jeweils 10 herunterschraube, kommt wieder Fehlermeldung (1).
Wie schon erwähnt, auch wenn ich garnichts ändere, nur das Skript überschreibe, kommt dieser Fehler.
Das ist komisch, oder?

:bahnhof:

Danke für deine Arbeit

toldap
 
Vielleicht macht dein Editor automatische Zeilenumbrüche, sodass die Datei nach dem Öffnen mit dem Editor fehlerhaft ist. Kann das der Grund sein? Du kannst mir ja mal die geänderte Datei zuschicken. Vielleicht seh ich da was.

Ansonsten viel Spaß mit dem Wecker!
Benno
 
Ja, das wars...
mit mc läuft alles wunderbar!

Herzlichsten Dank !!!
toldap
 
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.