CREATE FUNCTION billing_internal() RETURNS trigger AS $billing_internal$
BEGIN
UPDATE
calls
SET
duration = NEW.duration,
billing = NEW.billsec,
disposition = NEW.disposition
WHERE
substr(NEW.channel,6,5) = calls.caller_id
AND NEW.calldate BETWEEN calls.created_at - '2 seconds'::interval AND calls.created_at + '2 seconds'::interval;
RETURN NEW;
END;
$billing_internal$ LANGUAGE plpgsql;
CREATE TRIGGER billing_system_internal BEFORE INSERT OR UPDATE ON cdr FOR EACH ROW EXECUTE PROCEDURE billing_internal();
CREATE FUNCTION billing_external() RETURNS trigger AS $billing_external$
BEGIN
UPDATE
calls
SET
duration = NEW.duration,
billing = NEW.billsec,
disposition = NEW.disposition
WHERE
NEW.dst = calls.dialed_number
AND NEW.calldate BETWEEN calls.created_at - '2 seconds'::interval AND calls.created_at + '2 seconds'::interval;
RETURN NEW;
END;
$billing_external$ LANGUAGE plpgsql;
CREATE TRIGGER billing_system_external BEFORE INSERT OR UPDATE ON cdr FOR EACH ROW EXECUTE PROCEDURE billing_external();
CREATE FUNCTION billing_legacy_external() RETURNS trigger AS $billing_legacy_external$
BEGIN
UPDATE
calls
SET
duration = NEW.duration,
billing = NEW.billsec,
disposition = NEW.disposition
WHERE
substring(NEW.dstchannel,6,5) = calls.dialed_number
AND NEW.src = '40829350'
AND NEW.calldate BETWEEN calls.created_at - '2 seconds'::interval AND calls.created_at + '2 seconds'::interval;
RETURN NEW;
END;
$billing_legacy_external$ LANGUAGE plpgsql;
CREATE TRIGGER billing_system_legacy_external BEFORE INSERT OR UPDATE ON cdr FOR EACH ROW EXECUTE PROCEDURE billing_legacy_external();