module Directory class Office attr_reader :name, :mainnum, :cidfor911, :psap def initialize(name, mainnum, cidfor911, psap) @name = name @mainnum = mainnum @cidfor911 = cidfor911 @psap = psap end def areacode @mainnum[0..2] end end @@offices = { 1 => Office.new("Salt Lake","8017477150","8017477150","911"), 2 => Office.new("Denver","3036298337","8019906292","18015555555"), 3 => Office.new("Phoenix","6023344020","8019906297","18015555555"), 4 => Office.new("Boise","2083775300","8019906291","18015555555") } def self.offices @@offices end class User attr_reader :name, :password, :email, :extension, :numofphones, :office, :mac def phonetype(phonetype=nil) if(phonetype.nil?) @phonetype else @phonetype = phonetype self end end def callgroup(callgroup=nil) if(callgroup.nil?) @callgroup else @callgroup = callgroup self end end def voicemail(voicemail=nil) if(voicemail.nil?) @voicemail else @voicemail = voicemail self end end def initialize(name, password, extension, mac, numofphones=1) @name = name @password = password @name.downcase.scan(/^(\w+)\s/) { |n| @email = "#{n}@constructioncapitalsource.com" } @extension = extension @mac = mac @numofphones = numofphones @callgroup = extension.to_s.slice(0,1) @office = Directory.offices[@callgroup.to_i] if(@office.nil?) #This is only temporary while we have testing extensions @office = Directory.offices[1] end @voicemail = true @phonetype = "sipura" end def devices if (numofphones > 1) list = [] numofphones.downto(1) {|n| list.push((n.to_s + extension.to_s).to_i) } else list = [ extension ] end list.collect! do |num| "SIP/#{num}" end list end end @@intercoms = { 1000 => [ 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028 ], 1001 => [ 1010, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1022, 1023, 1025, 1026, 1028 ], 1002 => [ 1011, 1012, 1020, 1021, 1024, 1027 ], 2000 => [ 2001, 2002 ], 3000 => [ 3001, 3002, 3003 ] # 9000 is company wide and is auto generated } @@users = [ User.new('Employee 1', 'password', 1010, '000e08db8781', 2), User.new('Employee 2', 'password', 1011, '0004f205eaef').callgroup(11).phonetype("polycom"), User.new('Employee 3', 'password', 1012, '0004f2048736').callgroup(11).phonetype("polycom"), User.new('Employee 4', 'password', 1013, '000e08db877e'), User.new('Employee 5', 'password', 1014, '000e08db8673'), User.new('Employee 6', 'password', 1015, '000e08db8675'), User.new('Employee 7', 'password', 1016, '000e08db8674'), User.new('Employee 8', 'password', 1017, 'dev000e08db9077'), User.new('Employee 9', 'password', 1019, '000e08db8672'), User.new('Employee 10', 'password', 1018, '000e08db866f'), User.new('Employee 11', 'password', 1020, '000e08db8670').callgroup(11), User.new('Employee 12', 'password', 1021, '000e08db866d').callgroup(11), User.new('Employee 13', 'password', 1022, '000e08db866e'), User.new('Employee 14', 'password', 1023, '000e08db866c'), User.new('Employee 15', 'password', 1024, '000e08db935a').callgroup(11), User.new('Employee 16', 'password', 1025, '000e08db8759').voicemail(false), User.new('Employee 17', 'password', 1026, '000e08db877b'), User.new('Employee 18', 'password', 1027, '000e08db8757', 2).callgroup(11), User.new('Employee 19', 'password', 1028, '000e08db907b'), User.new('Employee 20', 'password', 1029, '000e08db907f'), User.new('Employee 21', 'password', 2001, '000e08db935b'), User.new('Employee 22', 'password', 2002, '000e08db935e'), User.new('Employee 23', 'password', 3001, '000e08db875b'), User.new('Employee 24', 'password', 3002, '000e08db8758'), User.new('Employee 25', 'password', 3003, '000e08db8755'), User.new('Employee 26', 'password', 3004, '000e08db907e'), User.new('Employee 27', 'password', 4010, '000e08db8fc7'), User.new('Employee 28', 'password', 4011, '000e08db875a'), User.new('Employee 29', 'password', 4012, '000e08db8756'), User.new('Employee 30', 'password', 4013, '000e08db8754'), ] def self.users @@users end def self.intercoms @@intercoms end end # vim: sw=2:ts=2:filetype=ruby