AGI, PHP , Werteübergabe

teddy75

Neuer User
Mitglied seit
8 Mai 2005
Beiträge
52
Punkte für Reaktionen
0
Punkte
0
also eine normale agi rufe ich auf und gebe dahinter mit | die werte an.. z.b. "send.agi|wert 1|wert 2|wert 3")
und rufe diese dan in der agi mit

wert1 = $1 ab

wie rufe ich diese werte in php ab ??

send.php|wert 1|wert 2|wert 3")

$1 z.b. nimmt er nicht

hoffe mir kann da jemand helfen

brauche nur wie ich die werte im php aufrufe der rest funktioniert..
soll für sms versand / mail versand sein über internet anbieter nicht über capi oder zap....
 
Wie man durch eine sehr kurze Google-Suche erfahren kann geht das mit $argc und $argv. In $argc ist die Anzahl der Argumente gespeichert und $argv ist ein Array, dass die Argumente selbst enthaelt.
 
aslo $argv[0] und so weiter ??
 
jep geht super danke für die schnelle antwort
 
jo nun is doch noch ein problem werte von aster. nach php geht nun ohne probleme
aber von agi
MESSAGE=`cat $FTA|grep ud=|cut -d'=' -f2-`
echo $MESSAGE > MESSAGE1temp <------------bis hier alles ok gesammte nachricht in der temp
echo SET VARIABLE MESSAGE $MESSAGE
was mache ich mit Set variable falsch es wird alls nach dem 1. lehrzeichen abgeschnitten
hat jemand eine lösung wie ich den gesammten text bekomme??
 
Hast Du Dir mal GEdanken gemacht, wofür der "Edit"-Button oben rechts gut sein könnte ?
 
wie edit button ??
 
ok habs gefunden
echo SET VARIABLE MESSAGE $MESSAGE
in
echo SET VARIABLE MESSAGE \"$MESSAGE\"

den geht auch dies

aslo der code zu sms versenden von z.b. t-com client über asterisk intern nach z.b. handy über internet sms anbieter
exte...conf
Code:
exten => 20,1,Verbose(Incoming SMS from ${CALLERIDNUM})
exten => 20,2,Answer
exten => 20,3,Wait(1)
exten => 20,4,SMS(smsinfo,as)
exten => 20,5,AGI(smsanalyseint.agi|interne kennung|eigene fetsnetznummer |eigene handynummer)
exten => 20,6,AGI(sendsms.php|${PHONENR}|${MOBILENR}|${MESSAGE})
exten => 20,7,hangup
20 ist die nummer die intern bei mir angerufen wird

die etwas modifizierte smsanalyse.agi
Code:
#!/bin/bash
MOBILENRASTERISK=$1 # handynr in ASTERISK definiert
export PHONENR=
export MESSAGE=
export FTA=
export MOBILENR=
intern=$2
ICH=$3
cd /var/spool/asterisk/sms/me-sc.smsinfo
FTA=`ls -l -r -t|grep 200|tail -1|cut -c41-`
cat $FTA|grep oa=|cut -d'=' -f2 > PHONENRtemp
PHONENR=`cat $FTA|grep oa=|cut -d'=' -f2`
echo SMS Origin number $PHONENR
cat $FTA|grep ud=|cut -d'=' -f2- > temp
MOBILENR=`cat temp|grep room|cut -d' ' -f1`
if test $PHONENR = $MOBILENRASTERISK
then
                cat $FTA|grep ud=|cut -d'=' -f2- > temp
                MOBILENR=`cat temp|grep room|cut -d' ' -f1`
                MESSAGE=`cat temp|grep room|cut -d' ' -f3-`
                # rm temp
                # rm mobilenrtemp
                # echo $PHONENR > pohnertemp
                # echo SET VARIABLE  0$PHONENR
                echo $MOBILENR > MOBILENRtemp
                echo $MESSAGE > MESSAGEtemp
                PHONENR=$intern
echo SET VARIABLE MOBILENR $MOBILENR
echo SET VARIABLE PHONENR $PHONENR
echo SET VARIABLE MESSAGE \"$MESSAGE\"
else
cat $FTA|grep oa=|cut -d'=' -f2 > PHONENR1temp
PHONENR=`cat $FTA|grep oa=|cut -d'=' -f2`
cat $FTA|grep ud=|cut -d'=' -f2- > temp1
MESSAGE=`cat $FTA|grep ud=|cut -d'=' -f2-`
#MESSAGE=`cat temp1`
MOBILENR=$ICH
echo $MESSAGE > MESSAGE1temp
echo SET VARIABLE MOBILENR $MOBILENR
echo SET VARIABLE PHONENR $PHONENR
echo SET VARIABLE MESSAGE \"$MESSAGE\"
#
fi

