src/PAGI/Node/Node.php
protected function doInput()
    {
        /* @var $result IReadResult */
        $this->resetInput();
        $this->inputAttemptsUsed++;
        $result = $this->playPrePromptMessages();
        if (!$this->acceptPrePromptInputAsInput) {
            $result = $this->playPromptMessages();
            if ($result !== null && !$result->isTimeout()) {
                $this->acceptInput($result->getDigits());
            }
        } elseif ($result !== null && !$result->isTimeout()) {
            $this->acceptInput($result->getDigits());
        } else {
            $result = $this->playPromptMessages();
            if ($result !== null) {
                $this->acceptInput($result->getDigits());
            }
        }
        if ($this->inputLengthIsAtLeast($this->maxInput) // max = 1
            || $this->wasCancelled()
            || ($this->isComplete() && !$this->hasInput()) // user pressed eoi
        ) {
            return;
        }
        $len = strlen($this->input);
        $start = time();
        for ($i = $len; $i < $this->maxInput; $i++) {
            if ($this->totalTimeForInput != -1) {
                $totalElapsedTime = (time() - $start) * 1000;
                if ($totalElapsedTime >= $this->totalTimeForInput) {
                    $this->logDebug("Expired total available time for input");
                    break;
                }
            }
            $this->logDebug($this->name . ": Reading Digit #: " . ($i + 1));
            $result = $this->callClientMethods(array(
                    array('waitDigit' => array($this->timeBetweenDigits))
            ));
            if ($result->isTimeout()) {
                $this->logDebug("Expired available time per digit");
                break;
            }
            $input = $result->getDigits();
            $this->acceptInput($input);
            if ($this->inputIsEnd($input) || $this->wasCancelled()) {
                break;
            }
        }
    }
protected function doInput()
    {
        /* @var $result IReadResult */
        $this->resetInput();
        $this->inputAttemptsUsed++;
        $result = $this->playPrePromptMessages();
        if (!$this->acceptPrePromptInputAsInput) {
            $result = $this->playPromptMessages();
            if ($result !== null && !$result->isTimeout()) {
                $this->acceptInput($result->getDigits());
            }
        } elseif ($result !== null && !$result->isTimeout()) {
            $this->acceptInput($result->getDigits());
        } else {
            $result = $this->playPromptMessages();
            if ($result !== null) {
                $this->acceptInput($result->getDigits());
            }
        }
        if ($this->inputLengthIsAtLeast($this->maxInput) // max = 1
            || $this->wasCancelled()
            || ($this->isComplete() && !$this->hasInput()) // user pressed eoi
        ) {
            return;
        }
        $len = strlen($this->input);
        $start = time();
        for ($i = $len; $i < $this->maxInput; $i++) {
            if ($this->totalTimeForInput != -1) {
                $totalElapsedTime = (time() - $start) * 1000;
                if ($totalElapsedTime >= $this->totalTimeForInput) {
                    $this->logDebug("Expired total available time for input");
                    break;
                }
            }
            $this->logDebug($this->name . ": Reading Digit #: " . ($i + 1));
            $result = $this->callClientMethods(array(
                    array('waitDigit' => array($this->timeBetweenDigits))
            ));
            if ($result->isTimeout()) {
                $this->logDebug("Expired available time per digit");
                break;
            }
            $input = $result->getDigits();
            $this->acceptInput($input);
            if ($this->inputIsEnd($input) || $this->wasCancelled()) {
                break;
            }
        }
    }
protected function doInput ( ) { /* @var $result IReadResult */ $ this -> resetInput ( ) ; $ this -> inputAttemptsUsed ++ ; $ result = $ this -> playPrePromptMessages ( ) ; if ( ! $ this -> acceptPrePromptInputAsInput ) { $ result = $ this -> playPromptMessages ( ) ; if ( $ result !== null && ! $ result -> isTimeout ( ) ) { $ this -> acceptInput ( $ result -> getDigits ( ) ) ; } } elseif ( $ result !== null && ! $ result -> isTimeout ( ) ) { $ this -> acceptInput ( $ result -> getDigits ( ) ) ; } else { $ result = $ this -> playPromptMessages ( ) ; if ( $ result !== null ) { $ this -> acceptInput ( $ result -> getDigits ( ) ) ; } } if ( $ this -> inputLengthIsAtLeast ( $ this -> maxInput ) // max = 1 || $ this -> wasCancelled ( ) || ( $ this -> isComplete ( ) && ! $ this -> hasInput ( ) ) // user pressed eoi ) { return ; } $ len = strlen ( $ this -> input ) ; $ start = time ( ) ; for ( $ i = $ len ; $ i < $ this -> maxInput ; $ i ++ ) { if ( $ this -> totalTimeForInput != - 1 ) { $ totalElapsedTime = ( time ( ) - $ start ) * 1000 ; if ( $ totalElapsedTime >= $ this -> totalTimeForInput ) { $ this -> logDebug ( "Expired total available time for input" ) ; break ; } } $ this -> logDebug ( $ this -> name . ": Reading Digit #: " . ( $ i + 1 ) ) ; $ result = $ this -> callClientMethods ( array ( array ( 'waitDigit' => array ( $ this -> timeBetweenDigits ) ) ) ) ; if ( $ result -> isTimeout ( ) ) { $ this -> logDebug ( "Expired available time per digit" ) ; break ; } $ input = $ result -> getDigits ( ) ; $ this -> acceptInput ( $ input ) ; if ( $ this -> inputIsEnd ( $ input ) || $ this -> wasCancelled ( ) ) { break ; } } }
Internally used to accept input from the user. Plays pre prompt messages,
prompt, and waits for a complete input or cancel.

@return void
Internally used to accept input from the user . Plays pre prompt messages prompt and waits for a complete input or cancel .