2017-04-11 3 views
0

J'essaie de compter le nombre de chiffres qu'un appelant reçoit lorsqu'il est invité. Si le nombre de chiffres entré n'est pas égal à 10, je voudrais qu'il retourne au début du fichier. Si le nombre de chiffres entré est égal à 10, je voudrais continuer à exécuter le programme. Avec le code ci-dessous, peu importe l'entrée des appelants, cela revient toujours au début. Quelqu'un peut-il me donner un aperçu ici?PHP/Asterisk AGI Compte le nombre de chiffres de GetData

begining: { 

    $agi->stream_file('file1'); 
    $result = $agi->get_data('beep', 6000, 10); 
    $numlength = mb_strlen(utf8_decode($result)); 
    if ($numlength < 10){ 
      goto begining; 
    } 

    else { 
     $number= $result['result']; 
     $agi->verbose("Number: ".$number); 
    } 
} 
+0

'si le changement (numlength de $ <10)' à 'si (numlength de $! = 10)' –

+0

J'ai utilisé cette variation et il n'a pas aidé. La fonction get_data n'autorisera que jusqu'à 10 chiffres de toute façon. D'autres idées? – squid

Répondre

1

Vous devez spécifier la partie de la matrice que vous comptez. Ajoutez ['result'] à votre variable $ result.

$agi->stream_file('file1'); 
$result = $agi->get_data('beep', 6000, 10); 
$numlength = mb_strlen(utf8_decode($result['result'])); 
    if ($numlength < 10){ 
      goto begining; 
    } 

    else { 
     $number= $result['result']; 
     $agi->verbose("Number: ".$number); 
    } 
}