und nun noch die anwahl zur internet sms gateway
Code:
#!/usr/bin/php -q
 <?php
 ob_implicit_flush(true);
 set_time_limit(6);
 $in = fopen("php://stdin","r");
 $stdlog = fopen("/var/log/asterisk/my_agi.log", "w");

 // toggle debugging output (more verbose)
 $debug = false;
 function read() {
   global $in, $debug, $stdlog;
   $input = str_replace("\n", "", fgets($in, 4096));
   if ($debug) fputs($stdlog, "read: $input\n");
   return $input;
 }

 function errlog($line) {
   global $err;
   echo "VERBOSE \"$line\"\n";
 }

 function write($line) {
   global $debug, $stdlog;
   if ($debug) fputs($stdlog, "write: $line\n");
   echo $line."\n";
 }

 // parse agi headers into array
 while ($env=read()) {
   $s = split(": ",$env);
   $agi[str_replace("agi_","",$s[0])] = trim($s[1]);
   if (($env == "") || ($env == "\n")) {
     break;
   }
 }

class deset_gateway
{

var $login;
var $pass;

var $nummern;
var $message;
var $sender_id;


var $TEXT;
var $send;
var $text_length;

var $fp;
var $rawreply;
var $replyarray;
var $result;
function deset_gateway($login,$pass)

{

$this->login  = $login;
$this->pass   = $pass;

}


function send_message($numbers,$message,$sender_id)
{


        $this->nummern = implode (",", $numbers);

        $this->message = $message;
        $this->sender_id = $sender_id;

        $this->nummern = urlencode ($this->nummern);
        $this->message = urlencode ($this->message);
        $this->sender_id = urlencode ($this->sender_id);

        $this->TEXT = "log=$this->login&pas=$this->pass&num=$this->nummern&mess=$this->message&sender=$this->sender_id";

        $this->text_length = strlen($this->TEXT);

        $this->senden();

}

function send_flash_message($numbers,$message,$sender_id,$flash)
{


        $this->nummern = implode (",", $numbers);

        $this->message = $message;
        $this->sender_id = $sender_id;

        $this->nummern = urlencode ($this->nummern);
        $this->message = urlencode ($this->message);
        $this->sender_id = urlencode ($this->sender_id);

        $this->TEXT = "log=$this->login&pas=$this->pass&num=$this->nummern&mess=$this->message&sender=$this->sender_id";

  if ($flash) {
    $this->TEXT .= '&datentyp=flashsms';
  }

  $this->text_length = strlen($this->TEXT);

        $this->senden();

}



function senden(){

$this->send = "POST /main.php HTTP/1.0\r\n";
$this->send.= "Host: deset-mobile.com\r\n";
$this->send.= "Content-type: application/x-www-form-urlencoded\r\n";
$this->send.= "Content-length: $this->text_length\n\n";
$this->send.= "$this->TEXT\n";
$this->send.= "\r\n";


$this->fp = fsockopen ("deset-mobile.com", 80, &$errno, &$errstr, 60);

        if ($this->fp) {
                 fputs ($this->fp,$this->send);
                         $this->rawreply = fread ($this->fp,5120);
                 fclose($this->fp);
                 $this->replyarray = explode ("\n", $this->rawreply);
                 $this->result = $this->replyarray[7];
                 //$result = substr($replyarray[0], 0, 2);
                        }
                        else
                        {
                 $this->result = "Connection Error!!";
                }

                print $this->result;
    //echo '<hr><pre>';
    //print_r($this->replyarray);
    //echo '</pre>';
}

}

$login  = "LOGIN";
$pass = "PASS";
$user = "LOGIN";//<-- sms kaufen
$pass = "USER";//<-- sms kaufen
//deset_gateway
//$gateway = new deset_gateway($login,$pass);
//$numbers      = array($argv[2]);
$numbers        = $argv[2];
$message        = "$argv[3]";
$sender_id      = "$argv[1]";
//$gateway->send_message($numbers,$message,$sender_id);
//smskaufen.de
$text = urlencode($message);
$to = urlencode($numbers);
$url = "http://smskaufen.de/" . "?id=" . $user . "&pw=" . $pass . "&absender=" . $sender_id . "&empfaenger=" . $to . "&text=" . $text . "&type=3";
   $fp = fopen($url, "r");
$reply = fgets($fp, 1024);
   #echo "reply:'$reply'";

      if ($reply == 100)
      {
         echo "Die SMS wurde erfolgreich ausgeliefert";
      } else {
         echo "Leider konnte die SMS nicht versendet werden, es trat ein Fehler auf.
Fehlercode: " . $reply;
      }
exit;
 ?>
 
--- Da Du zur gleichen Zeit den EDIT Button gefunden hast, zu der ich hier einen Screenshot zur Erklärung gepostet habe, ist dieser Beitrag hinfällig und deshalb gelöscht ---
 
mh solltest solltest evtl. mal lesen achja solltest bei deinen beiträgen mal anfangen und mal was sinvolles und produktives reinschreiben
 
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.