
update phonetype set maxcalls = lines + 1;
update phonetype set maxcalls = '1' where id = 240; -- Clarity phones

CREATE OR REPLACE FUNCTION insert_phone() RETURNS trigger SECURITY DEFINER AS '
  DECLARE
    pt record;
    ptb record;
  BEGIN
    select into pt * from phonetype where id = NEW.phonetype;
    NEW.dahdi_adsi = pt.dahdi_adsi;
    NEW.threewaycalling = pt.threewaycalling;
    NEW.cancallforward = pt.cancallforward;
    NEW.send_cid = pt.send_cid;
    NEW.send_cid_cw = pt.send_cid_cw;
    NEW.qualify = pt.qualify;
--    NEW.codec1 = pt.codec1; -- leave empty, so they will default to the values for this phonetype.
--    NEW.codec2 = pt.codec2;
--    NEW.codec3 = pt.codec3;
--    NEW.codec4 = pt.codec4;
    NEW.ringtone = pt.ringtone;
    NEW.mwi_notification = pt.mwi_notification;
    NEW.mwi_dialtone = pt.mwi_dialtone;
    NEW.transfer = pt.transfer;
    NEW.callwaiting = pt.callwaiting;
    NEW.maxcalls = pt.maxcalls;
    NEW.logo_url = pt.logo_url;
    NEW.directory_url = pt.directory_url;
    NEW.services_url = pt.services_url;
    NEW.headset_device = pt.headset_device;
    NEW.vol_headset = pt.vol_headset;
    NEW.vol_headset_mic = pt.vol_headset_mic;
    NEW.vol_handset = pt.vol_handset;
    NEW.vol_handset_mic = pt.vol_handset_mic;
    NEW.vol_speaker = pt.vol_speaker;
    NEW.vol_speaker_mic = pt.vol_speaker_mic;
    NEW.vol_ringer = pt.vol_ringer;
    NEW.vol_callwaiting = pt.vol_callwaiting;
    NEW.transfer_on_hangup = pt.transfer_on_hangup;
    NEW.allow_dnd = pt.allow_dnd;
    NEW.show_missed = pt.show_missed;
    NEW.cmc = pt.cmc;
    NEW.vframerate = pt.vframerate;
    NEW.vbitrate = pt.vbitrate;
    NEW.vpacketsize = pt.vpacketsize;
    NEW.hash_xfer_in = pt.hash_xfer_in;
    NEW.hash_xfer_out = pt.hash_xfer_out;

    RETURN NEW;
  END;
' LANGUAGE plpgsql;

drop trigger insert_phone_trigger on phone;
CREATE TRIGGER insert_phone_trigger BEFORE INSERT ON phone FOR EACH ROW EXECUTE PROCEDURE insert_phone();

