Documentation
¶
Overview ¶
Package prompt is the utility section for working with asterisk prompts.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultFirstDigitTimeout is the maximum time to wait for the // first digit after a prompt, if not otherwise set. DefaultFirstDigitTimeout = 4 * time.Second // DefaultInterDigitTimeout is the maximum time to wait for additional // digits after the first is received. DefaultInterDigitTimeout = 3 * time.Second // DefaultOverallTimeout is the maximum time to wait for a response // regardless of the number of received digits or pattern matching. DefaultOverallTimeout = 3 * time.Minute )
var Logger = log15.New()
Logger defaults to a discard handler (null output). If you wish to enable logging, you can set your own handler like so:
ari.Logger.SetHandler(log15.StderrHandler)
Functions ¶
func MatchLenFunc ¶
MatchLenFunc returns a MatchFunc which returns Complete if the given number of digits are received and Incomplete otherwise.
func MatchLenOrTerminatorFunc ¶
MatchLenOrTerminatorFunc returns a MatchFunc which returns Complete if the given number of digits are received or the given terminal string is received. Otherwise, it returns Incomplete.
Types ¶
type Options ¶
type Options struct {
// FirstDigitTimeout is the maximum length of time to wait
// after the prompt sequence ends for the user to enter
// a response.
// If not specified, the default is DefaultFirstDigitTimeout.
FirstDigitTimeout time.Duration
// InterDigitTimeout is the maximum length of time to wait
// for an additional digit after a digit is received.
// If not specified, the default is DefaultInterDigitTimeout.
InterDigitTimeout time.Duration
// OverallTimeout is the maximum length of time to wait
// for a response regardless of digits received.
// If not specified, the default is DefaultOverallTimeout.
OverallTimeout time.Duration
// EchoData is the flag for saying each digit as it is input
EchoData bool
// MatchFunc is an optional function which, if supplied, returns
// a string and an int.
//
// The string is allows the MatchFunc to return a different number
// to be used as `result.Data`. This is commonly used for prompts
// which look for a terminator. In such a practice, the terminator
// would be stripped from the match and this argument would be populated
// with the result. Otherwise, the original string should be returned.
// NOTE: Whatever is returned here will become `result.Data`.
//
// The int parameter indicates the result of the match, and it should
// be one of:
// Incomplete (0) : insufficient digits to determine match.
// Complete (1) : A match was found.
// Invalid (2) : A match could not be found, given the digits received.
// If this function returns a non-zero int, then the prompt will be stopped.
// If not specified MatchAny will be used.
MatchFunc func(string) (string, Status)
// Which type of word to use when playing '#'
SoundHash string // pound or hash
}
Options describes options for the prompt
type Result ¶
type Result struct {
// Data is the received data (digits) during the prompt
Data string
// Status is the status of the prompt play
Status Status
}
Result describes the result of a prompt operation
type Status ¶
type Status int
Status indicates the status of the prompt operation.
const ( // Incomplete indicates that there are not enough digits to determine a match. Incomplete Status = iota // Complete means that a match was found from the digits received. Complete // Invalid indicates that a match cannot be found from the digits received. // No more digits should be received. Invalid // Canceled indicates that matching was canceled Canceled // Timeout indicates that the matching failed due to timeout Timeout // Hangup indicates that a match could not be made due to // the channel being hung up. Hangup // Failed indicates that matching could not be completed // due to a failure (usually an error) Failed )
func MatchAny ¶
MatchAny is a MatchFunc which returns Complete if the pattern contains any characters.