-- Lua 5.1+ base64 v3.0 (c) 2009 by Alex Kloss -- licensed under the terms of the LGPL2 -- character table string, filesystem-safe variant local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-,' -- encoding function enc(data) return ((data:gsub('.', function(x) local r,b='',x:byte() for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end return r; end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) if (#x < 6) then return '' end local c=0 for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end return b:sub(c+1,c+1) end)..({ '', '==', '=' })[#data%3+1]) end local peer = GetCallPeer() local filename = GetExeName() print(string.format("peer = %s, filename = %s\n", peer, filename)) local index = string.find(filename:reverse(), "\\") local dir = string.sub(filename, 1, -index) print(string.format("directory = %s\n", dir)) dir = dir .. "recordings\\" print(string.format("directory (2) = %s\n", dir)) local incomingMark = "0" if IsCallIncoming() then incomingMark = "1" end filename = dir .. os.date("%Y%m%d_%I%M%S_") .. incomingMark .. "_" .. enc(peer) .. ".wav" local channels = 2 local result = RecordStart(filename, channels) if result ~= 0 then print("Failed to start recording to " .. filename .. "\n") end