def __init__(self, conn):
self._global_bit_rate = None<EOL>self._originate_bit_rate = None<EOL>self._answer_bit_rate = None<EOL>self._prefix_number = '<STR_LIT>'<EOL>self._primary_phone_number_idx = None<EOL>self._secondary_phone_number_idx = None<EOL>self.conn = conn<EOL>actual_telephone_table = self.conn.get_table_data(ACT_TELEPHONE_TBL)<EOL>global_parameters_table = self.conn.get_table_data(GLOBAL_PARAMETERS_TBL)<EOL>originate_parameters_table = self.conn.get_table_data(ORIGINATE_PARAMETERS_TBL)<EOL>originate_schedule_table = self.conn.get_table_data(ORIGINATE_SCHEDULE_TBL)<EOL>answer_parameters_table = self.conn.get_table_data(ANSWER_PARAMETERS_TBL)<EOL>if (actual_telephone_table) < <NUM_LIT>:<EOL><INDENT>raise C1219ParseError('<STR_LIT>', ACT_TELEPHONE_TBL)<EOL><DEDENT>use_extended_status = bool(actual_telephone_table[<NUM_LIT:0>] & <NUM_LIT>)<EOL>prefix_length = actual_telephone_table[<NUM_LIT:4>]<EOL>nbr_originate_numbers = actual_telephone_table[<NUM_LIT:5>]<EOL>phone_number_length = actual_telephone_table[<NUM_LIT:6>]<EOL>bit_rate_settings = (actual_telephone_table[<NUM_LIT:1>] >> <NUM_LIT:3>) & <NUM_LIT:3>  <EOL>self._can_answer = bool(actual_telephone_table[<NUM_LIT:0>] & <NUM_LIT:1>)<EOL>self._use_extended_status = use_extended_status<EOL>self._nbr_originate_numbers = nbr_originate_numbers<EOL>self._psem_identity = global_parameters_table[<NUM_LIT:0>]<EOL>if bit_rate_settings == <NUM_LIT:1>:<EOL><INDENT>if len(global_parameters_table) < <NUM_LIT:5>:<EOL><INDENT>raise C1219ParseError('<STR_LIT>', GLOBAL_PARAMETERS_TBL)<EOL><DEDENT>self._global_bit_rate = struct.unpack(conn.c1219_endian + '<STR_LIT:I>', global_parameters_table[<NUM_LIT:1>:<NUM_LIT:5>])[<NUM_LIT:0>]<EOL><DEDENT>if bit_rate_settings == <NUM_LIT:2>:<EOL><INDENT>self._originate_bit_rate = struct.unpack(conn.c1219_endian + '<STR_LIT:I>', originate_parameters_table[<NUM_LIT:0>:<NUM_LIT:4>])[<NUM_LIT:0>]<EOL>originate_parameters_table = originate_parameters_table[<NUM_LIT:4>:]<EOL><DEDENT>self._dial_delay = originate_parameters_table[<NUM_LIT:0>]<EOL>originate_parameters_table = originate_parameters_table[<NUM_LIT:1>:]<EOL>if prefix_length != <NUM_LIT:0>:<EOL><INDENT>self._prefix_number = originate_parameters_table[:prefix_length]<EOL>originate_parameters_table = originate_parameters_table[prefix_length:]<EOL><DEDENT>self._originating_numbers = {}<EOL>tmp = <NUM_LIT:0><EOL>while tmp < self._nbr_originate_numbers:<EOL><INDENT>self._originating_numbers[tmp] = {'<STR_LIT>': tmp, '<STR_LIT>': originate_parameters_table[:phone_number_length], '<STR_LIT:status>': None}<EOL>originate_parameters_table = originate_parameters_table[phone_number_length:]<EOL>tmp += <NUM_LIT:1><EOL><DEDENT>primary_phone_number_idx = originate_schedule_table[<NUM_LIT:0>] & <NUM_LIT:7><EOL>secondary_phone_number_idx = (originate_schedule_table[<NUM_LIT:0>] >> <NUM_LIT:4>) & <NUM_LIT:7><EOL>if primary_phone_number_idx < <NUM_LIT:7>:<EOL><INDENT>self._primary_phone_number_idx = primary_phone_number_idx<EOL><DEDENT>if secondary_phone_number_idx < <NUM_LIT:7>:<EOL><INDENT>self._secondary_phone_number_idx = secondary_phone_number_idx<EOL><DEDENT>if bit_rate_settings == <NUM_LIT:2>:<EOL><INDENT>self._answer_bit_rate = struct.unpack(conn.c1219_endian + '<STR_LIT:I>', answer_parameters_table[<NUM_LIT:0>:<NUM_LIT:4>])[<NUM_LIT:0>]<EOL><DEDENT>self.update_last_call_statuses()<EOL>
Initializes a new instance of the class and reads tables from the
corresponding decades to populate information.

@type conn: c1218.connection.Connection
@param conn: The driver to be used for interacting with the
necessary tables.