Weckruf

so ich habe gemacht was du vorgeschlagen hast
das kommt dabei heraus

Asterisk:~ # ls -l /var/lib/asterisk/agi-bin/wakeup.agi
-rwxrwxrwx 1 root root 2433 Sep 25 15:17 /var/lib/asterisk/agi-bin/wakeup.agi
Das scheint doch zustimmen oder

Leider bekomme ich immer noch den Fehler beim wählen von 999
ich habe dein Script so übernommen wie es in deinem Beitrag steht.
Nur mit dem Chanel editieren Weis ich nichts anzufangen
Habe immoment kein Zap laufen sonder Sip

Und ganz ehrlich ich habe von Linux null ahnung
Das heist ich habe dein Script einfach kopiert und ausführbar gemacht
Hier mal meine Extensoin.conf
Code:
[general]
static = yes
writeprotect = no
nat = yes

[globals]
FWDUSERID = xxxxxxxxx
FWDUSERNAME = xxxxxxxxx


[default]
include => 10
include => 11

exten => 999,1,agi,wakeup.agi 

;[Zu Nikotel]
exten => _08.,1,Dial(SIP/${EXTEN:2}@NikotelAccount,60,Ttr)
exten => _08.,2,Hangup

;[Zu ISDN]
exten => _xxx.,1,StripMSD,0
exten => _xxx.,2,Dial,CAPI/590690:b${EXTEN}
exten => _xxx.,3,Hangup

;[incoming]
exten => ich,1,Dial(SIP/10&SIP/11,20,Ttr)
exten => ich,2,Voicemail2,u10
exten => ich,3,Hangup

;[Von ISDN]
exten => xxxxxx,1,Dial(SIP/10&SIP/11,20,tr)
exten => xxxxxx,2,Voicemail2,u10
exten => xxxxxx,3,Hangup

exten => xxxxx,1,Dial(SIP/11&SIP/10,20,tr)
exten => xxxx,x2,Voicemail2,u10
exten => xxxxx,3,Hangup

;[Anrufbeantworter]
exten => 9999/_[1-9].,1,Answer
exten => 9999/_[1-9].,2,Wait(1)
exten => 9999/_[1-9].,3,VoicemailMain(s${CALLERIDNUM})
exten => 9999/_[1-9].,4,Hangup


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



[10]
exten => 10,1,Dial(SIP/10,20,tr)
exten => 10,2,DIAL(CAPI/xxxxx:b11,20,tr)
exten => 10,3,Hangup

[11]
exten => 11,1,Dial(SIP/11,20,tr)
exten => 11,2,Voicemail2,u10
;exten => 11,3,DIAL(CAPI/xxxxxx:b10,20,tr)
exten => 11,3,Hangup
und meine sip.conf
Code:
[general]
port = 5060
bindaddr = 192.168.1.9
externip = astersrv.dyndns.org
;localnet = 192.168.1.0/255.255.255.0
context = default
tos = reliability
srvlookup = yes
insecure = very
nat = yes
maxexpirey = 1200
defaultexpirey = 20
register => xxxxxxxxxxxxxxxxx:@calamar0.nikotel.com

[NikotelAccount]
type = friend
username = xxxxxxxxxxxxx
secret = xxxxxxxxxxxxxxx
host = calamar0.nikotel.com
fromuser = xxxxxxxxxxx
insecure = very
fromdomain = calamar0.nikotel.com
qualify = yes
nat = no
context = default
canreinvite = no

[10]
type = friend
username = 10
secret = 1234
host = dynamic
qualify = 1200
dtmfmode = rfc2833
context = default
disallow = all
allow = ulaw
allow = alaw
canreinvite = yes
mailbox = 10

[11]
type = friend
username = 11
secret = T2
host = dynamic
qualify = 1200
dtmfmode = rfc2833
context = default
disallow = all
allow = ulaw
allow = alaw
canreinvite = yes

Und so sieht der fehler aus wenn ich versuche den Wecker anzurufen
Code:
    -- Launched AGI Script /var/lib/asterisk/agi-bin/wakeup.agi
Failed to execute '/var/lib/asterisk/agi-bin/wakeup.agi': Exec format error
    -- AGI Script wakeup.agi completed, returning 0



Danke für deine Hilfe
 
