Java-Programm mittels Asterisk anstossen

VOIPdani

Mitglied
Mitglied seit
8 Aug 2005
Beiträge
432
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe folgende Problemstellung zu lösen: Wird eine bestimmte Extension, zb. 7, gewählt, dann soll ein AGI-Skript ein Java-Programm anstossen. Ich hab mir das so überlegt:
Code:
#!/usr/local/bin/php -q
<?php
  $agi = new AGI();
  $agi->answer();

  $agi->exec(DoorOpen.bat);
?>

Der Batch DoorOpen.bat ruft ein WebService auf, dass dann der Tür mitteilt sich zu öffnen.

Dh. ich will den Asterisk - zwar nicht im klassischen Sinn - als Türöffner verwenden. Das Batch-File, welches ein Java-Prog. enthält, das dann das Webservice aufruft besteht bereits. Auch das WebService ist schon fertig. Ich möchte die Ergebnisse der Entwicklungsarbeit nutzen.

So, nun zur eigentlichen Frage. Wie muss das Batch-File aussehen bzw. wie heißen Batch-Files unter SuSe?

Kann mein AGI-Skript so funktionieren?

Ich hoffe mir kann jemand weiterhelfen...

lg Dani
 
wieso so kompliziert? Wieso nicht:

Code:
exten => nnnn,3,System(DoorOpen.bat)

Ciao,
dev
 
Batch-Files heissen unter Unix z.B. shell-skripte. ;-)

Wenn Du WebService sagst, was meinst Du damit? Daß eine URL aufgerufen werden soll? Oder ein SOAP-Request abgesetzt wird?

Ich mache sowas "ganz entfernt ähnliches" mit meinem EIB System und auch der Türsprechanlage.

Ciao,
dev
 
Hallo,

ich hab gerade von einem Kollegen das fertige bciDoorOpener.bat erhalten. Das sieht nun wie folgt aus:
Code:
call C:\Programme\Java\j2sdk1.4.2_06\jre\bin\java -cp "jar\bci_tc.jar" ams.buildingci.tca.ws.ac.client.DoorOpener http://sms-ras1:9090/axis/services/WsSpsWebservices 1 1

pause
Kann ich das jetzt mit
exten => nnnn,3,System(bciDoorOpener.bat)
ausführen??

lg Dani
 
VOIPdani schrieb:
das ist ein Batch-File eines Windows-Systems

VOIPdani schrieb:
jetzt mit [...] ausführen??
Dein * läuft Deiner .sig nach auf Linux, also ist die Antwort nein.

Du könntest vermutlich sowas wie

Code:
exten => nnnn,0,System(/usr/bin/java -cp "jar/bci_tc.jar" ams.buildingci.tca.ws.ac.client.DoorOpener http://sms-ras1:9090/axis/services/WsSpsWebservices 1 1)

machen. Die genaue Location von java kannst Du mit "which java" herausfinden, sofern es installiert und auch im Pfad ist. Alternativ mal mit "locate java" suchen.

Ich würde Dir aber, wie ja bereits besprochen, weiterhin empfehlen den ganzen Java-Kruscht zu ignorieren und eruieren wie der genaue http-Aufruf ist. Zur Not halt indem ihr den Aufruf mittels tcpdump traced.

Ciao,
dev
 
hmm warum denn ein batch oder shell script nehmen und dann per webservice auf java zugreifen?
ich denke in dem fall waere es am einfachsten dass dein Java-Programm seinen dienst nicht per http exportiert sondern per (Fast-)AGI, dann kannst es direkt von Asterisk aus aufrufen.

Beispiel: http://www.asteriskjava.org/latest/tutorial.html
 
Guten Morgen,

danke für eure Antworten, ich hab das Problem mittlerweile wie folgt gelöst:
Code:
exten => *,1,System(java -cp "/etc/asterisk/jar/bci_tc.jar" ams.buildingci.tca.ws.ac.client.DoorOpener http://sms-ras1:9090/axis/services/WsSpsWebservices 1 1)
exten => *,2,NoOp(Tür geöffnet)
exten => *,3,Hangup
Der Ordner jar wurde mir vom Entwickler zur Verfügung gestellt.

Wähle ich jetzt am Softphone * öffnet sich die Tür! :)

lg Dani
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
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.