BEGIN;
alter table phoneline_forwarding add column when_dnd varchar(12);
update phoneline_forwarding set when_dnd = 'refuse' where when_dnd IS NULL;
alter table phoneline_forwarding alter column when_dnd set default 'refuse';
alter table phoneline_forwarding alter column when_dnd set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_dnd_check CHECK (when_dnd IN ('voicemail','operator','forward','busy','refuse','mobile','ask','hunt'));

alter table phoneline_forwarding add column when_dnd_ask_operator varchar(3);
update phoneline_forwarding set when_dnd_ask_operator = 'no' where when_dnd_ask_operator IS NULL;
alter table phoneline_forwarding alter column when_dnd_ask_operator set default 'no';
alter table phoneline_forwarding alter column when_dnd_ask_operator set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_dnd_ask_operator_check CHECK (when_dnd_ask_operator IN ('yes','no'));

alter table phoneline_forwarding add column when_dnd_ask_voicemail varchar(3);
update phoneline_forwarding set when_dnd_ask_voicemail = 'no' where when_dnd_ask_voicemail IS NULL;
alter table phoneline_forwarding alter column when_dnd_ask_voicemail set default 'no';
alter table phoneline_forwarding alter column when_dnd_ask_voicemail set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_dnd_ask_voicemail_check CHECK (when_dnd_ask_voicemail IN ('yes','no'));

alter table phoneline_forwarding add column when_dnd_ask_hunt varchar(3);
update phoneline_forwarding set when_dnd_ask_hunt = 'no' where when_dnd_ask_hunt IS NULL;
alter table phoneline_forwarding alter column when_dnd_ask_hunt set default 'no';
alter table phoneline_forwarding alter column when_dnd_ask_hunt set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_dnd_ask_hunt_check CHECK (when_dnd_ask_hunt IN ('yes','no'));

alter table phoneline_forwarding add column when_dnd_ask_mobile varchar(3);
update phoneline_forwarding set when_dnd_ask_mobile = 'no' where when_dnd_ask_mobile IS NULL;
alter table phoneline_forwarding alter column when_dnd_ask_mobile set default 'no';
alter table phoneline_forwarding alter column when_dnd_ask_mobile set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_dnd_ask_mobile_check CHECK (when_dnd_ask_mobile IN ('yes','no'));

alter table phoneline_forwarding add column when_dnd_number varchar(24);
update phoneline_forwarding set when_dnd_number = '' where when_dnd_number IS NULL;
alter table phoneline_forwarding alter column when_dnd_number set default '';
alter table phoneline_forwarding alter column when_dnd_number set NOT NULL;

alter table phoneline_forwarding add column when_unreachable varchar(12);
update phoneline_forwarding set when_unreachable = 'refuse' where when_unreachable IS NULL;
alter table phoneline_forwarding alter column when_unreachable set default 'refuse';
alter table phoneline_forwarding alter column when_unreachable set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_unreachable_check CHECK (when_unreachable IN ('voicemail','operator','forward','busy','refuse','mobile','ask','hunt'));

alter table phoneline_forwarding add column when_unreachable_ask_operator varchar(3);
update phoneline_forwarding set when_unreachable_ask_operator = 'no' where when_unreachable_ask_operator IS NULL;
alter table phoneline_forwarding alter column when_unreachable_ask_operator set default 'no';
alter table phoneline_forwarding alter column when_unreachable_ask_operator set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_unreachable_ask_operator_check CHECK (when_unreachable_ask_operator IN ('yes','no'));

alter table phoneline_forwarding add column when_unreachable_ask_voicemail varchar(3);
update phoneline_forwarding set when_unreachable_ask_voicemail = 'no' where when_unreachable_ask_voicemail IS NULL;
alter table phoneline_forwarding alter column when_unreachable_ask_voicemail set default 'no';
alter table phoneline_forwarding alter column when_unreachable_ask_voicemail set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_unreachable_ask_voicemail_check CHECK (when_unreachable_ask_voicemail IN ('yes','no'));

alter table phoneline_forwarding add column when_unreachable_ask_hunt varchar(3);
update phoneline_forwarding set when_unreachable_ask_hunt = 'no' where when_unreachable_ask_hunt IS NULL;
alter table phoneline_forwarding alter column when_unreachable_ask_hunt set default 'no';
alter table phoneline_forwarding alter column when_unreachable_ask_hunt set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_unreachable_ask_hunt_check CHECK (when_unreachable_ask_hunt IN ('yes','no'));

alter table phoneline_forwarding add column when_unreachable_ask_mobile varchar(3);
update phoneline_forwarding set when_unreachable_ask_mobile = 'no' where when_unreachable_ask_mobile IS NULL;
alter table phoneline_forwarding alter column when_unreachable_ask_mobile set default 'no';
alter table phoneline_forwarding alter column when_unreachable_ask_mobile set NOT NULL;
alter table phoneline_forwarding add constraint phoneline_forwarding_when_unreachable_ask_mobile_check CHECK (when_unreachable_ask_mobile IN ('yes','no'));

alter table phoneline_forwarding add column when_unreachable_number varchar(24);
update phoneline_forwarding set when_unreachable_number = '' where when_unreachable_number IS NULL;
alter table phoneline_forwarding alter column when_unreachable_number set default '';
alter table phoneline_forwarding alter column when_unreachable_number set NOT NULL;
COMMIT;

