This is an Asterisk FastAGI interface library for V-Lang.
modulemainimportouri028.vagipubstructAgi {vagi.AGI}fnmain() {mutagi:= Agi{}vagi.listen('5000',mut&agi)}pubfn (mut a Agi)instance() {defer {a.close()}x:= a.get_data('beep','5000','13')println(x)}
fnlisten<T>(portstring,mut a T)fnnew(mut conn net.TcpConn,mut a AGI) AGIfn (a AGI)instance()structAGI {pubmut:// Variables stored the initial variables// transmitted from Asterisk at the start// of the AGI session. variablesmap[string]string r io.BufferedReader conn net.TcpConn mu sync.Mutex}fn (mut a AGI)answer()fn (mut a AGI)async_agi_break() Responsefn (mut a AGI)channel_status() Responsefn (mut a AGI)close()fn (mut a AGI)control_stream_file(filenamestring,mut escape_digits []string, skip_msstring, ff_charstring, rew_charstring, pause_charstring, offsetmsstring) Responsefn (mut a AGI)database_del(familystring, keystring) Responsefn (mut a AGI)database_del_tree(familystring, key_treestring) Responsefn (mut a AGI)database_get(familystring, keystring) Responsefn (mut a AGI)database_put(familystring, keystring, valuestring) Responsefn (mut a AGI)dial(targetstring, timeoutstring, paramsstring)fn (mut a AGI)exec(cmd ...string) Responsefn (mut a AGI)get_data(filestring, timeoutstring, max_digitsstring) Responsefn (mut a AGI)get_full_variable(namestring, channel_namestring) Responsefn (mut a AGI)get_option(filenamestring,mut escape_digits []string, timeoutstring) Responsefn (mut a AGI)get_variable(keystring) Responsefn (mut a AGI)go_sub(contextstring, extensionstring, prioritystring, opt_argstring)fn (mut a AGI)hangup()fn (mut a AGI)noop()fn (mut a AGI)receive_char(timeoutstring)fn (mut a AGI)receive_text(timeoutstring)fn (mut a AGI)record_file(filestring, formatstring,mut escape_digits []string, timeoutstring, offset_samplesstring, beepbool, silencestring) Responsefn (mut a AGI)say_alpha(labelstring,mut escape_digits []string) Responsefn (mut a AGI)say_date(datestring,mut escape_digits []string)fn (mut a AGI)say_date_time(datestring,mut escape_digits []string, formatstring, timezonestring)fn (mut a AGI)say_digits(datastring,mut escape_digits []string)fn (mut a AGI)say_number(datastring,mut escape_digits []string, genderstring)fn (mut a AGI)say_phonetic(datastring,mut escape_digits []string)fn (mut a AGI)say_time(datestring,mut escape_digits []string)fn (mut a AGI)send_command(cmdstring) Responsefn (mut a AGI)send_image(namestring)fn (mut a AGI)send_text(textstring)fn (mut a AGI)set_auto_hangup(timestring)fn (mut a AGI)set_caller_id(caller_idstring)fn (mut a AGI)set_context(contextstring)fn (mut a AGI)set_extension(extensionstring)fn (mut a AGI)set_music(modestring, class_namestring)fn (mut a AGI)set_priority(prioritystring)fn (mut a AGI)set_variable(namestring, valuestring)fn (mut a AGI)stream_file(filenamestring,mut escape_digits []string)fn (mut a AGI)verbose(messagestring, levelstring)fn (mut a AGI)wait_for_digit(timeoutstring)structResponse {pubmut: errorstring statusstring// HTTP-style status code receivedresultstring// Asterisk result code valuestring// Value is the (optional) string value returned}