I’m not going to help you debug your code, but I wanted to post part of a 
function from one of our internal AGIs which reads auth codes using a simple 
IVR.  The code is ugly but it might be helpful to you.   This code is released 
to the public domain.

    // no pin provided, get pin from caller
    $agi->answer();
    usleep(250000);

    $try = 1;
    $bad_pass = FALSE;
    $auth_start_time = microtime(TRUE);
    while ($try < 4) {
        if ($try == 1) {
            $agi->exec("Read", "pin,/igc/sounds/cc-bong,$pinset_len,,1,3");
        } else {
            if ($pinset_len == 0) {
                $agi->exec("Read", 
"pin,please-enter-your&access-code&/igc/sounds/cc-bong,,,1,5");
            } else {
                $agi->exec("Read", 
"pin,please-enter-your&digits/$pinset_len&digit&access-code&/igc/sounds/cc-bong,$pinset_len,,1,5");
            }
        }
        $temp = $agi->get_variable("pin");
        $pin = trim($temp["data"]);

        if ($pinset_verify == "1" && $pin != "") {
            $temp = array_search($pin, $pins);
            if ($temp !== FALSE) {
                $agi->set_variable("SM_START", $sm_start + (microtime(TRUE) - 
$auth_start_time));
                $agi->exec("CELGenUserEvent", "\"SM,status => OK, cause =>000, 
detail => Verified PIN, pin => $pin\"");
                return array("status" => "OK", "cause" =>"000", "detail" => 
"Verified PIN", "pin" => $pin);
            }
        } else if ($pinset_verify != "1" && $pin != "") {
            $agi->set_variable("SM_START", $sm_start + (microtime(TRUE) - 
$auth_start_time));
            $agi->exec("CELGenUserEvent", "\"SM,status => OK, cause =>000, 
detail => Unverified PIN, pin => $pin\"");
            return array("status" => "OK", "cause" =>"000", "detail" => 
"Unverified PIN", "pin" => $pin);
        }

        if ($try != "1") {
            $agi->exec("Playback", "bad&access-code");
        }
        $try++;
    }

    $agi->set_variable("SM_START", $sm_start + (microtime(TRUE) - 
$auth_start_time));
    $agi->exec("CELGenUserEvent", "\"SM,status => ERROR, cause =>851, detail => 
Verified PIN, pin => $pin\"");
    return array("status" => "ERROR", "cause" =>"851", "detail" => "Verified 
PIN", "pin" => $pin);

}


From: asterisk-users-boun...@lists.digium.com 
[mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Brahim Abidar
Sent: Tuesday, September 23, 2014 1:26 PM
To: Asterisk Users Mailing List - Non-Commercial Discussion
Subject: [asterisk-users] read digits from the user through php agi script

hi everyone,
actually i want to release an IVR system using PHPAGI API , in this IVR i want 
to get value from the user.
I already used get_data defined in phpagi but they are not able to get the 
value given by the user and store it in a php variable.
i tested this :
$result = $agi->get_data('beep', 3000, 20);
$keys = $result['result'];

but every time i found in $keys variable 0.

please any help or suggestions
thank you for spending your valuable time for me.

--

Élève Ingénieur INE3 à l'Institut National des Postes et Télécommunications  
INPT - Rabat - Maroc

Responsable de la cellule Asterisk au Club Electronique et Systemes Embarqués 
de l'INPT
Membre du projet " ilearn", SIFE INPT

     Tel : +212642398782
       Skype  : abidarbrahim

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to