Moises Silva wrote:

could you post the script, the output of the script in the asterisk
console and which asterisk version are you working with?

See below

This is just a proof of concept script so its a bit basic...


#!/usr/bin/php -q
<?php
   set_time_limit(30);
   require "phpagi.php";
   error_reporting(0);
   $agi = new AGI();
   $agi->agi_exec("ANSWER");
while($y != 1){
   $response = "";
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/enter_ref #");
   $res = getDTMF("#",7);
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/you_entered #");
   $response .= trim($res);
   sayNumber($response);
   switch($response) {

   case "12345":
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/adsl_username_is #");
       $username = "JONFARMER";
       $userarray = myStringSplit(strtolower($username),1);
       $usercount = count($userarray);
       for($i=0;$i<$usercount;$i++){
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/letters/" . $userarray[$i] . " #");
       }
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/domain1t #");
       break;

   case "67891":
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/adsl_username_is #");
       $username = "test_user";
       $userarray = myStringSplit(strtolower($username),1);
       $usercount = count($userarray);
       for($i=0;$i<$usercount;$i++){
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/letters/" . $userarray[$i] . " #");
       }
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/domain2 #");
       break;
case "00":
       $agi->agi_exec("STREAM FILE thanks #");
       exit();
       break;

   default:
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/adsl/account_not_found #");
       break;

   }
}
   $agi->agi_exec("STREAM FILE thanks #");
   unlink("/tmp/*.wav");


function sayNumber($digit) {
   global $agi;
   $res = myStringSplit($digit,1);
   $num = count($res);
   for($x=0;$x<$num;$x++) {
$agi->agi_exec("STREAM FILE /usr/share/asterisk/sounds/digits/" . $res[$x] ." #");
   }
   sleep(1);
}
function myStringSplit($string, $long){

  $long--;
  // Converting the string into an array
  For( $i=0; isset($string{$i}); $i++){
      $myarray[] = $string{$i};
  }

  // Making arrays from the array
  $a=0;
  $end = $long;
  $iend = count($myarray) / ( $long + 1 );
  For( $i=0; $i<$iend; $i++){

      For( ; $a<=$end; $a++){

          $array[$i] = $array[$i].$myarray[$a];
      }
      $end = $end + $long + 1;
  }

  return $array;
}


function getDTMF($term, $i) {
   global $agi;
   for($x=1;$x<$i;$x++) {
       unset($res);
       $res = $agi->agi_getdtmf(1,10000,$term,$prompt=FALSE);
       $agi->conlog("Res: " . $res[0]);
       if($res[0] == "") {
           break;
       }
       if($res[0] != "") {
           $result1 .= $res[0];
           //$agi->conlog("Result var: " . $result1);
       }
       $agi->conlog("Result var: " . $result1);
       $agi->conlog("Channel: " . $agi->request["agi_channel"]);
       $status = $agi->agi_channel_status($agi->request["agi_channel"]);
       $agi->conlog("Status code: " . $status["status"]);
       $agi->conlog("Description: " . $status["description"]);
       if($status["description"] != "Line is up") {
           exit();
       }
   }
   return $result1;
}
?>


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

Reply via email to