Also das Skript ist da und ausführbar. Den Channel musst du anpassen:
echo "Channel: SIP/$callerid" > /tmp/wakeups/$hh$mm.$callerid.call

Damit solltest du etwas weiter kommen. Mit deiner CallerID sollte es eigentlich keine Probleme geben.
 
So ich habe jetzt den channel editiert und gespeichert
jetzt sieht die Fehlermeldung so aus
Code:
 *CLI>     -- Executing AGI("SIP/10-9d9d", "wakeup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/wakeup.agi
Failed to execute '/var/lib/asterisk/agi-bin/wakeup.agi': Exec format error
    -- AGI Script wakeup.agi completed, returning 0
Sep 25 16:22:07 NOTICE[1115245488]: rtp.c:429 ast_rtp_read: RTP: Received packet with bad UDP checksum
Sep 25 16:22:07 WARNING[1115245488]: pbx.c:1924 ast_pbx_run: Timeout, but no rule 't' in context 'default'
 
Ich weiß nicht, was die Fehlermeldung bedeutet. Aber für mich sieht das so aus, als ob er das Skript, aus welchen Gründen auch immer, nicht ausführen kann.

Was sagt:
ls -l /tmp/callerid* /tmp/wakeups
 
wecker

Du hast recht das script hatte am Anfang ein paar leerzeichen
und lief deswegen nicht ab
das habe ich jetzt behoben
jetzt sieht das so bei mir aus das er nach stunden fragt
ich gebe jetzt z.b 08 ein
weiter passiert nichts
Fehlermeldung wie folgt:
Code:
*CLI>     -- Executing AGI("SIP/10-1fea", "wakeup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/wakeup.agi
    -- Playing 'hours' (language 'en')
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: syntax error near unexpected token `newline'
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: `  00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |\ '
    -- AGI Script wakeup.agi completed, returning 0
Sep 25 16:37:45 WARNING[1115245488]: pbx.c:1924 ast_pbx_run: Timeout, but no rule 't' in context 'default'
    -- Executing AGI("SIP/10-a126", "wakeup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/wakeup.agi
    -- Playing 'hours' (language 'en')
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: syntax error near unexpected token `newline'
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: `  00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |\ '
    -- AGI Script wakeup.agi completed, returning 0
Sep 25 16:38:07 WARNING[1115245488]: pbx.c:1924 ast_pbx_run: Timeout, but no rule 't' in context 'default'
    -- Executing AGI("SIP/10-af93", "wakeup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/wakeup.agi
    -- Playing 'hours' (language 'en')
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: syntax error near unexpected token `newline'
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: `  00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |\ '
    -- AGI Script wakeup.agi completed, returning 0
Sep 25 16:38:24 WARNING[1115245488]: pbx.c:1913 ast_pbx_run: Invalid extension '13', but no rule 'i' in context 'default'
    -- Executing AGI("SIP/10-fea4", "wakeup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/wakeup.agi
    -- Playing 'hours' (language 'en')
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: syntax error near unexpected token `newline'
/var/lib/asterisk/agi-bin/wakeup.agi: line 24: `  00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |\ '
    -- AGI Script wakeup.agi completed, returning 0
Sep 25 16:39:14 WARNING[1115245488]: pbx.c:1924 ast_pbx_run: Timeout, but no rule 't' in context 'default'
nach minuten oder datum fragt er mich gar nicht Datum????
die oclock.gsm kann ich nicht finden
 
So habe den Fehler gefunden
In dem Script haben sich bei kopieren ein paar Zeilen verschoben

Funtzt jetzt aber prima
nur nach dem "auf wiederhören" bekomme ich auf dem Client (softtelefon oder BT 101 eine fehlermeldung 403)
Scheinbar beendet das Script den Anruf nicht korekt.
Hast du ewentuel dafür eine Lösung ????

Dank für deine Hilfe

Ventojetta
 
Das weiß ich auch nicht. Ich kann es auch nicht nachvollziehen, da ich keine SIP-Clients benutze. Vielleicht nützt es, wenn du die letzten beiden Zeilen aus wakeup.agi löschst oder in extensions.conf noch eine Zeile
exten => 999,2,Hangup
einfügst oder beides.

Viel Erfolg!
Benno
 
möcht sowohl Softphones (SIP) als auch per ISDN/HFC angeschlossene Telefone gleichzeitig benutzen was muss ich im Script ändern wen sowohl
an meinem Asterisk ISDN und Sip Telefone vom Weckruf benutzt werden sollen.
Immoment habe ich nur das
Code:
"Channel: SIP/$callerid" > /tmp/wakeups/$hh$mm.$callerid.call
und das funtzt nur mit Sip Clients
 
Änder bitte mal das wakeup.agi folgendermaßen ab:

Code:
#!/bin/sh
read agi_request
read agi_channel
read agi_language
read agi_type
read agi_uniqueid
read agi_callerid
echo $agi_callerid > /tmp/"callerid.$agi_callerid"
callerid=`sed s/"agi_callerid: "// /tmp/"callerid.$agi_callerid"`
read agi_dnid
read agi_rdnis
read agi_context
read agi_extension
read agi_priority
read agi_enhanced
read agi_accountcode
read emptyline

echo $agi_channel > /tmp/channel."$agi_channel"
...

Beachte, dass die dritte und vierte Zeile vertauscht wurden. Unter read emptyline wurde schließlich noch eine Zeile eingefügt, der Rest bleibt unverändert. Die drei Punkte sollst du nicht einfügen, sondern einfach den Rest übernehmen, so wie er war.

Anschließend ruf mal von allen angeschlossenen Telefonen die 999 an. Du kannst gleich wieder auflegen, nachdem die erste Ansage "Stunden" kommt.

Dann gib folgenden Befehl ein:
cat /tmp/channel*

und poste die Ausgabe dieses Befehls. Dann kann ich das Skript anpassen.

Danke im Voraus!
wrrdlbrrmpft
 
Hallo

Habe das Script geändert aber es legt leider kein Channels in TMP an
Code:
#!/bin/sh 
read agi_request 
read agi_channel 
read agi_language 
read agi_type 
read agi_uniqueid 
read agi_callerid 
echo $agi_callerid > /tmp/"callerid.$agi_callerid" 
callerid=`sed s/"agi_callerid: "// /tmp/"callerid.$agi_callerid"` 
read agi_dnid 
read agi_rdnis 
read agi_context 
read agi_extension 
read agi_priority 
read agi_enhanced 
read agi_accountcode 
read emptyline 
echo $agi_channel > /tmp/channel.$agi_channel
echo $agi_extension > /tmp/weckzeit.$callerid 
echo "GET DATA hours 3000 2" > /dev/stdout 
read stunden 
echo $stunden > /tmp/stunden.$callerid 
hh=`sed s/"200 result="// /tmp/stunden.$callerid` 
case $hh in 
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23) ;;*) 
  echo 'STREAM FILE invalid ""' > /dev/stdout 
  read false 
  echo 'HANGUP' 
  read false 
  exit 
  ;; 
esac 
echo "GET DATA minutes 3000 2" > /dev/stdout 
read minuten 
echo $minuten > /tmp/minuten.$callerid 
mm=`sed s/"200 result="// /tmp/minuten.$callerid` 
case $mm in 
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |26 | 27 | 28 | 29 |\ 30| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |52 | 53 | 54 | 55 | 56 | 57 | 58 | 59) ;; *) 
  echo 'STREAM FILE invalid ""' > /dev/stdout 
  read false 
  echo 'HANGUP' 
  read false 
  exit 
  ;; 
esac 
 
echo "Channel: SIP/$callerid" > /tmp/wakeups/$hh$mm.$callerid.call 
echo "Callerid: 999" >> /tmp/wakeups/$hh$mm.$callerid.call 
echo "MaxRetries: 2" >> /tmp/wakeups/$hh$mm.$callerid.call 
echo "RetryTime: 60" >> /tmp/wakeups/$hh$mm.$callerid.call 
echo "WaitTime: 60" >> /tmp/wakeups/$hh$mm.$callerid.call 
echo "Context: weckruf" >> /tmp/wakeups/$hh$mm.$callerid.call 
echo "Extension: ***" >> /tmp/wakeups/$hh$mm.$callerid.call 
echo "Priority: 1" >> /tmp/wakeups/$hh$mm.$callerid.call 
 
if [ $hh -lt 10 ] 
then hh=`sed s/"200 result=0"// /tmp/stunden.$callerid` 
fi 
if [ $mm -lt 10 ] 
then mm=`sed s/"200 result=0"// /tmp/minuten.$callerid` 
fi 
echo 'SAY NUMBER '"$hh"' ""' > /dev/stdout 
read in 
echo 'STREAM FILE oclock ""' > /dev/stdout 
read in 
echo 'SAY NUMBER '"$mm"' ""' > /dev/stdout 
read in 
echo 'STREAM FILE vm-goodbye ""' > /dev/stdout 
read in 
echo 'Hangup' > /dev/stdout 
read in
danach von allen Telefonen Angerufen und das eingegeben
"cat /tmp/channel*"
Ausgabe wie folgt => cat: /tmp/channel*: No such file or directory
was mach ich falsch????????????????
 
OK, ist klar. Wenn du
echo $agi_channel > /tmp/channel.$agi_channel
in
echo $agi_channel > /tmp/channel."$agi_channel"
änderst, sollte es aber funktionieren.
Wenn nicht ändere es so:
echo $agi_channel >> /tmp/channel

Danke!
 
jetzt hat es geklappt
Hier die Ausgabe
Code:
agi_channel: Zap/2-1
agi_channel: SIP/10-0807
agi_channel: SIP/11-a16b
agi_channel: Zap/2-1
Wäre super wenn du das hin bekommen würdest
 
Gut, ich hab das Skript nochmal komplett neu überarbeitet.

Bitte wakeup-0.02.tar.gz aus dem ersten Beitrag in diesem Thread herunterladen und testen!

Danke!
wrrdlbrrmpft
 
Hallo
Habe das neue Script installiert
Bei einem Aneruf vom ISDN Telefon geht alles
aber von einem Sip Telefon (hier der Sipps Client)
bekomme ich folgende Fehlermeldung und es tut sich nix:
Code:
  -- Attempting call on SIP/10-f331 for ***@weckruf:1 (Retry 1)
Sep 30 21:34:10 WARNING[1115245488]: chan_sip.c:1348 create_addr: No such host: 10-f331
Sep 30 21:34:10 NOTICE[1115245488]: channel.c:1776 __ast_request_and_dial: Unable to request channel SIP/10-f331
Sep 30 21:34:10 NOTICE[1115245488]: pbx_spool.c:232 attempt_thread: Call failed to go through, reason 0

Und hier ist der File vom tmp/wakeup
Code:
Channel: SIP/10-41cc
Callerid: 99
MaxRetries: 2
RetryTime: 60
WaitTime: 60
Context: weckruf
Extension: ***
Priority: 1
wenn bei Channel "SIP/10-41cc" seht geht es nicht wenn statt dessen aber nur "SIP/10" steht geht es ohne Probleme.
Leider weis ich nicht wie ich das Script bearbeiten muss das der korrekte Kontext erscheint bzw geschrieben wird.
 
Leider nein habe immer noch den selben Fehler
Code:
CLI>     -- Attempting call on SIP/10-0aac/10 for ***@weckruf:1 (Retry 3)
Oct  1 19:57:33 WARNING[1115245488]: chan_sip.c:1348 create_addr: No such host: 10-0aac
Oct  1 19:57:33 NOTICE[1115245488]: channel.c:1776 __ast_request_and_dial: Unable to request channel SIP/10-0aac/10
Oct  1 19:57:33 NOTICE[1115245488]: pbx_spool.c:232 attempt_thread: Call failed to go through, reason 0
wenn ich jedoch den wakeup File korregiere in form wie hier geht es:
Code:
Channel: SIP/10 (voher "Channel: SIP/10-41cc)
 Callerid: 99 
 MaxRetries: 2 
 RetryTime: 60 
 WaitTime: 60 
 Context: weckruf 
 Extension: *** 
 Priority: 1
das Script darf nur das schreiben "Channel: SIP/10"
 
OK, dann versuche mal diesen Patch:

1. cd /var/lib/asterisk/agi-bin
2. zcat $PATH/wakeup.patch.gz | patch -p0

Für $PATH musst du natürlich das Verzeichnis angeben, wo der Patch ist.
 

Anhänge

  • wakeup.patch.gz
    304 Bytes · Aufrufe: 22
Vielen Dank für deine Arbeit
es funktioniert ausgezeichnet

Danke Ventojetta
 
Version 0.04 sollte nun auch mit res_agi.so > 1.10 zurechtkommen.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,375
Beiträge
2,251,051
Mitglieder
374,029
Neuestes Mitglied
hgt41807
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.