Applikation in Asterisk einbinden

robber437

Neuer User
Mitglied seit
12 Jun 2008
Beiträge
27
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich möchte die Applikation BACKTICKS in Asterisk einbinden. Compilliert habe ich das File nach der Anleitung auf http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485805.
Danach habe ich backticks.so in app_backticks.so umbenannt und nach /usr/lib/asterisk/modules verschoben und anschließend die Datei /etc/asterisk/modules.conf um folgende Zeilen ergänzt/editiert:
Code:
[modules]
autoload = [B]yes[/B]
...
; Applications
load => app_backticks.so

Leider wird die Applikation nicht geladen und ich erhalte immer folgende Meldung:
Code:
WARNING[3490]: pbx.c:1832 pbx_extension_helper: No application 'Backticks' for extension (meine-telefone, s, 2)

Was mache ich falsch? Habe ich irgendwelche Einstellungen vergessen?
Achso ich benutze die modifizierte Asterisk-Version aus den Zakotel-Repositories.

Gruß
robber
 
Upps, hab bemerkt dass beim Start schon folgende Meldung ausgespuckt wird:

Code:
WARNING[3690]: loader.c:363 load_dynamic_module: Error loading module 'app_backticks.so': /usr/lib/asterisk/modules/app_backticks.so: cannot open shared object file: No such file or directory

Das Modul ist auf jeden Fall vorhanden, die Rechte sind auch richtig, dann kann ja nur mit der Kompillierung etwas nicht stimmen...

Gruß
robber
 
bitte sieh dir mal die in der asterisk vorhandenen möglichkeiten an, ich würde das an deiner stelle mit einem AGI script machen, beispiele dazu findest du bei den zakotel paketen im verzeichnis "/var/lib/asterisk/agi-bin", hier ein PHP beispiel(chen):
Code:
#!/usr/bin/php -q
<?php
// --- START: NEEDED FOR ALL AGI SCRIPTS TO READ VARIABLES VIA STDIN FROM ASTERISK ---
function read() {
  global $in, $debug;
  $input = str_replace("\n", "", fgets($in, 4096));
  return $input;
}
 
$in=fopen("php://stdin","r");
 
// read variables from stdin and put it to the array "$agi":
while ($env=read()) {
  $s = split(": ",$env);
  $agi[str_replace("agi_","",$s[0])] = trim($s[1]);
  if (($env == "") || ($env == "\n")) {
    break;
  }
}
// --- END: NEEDED FOR ALL AGI SCRIPTS TO READ VARIABLES VIA STDIN FROM ASTERISK ---

if(file_exists("/var/tmp/file-" . $agi["uniqueid"] . ".alaw")) {
  echo "exec Set FILE_DA=1\n";
  read();
} else {
  echo "exec Set FILE_DA=0\n";
  read();
}
?>
dieses beispiel setzt die channel variable "${FILE_DA}" für den aktuellen channel auf den wert "1", wenn die entsprechende datei vorhanden ist.

extensions.conf:
Code:
...
[internal]
...
exten = 999,n,AGI(script.php)
exten = 999,n,NoOp(dateipruefung ergab: ${FILE_DA})
...

nicht vergessen, das script mit "chmod 755 /var/lib/asterisk/agi-bin/script.php" ausführbar machen.

wenn du uns mitteilst, wofür genau du das brauchst, können wir dir weiter helfen...

grüße,
laureen
 
Hi laureen,

danke für die fixe Antwort, hab fast das Gefühl du schmeißt das Forum fast allein;)

Hab das mit der Backticks Applikation hinbekommen, war ein totaler Duseligkeitsfehler, hatte das File auf einem anderen System kompilliert:-Ö.
Das mit dem AGI-Skript gefällt mir aber fast besser.

Gruß
robber
 
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.