functions - how to get all args as a table

This code:
[lua]function ply_:SpeakLines(delay, args) // ply_ = metatable
if !IsValid(self) or self:Team() != 1 then return end;
table.insert(args, #args+1, “off”…table.Random({1,2,3}));
end[/lua]

You’re supposed to call it like this (also tried surrounding args in {} to no avail):
[lua]ply:SpeakLines(“overwatch”,"_comma",“targetblackout”);[/lua]

Gives me one of two errors:


[ERROR] gamemodes/overwatch/gamemode/init.lua:839: bad argument #1 to 'insert' (table expected, got string)

or


[ERROR] gamemodes/overwatch/gamemode/init.lua:839: attempt to get length of local 'args' (a nil value)

(there’s more code, but I cut the rest of it out since it won’t execute anyway because of the error and it’s not important)
???


function f( delay, ... )

    print( ... )

    local argtable = { ... }
    PrintTable( argtable )    

end

It is called the vararg expression.