AGI-Script im Background starten?

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
490
Punkte für Reaktionen
0
Punkte
0
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
 

fabe

Neuer User
Mitglied seit
13 Jul 2004
Beiträge
72
Punkte für Reaktionen
0
Punkte
0
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.
 

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
490
Punkte für Reaktionen
0
Punkte
0
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
 

Kermit23

Neuer User
Mitglied seit
31 Okt 2004
Beiträge
117
Punkte für Reaktionen
0
Punkte
16
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.
 

laureen

Mitglied
Mitglied seit
17 Okt 2004
Beiträge
369
Punkte für Reaktionen
0
Punkte
0
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Neueste Beiträge

Statistik des Forums

Themen
233,382
Beiträge
2,033,495
Mitglieder
351,979
Neuestes Mitglied
Ansoff