ascend = { # The name of the log format log.format.format_label = "Ascend Log Format" log.miscellaneous.log_data_type = "syslog_required" log.miscellaneous.log_format_type = "other" # The follow data types are not supported for this format # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = "ASCEND: slot [0-9]+ port [0-9]+, line [0-9]+, channel [0-9]+, Incoming Call" # Log entries are called downloads statistics.miscellaneous.entry_name = "calls" # All log field parsing will be done using the parsing filters log.format.parse_only_with_filters = "true" # Log fields log.fields = { slot = { label = "$lang_stats.field_labels.slot" type = "flat" index = 0 subindex = 0 } # slot port = { label = "$lang_stats.field_labels.port" type = "flat" index = 0 subindex = 0 } # port line = { label = "$lang_stats.field_labels.line" type = "flat" index = 0 subindex = 0 } # line channel = { label = "$lang_stats.field_labels.channel" type = "flat" index = 0 subindex = 0 } # channel calling_number = { label = "$lang_stats.field_labels.calling_number" type = "flat" index = 0 subindex = 0 } # calling_number called_number = { label = "$lang_stats.field_labels.called_number" type = "flat" index = 0 subindex = 0 } # called_number call = { label = "$lang_stats.field_labels.call" type = "flat" index = 0 subindex = 0 } # call cl = { label = "$lang_stats.field_labels.cl" type = "flat" index = 0 subindex = 0 } # cl result = { label = "$lang_stats.field_labels.result" type = "flat" index = 0 subindex = 0 } # result username = { label = "$lang_stats.field_labels.username" type = "flat" index = 0 subindex = 0 } # username c = { label = "$lang_stats.field_labels.c" type = "flat" index = 0 subindex = 0 } # c p = { label = "$lang_stats.field_labels.p" type = "flat" index = 0 subindex = 0 } # p s = { label = "$lang_stats.field_labels.s" type = "flat" index = 0 subindex = 0 } # s rate = { label = "$lang_stats.field_labels.rate" type = "flat" index = 0 subindex = 0 } # rate host = { label = "$lang_stats.field_labels.host" type = "flat" index = 0 subindex = 0 } # host } # log.fields # # Log Parsing Filters log.parsing_filters = { # rekey on Incoming Call lines. The syslog parses the date/time right before this, into the empty key, and we rekey here # to use the real key. 1 = { label = "1" comment = "" value = "if (matches_regular_expression(current_log_line(), '()ASCEND: slot [0-9]+ port [0-9]+, line [0-9]+, channel [0-9]+, Incoming Call, [0-9]+ \\\\[MBID ([0-9]+)')) then rekey_collected_entry($1, $2);" } # 1 # Parse call lines 2 = { label = "2" comment = "" value = "collect_fields_using_regexp('()ASCEND: call ([0-9]+) CL ([^ ]+) u=([^ ]+) c=([0-9]+) p=([0-9]+) s=([0-9]+) r=([0-9]+) h=([0-9.]+)', '*KEY*,call,cl,user,c,p,s,rate,host')" } # 2 # Accept call lines 3 = { label = "3" comment = "" value = "accept_collected_entry_using_regexp('()ASCEND: call [0-9]+ CL ([^ ]+) u=', false)" } # 3 # Parse incoming call lines 4 = { label = "4" comment = "" value = "collect_fields_using_regexp('ASCEND: slot ([0-9]+) port ([0-9]+), line ([0-9]+), channel ([0-9]+), Incoming Call, [0-9]+ \\\\[MBID ([0-9]+); ([0-9]*)->([0-9]*)\\\\]', 'slot,port,line,channel,*KEY*,calling_number,called_number')" } # 4 # Parse Assigned to port lines 5 = { label = "5" comment = "" value = "collect_fields_using_regexp('ASCEND: slot ([0-9]+) port ([0-9]+), Assigned to port, [0-9]+ \\\\[MBID ([0-9]+); ([0-9]*)->([0-9]*)\\\\]', 'slot,port,*KEY*,calling_number,called_number')" } # 5 # Parse Assigned to port lines 6 = { label = "6" comment = "" value = "collect_fields_using_regexp('ASCEND: slot ([0-9]+) port ([0-9]+), (Call Disconnected) \\\\[MBID ([0-9]+); ([0-9]*)->([0-9]*)\\\\]', 'slot,port,result,*KEY*,calling_number,called_number')" } # 6 # Parse LAN session down lines 7 = { label = "7" comment = "" value = "collect_fields_using_regexp('ASCEND: slot ([0-9]+) port ([0-9]+), (LAN session down|LAN security error|LAN session up), ([^ ]+) \\\\[MBID ([0-9]+); ([0-9]*)->([0-9]*)\\\\]', 'slot,port,result,username,*KEY*,calling_number,called_number')" } # 7 # Parse Call Disconnected lines 8 = { label = "8" comment = "" value = "collect_fields_using_regexp('ASCEND: slot ([0-9]+) port ([0-9]+), line ([0-9]+), channel ([0-9]+), (Call Disconnected) \\\\[MBID ([0-9]+); ([0-9]*)->([0-9]*)\\\\]', 'slot,port,line,channel,result,*KEY*,calling_number,called_number')" } # 8 # Accept on Call Terminated lines 9 = { label = "9" comment = "" value = "accept_collected_entry_using_regexp('ASCEND: slot [0-9]+ port [0-9]+, Call Terminated \\\\[MBID ([0-9]+);', false)" } # 9 } # log.parsing_filters # Database fields database.fields = { slot = { label = "$lang_stats.field_labels.slot" log_field = "slot" type = "string" suppress_top = 0 suppress_bottom = 2 } # slot port = { label = "$lang_stats.field_labels.port" log_field = "port" type = "string" suppress_top = 0 suppress_bottom = 2 } # port line = { label = "$lang_stats.field_labels.line" log_field = "line" type = "string" suppress_top = 0 suppress_bottom = 2 } # line channel = { label = "$lang_stats.field_labels.channel" log_field = "channel" type = "string" suppress_top = 0 suppress_bottom = 2 } # channel calling_number = { label = "$lang_stats.field_labels.calling_number" log_field = "calling_number" type = "string" suppress_top = 0 suppress_bottom = 2 } # calling_number called_number = { label = "$lang_stats.field_labels.called_number" log_field = "called_number" type = "string" suppress_top = 0 suppress_bottom = 2 } # called_number call = { label = "$lang_stats.field_labels.call" log_field = "call" type = "string" suppress_top = 0 suppress_bottom = 2 } # call result = { label = "$lang_stats.field_labels.result" log_field = "result" type = "string" suppress_top = 0 suppress_bottom = 2 } # result username = { label = "$lang_stats.field_labels.username" log_field = "username" type = "string" suppress_top = 0 suppress_bottom = 2 } # username rate = { label = "$lang_stats.field_labels.rate" log_field = "rate" type = "string" suppress_top = 0 suppress_bottom = 2 } # rate host = { label = "$lang_stats.field_labels.host" log_field = "host" type = "string" suppress_top = 0 suppress_bottom = 2 } # host c = { label = "$lang_stats.field_labels.c" log_field = "c" type = "string" suppress_top = 0 suppress_bottom = 2 } # c p = { label = "$lang_stats.field_labels.p" log_field = "p" type = "string" suppress_top = 0 suppress_bottom = 2 } # p s = { label = "$lang_stats.field_labels.s" log_field = "s" type = "string" suppress_top = 0 suppress_bottom = 2 } # s } # database.fields database.numerical_fields = { calls = { label = "$lang_stats.field_labels.calls" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # calls } # database.numerical_fields log.filters = { mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'calls = 1;' } # mark_entry } # log.filters create_profile_wizard_options = { # How the reports should be grouped in the report menu report_groups = { date_time_group = "" slot = true port = true line = true channel = true calling_number = true called_number = true call = true result = true username = true rate = true host = true c = true p = true s = true } # report_groups } # create_profile_wizard_options not_supported = { pageviews = true individualhosts = true visitors = true sessions = true sessionpages = true bandwidth = true } # not_supported } # ascend