Shell-Skript startet nicht

Sssleepy

Neuer User
Mitglied seit
14 Jan 2007
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich versuche gerde verzweifelt ein LCD-Display mittels Agi und Shell Skript anzusteuern.

Leider wird mein Shell Skript nicht ausgeführt. Ich verwende das alternative opt für fli4l.
Mein shell file liegt unter /data/share/asterisk/agi-bin/lcd.sh , die Rechte habe ich mit chmod 755 festgelegt.

In der extensions.conf steht ich:

exten => 4,1,agi(lcd.sh)
exten => 4,2,Congestion
exten => 4,102,Busy

wenn ich das Skript direkt auf der Konsole ausführe funktioniert es.

Kann es sein, dass ich mein lcd.sh im falschen Verzeichnis liegen habe?...andererseits liegen hier auch schon Bsp. php skripte.
In machen Bsp. wird hier der afruf system und nicht agi verwendet:
exten => 4,1,system(lcd.sh)

wieso????

Ach ja, wenn ich die 4 wähle sagt agi debug:

AGI Tx >> agi_request: lcd.sh
AGI Tx >> agi_channel: Zap/2-1
AGI Tx >> agi_language: de
AGI Tx >> agi_type: Zap
AGI Tx >> agi_uniqueid: asterisk-2128-1175889779.34
AGI Tx >> agi_callerid: 10
AGI Tx >> agi_calleridname: unknown
AGI Tx >> agi_callingpres: 0
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: unknown
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: festnetz
AGI Tx >> agi_extension: 4
AGI Tx >> agi_priority: 1
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>

ist aber wenig aussagefähig wie ich finde. weiss jemand rat? ich komme absolut nicht weiter

Gruss micha
 
Ich habe das Thema mal verschoben, da es wahrscheinlich kein spezifisches Problem der fli4l-Version ist.
Ich habe selbst noch nichts viel mit scripten an dieser Ecke gemacht deshalb habe ich den Beitrag mal in ein anderes subforum gekippt!
 
Sorry - falsches subforum -> asterisk-scripte
 
Muss der skript nicht unter /var/lib/asterisk/agi-bin liegen und wenn du zweifelst gibt doch den ganzen pfard an

exten => 4,1,agi(/data/share/asterisk/agi-bin/lcd.sh)
exten => 4,2,Congestion
exten => 4,102,Busy
 
Unter /opt/files/etc/asterisk.conf steht:

...
astagidir => /data/share/asterisk/var/agi-bin

Dort sollten die scripte stehen. Wird ein anderer Ort gewünscht ist die asterisk.conf anzupassen (unter windows) und mit mkfli4l hochzuladen.

PS: außerdem gibt es eine neue Version:

http://www.ip-phone-forum.de/showpost.php?p=832877&postcount=92
 
Hallo,

danke für eure Antworten. Ich habe den Fehler gefunden. Am Anfang des Files muss wohl zwingend #!/bin/sh stehen. Jetzt führt er das Skript nicht ordentlich aus.

Nun habe ich aber das nächste kleine Problem. Eigentlich wollte ich, dass sofort nach dem Abnehmen des Hörers im Display "Wählen..." erscheint. Dazu dann gleich jede Ziffer die am Telefon gedrückt wird. Lege ich den Hörer auf, dann soll für ein paar Sekunden "Gespräch beendet" im Display stehen. oder vielleicht sogar "Besetzt" bei besetzt.
Aber irgendwie verstehe ich noch nicht, wie ich all diese Zustände in der Extensions ermitteln kann.

Monentan warte ich bis die Ziffern in die $Exten geschrieben wird und übergebe dann alles in einem...etwas unschön, weil es so lange dauert bis im Display die Nummer erscheint...und nachträglich gewählte Ziffern werden ignoriert.
Sieht dann so aus:
exten => _4.,2,agi(lcd.sh|${EXTEN})
exten => _4.,n,Congestion
exten => -4.,102,Busy

Könnt ihr mir da ein paar Tips geben, wie sich das eleganter lösen lässt?
Wie nutzt man diese sogenannten Agi Befehle zB. Channel Status[] aus einem Shell Skript heraus?

Danke Euch
 
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.