#!/usr/bin/env lua5.1
--local ut = require 'ngcp.utils'.table
local NGCPDlgList = require 'ngcp.dlglist'
local config = "/etc/kamailio/proxy/dlgcnt.lua.cfg"

local argparse = require "argparse"
local parser = argparse() {
	name = "ngcp-dlglist-clean",
	description = "helper to remove kamailio queue dialogs from redis db"
}

parser:argument("callid", "Call-Id to remove")

-- luacheck: globals dlg_config
KSR = {}
KSR.log = function (level, str)
	print(string.format("[%s] %s", level, str))
end
function KSR.dbg(message)
	KSR.log("debug", message)
end
function KSR.err(message)
	KSR.log("error", message)
end
function KSR.info(message)
	KSR.log("info", message)
end
function KSR.notice(message)
	KSR.log("info", message)
end
function KSR.warn(message)
	KSR.log("warn", message)
end
function KSR.crit(message)
	KSR.log("fatal", message)
end

local function get_config()
	if os.getenv('DLG_CONFIG') then
	  config = os.getenv('DLG_CONFIG')
	end

	local ok,e = pcall(dofile,config)
	if not ok then
	  io.stderr:write(e..'\n')
	  io.stderr:write("using defaults\n")
	end
end

local args = parser:parse()

get_config()

local dlg = NGCPDlgList:new()
if dlg_config then
	dlg.config.central.host = dlg_config.central.host
	dlg.config.central.port = dlg_config.central.port
	dlg.config.central.db = dlg_config.central.db
	dlg.config.pair.host = dlg_config.pair.host
	dlg.config.pair.port = dlg_config.pair.port
	dlg.config.pair.db = dlg_config.pair.db
	--print(string.format("dlg.config:%s", ut.tostring(dlg.config)))
end

dlg:destroy(args.callid)
