I should have mentioned in my example, it will still loop forever. You'll have to insert a step before priority 2 (or in the script) that tests if the line is still up If it is, you skip over the agi call and proceed to hangup.
On 5/25/05, Benjamin West <[EMAIL PROTECTED]> wrote: > First of all, I don't see where $y is initialised or used except in > the test condition of the while loop. That's probably your problem. > > Why not move the logic of the top loop into the dialplan? > > exten => s, 1, Answer > exten => s, 2, AGI(script) > exten => s, 3, Hangup() > exten => h, 4, DeadAGI(cleanup) > > then in your default case in your script send "SET PRIORITY 2" to *. > > On 5/25/05, Jon Farmer <[EMAIL PROTECTED]> wrote: > > 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 > > > _______________________________________________ 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