AGI-Script im Background starten?

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
493
Punkte für Reaktionen
0
Punkte
16
Hallo
ich habe ein script dass ich bei jedem Anruf starten will (es zeit mir die Caller-ID im Display meines VDR).
Leider wartet der Dialplan solange bis das script fertig ist. Ich will aber das Script im Hintergrund laufen lassen (quasi ./script.sh &).
Kann mir jemand sagen wie ich das genau Aufrufen muss?

exten => 464480,1,SetCallerID(0${CALLERIDNUM})
exten => 464480,2,agi(/etc/asterisk/anruf.sh|${CALLERID})

mit dem |${CALLERID} übergebe ich die Rufnummer...

Gruß
Thorsten
 
da du dazu scheinbar kein echtes agi script brauchst mach doch einfach System...

also System(/etc/asterisk/anruf.sh ${CALLERID} &)
damit legst du das programm in den hintergrund...
allerdings wird das dann auch nicht beendet, wenn der anrufer auflegt!
mach doch ansonsten 2 scripts... eins zum anzeigen und eins zum ausblenden, daß du onhangup aufrufst.
 
Hallo,

@Fabe: Danke - ich werde es heute abend probieren. Das Scipt blendet automatisch nur für einen fest definierten Zeitraum die Nummer ein... ein "ausblendescript" brauche ich daher nicht.

@Rajo, genau daher habe ich meine Anregung. ABER: das Anzeigen von Nachrichten auf dem VDR über die genannte Methode dauert etwas (ca. 1-2 Sekunden).
Genau diese 1-2 Sekunden klingelt das Telefon aber noch nicht (bzw. die paralell am NTBA angeschlossenen ISDN-Telefone klingeln schon...) - und das will ich verhindern.

Durch die Lösung von Fabe hat sich mein Problem wohl erledigt...

Gruß
Thorsten
 
Wie startet man ein AGI-Script denn nun im Hintergrund (unabhängig von der System() Lösung)?
Im "CallerID mit AGI an VDR per Telnet übermitteln"-Thread wurde von System() wieder auf AGI umgeschwenkt. Mir ist aber nicht klar, warum das AGI nun nicht mehr im Vordergerund läuft, bzw. auf Rückgabe/Beendigung des Scripts wartet?
Ich möchte auf meinem *-Server ein paar Beeps beim Eingehenden Anruf absetzten. Dummerweise wartet er die Beeps ab, bevor er auf meine Telefonanlage schaltet.
 
für diese zwecke ist AGI nicht geeignet, da ein AGI script über stdin/stdout mit der asterisk kommuniziert. verwendet doch "TrySystem" und startet ein script im hintergrund:
Code:
...
exten = _X.,1,TrySystem(/usr/local/bin/tuewas.sh ${CALLERID(num)} >/dev/null 2>&1 &)
exten = _X.,n,Dial(SIP/tel10,60)
...
dann läutet das telefon "tel10" nur sekundenbruchteile nach dem script-aufruf.

das "&" am schluss befördert das script in den hintergrund und der dialplan wird sofort fortgesetzt.

grüße,
laureen
 

Statistik des Forums

Themen
244,696
Beiträge
2,216,701
Mitglieder
371,316
Neuestes Mitglied
realbluethunder
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.