.titleBar { margin-bottom: 5px!important; }

AGI, PHP , Werteübergabe

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von teddy75, 27 Mai 2005.

  1. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    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....
     
  2. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  3. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    aslo $argv[0] und so weiter ??
     
  4. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    jep geht super danke für die schnelle antwort
     
  5. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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??
     
  6. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Hast Du Dir mal GEdanken gemacht, wofür der "Edit"-Button oben rechts gut sein könnte ?
     
  7. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    wie edit button ??
     
  8. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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;
     ?>
    
     
  9. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    --- 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 ---
     
  10. teddy75

    teddy75 Neuer User

    Registriert seit:
    8 Mai 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    mh solltest solltest evtl. mal lesen achja solltest bei deinen beiträgen mal anfangen und mal was sinvolles und produktives reinschreiben