Skip to content

Latest commit

 

History

History
77 lines (65 loc) · 2.71 KB

app_hsp.md

File metadata and controls

77 lines (65 loc) · 2.71 KB

App HSP filter

Status : functional, experimental plugin.

The HEPIC platform can export realtime metrics and CDRs using the HSP protocol. The filter is used to decode HSP bencode-style format and fields.

Example 1: parse HSP CDRs w/o field resolution.

filter {
  app_hsp {}
}

Example 2: parse HSP CDRs w/ Pseudo Rate field resolution.

filter {
  app_hsp {
    default_cc => '31' 
    sqlite_db => '/usr/local/hspserver/etc/prefix_data.sqlite'
    strip_local => '^0[1-9]'
    strip_dialprefix => '^00'
    strip_testuser => '^5000'
  }
}

Example 3: parse HSP CDRs w/ IP Group resolution.

filter {
  app_hsp {
    default_cc => '31' 
    sqlite_db => '/usr/local/hspserver/etc/prefix_data.sqlite'
    hepic_host => '127.0.0.1'
    hepic_port => '8087'
    hepic_path => '/api/v2/admin/groupip'
    groupby => 'source' // source, destination, sdpmedia
  }
}

Parameters:

  • default_cc: default country code for pseudo-rating.
  • sqlite_db: default sqlite db for pseudo-rating.
  • strip_local: regex rule for local prefix matching.
  • strip_dialprefix: regex rule for international prefix matching.
  • strip_testuser: regex rule for test user matching.
  • hepic_host: HEPIC API host. Default: 127.0.0.1.
  • hepic_port: HEPIC API port. Default: 8087.
  • hepic_path: HEPIC API path. Default: '/api/v2/admin/groupip'.
  • hepic_token: HEPIC API access token.
  • groupby: IP Grouping strategy (source|destination|sdpmedia).
  • omit: Optional Keys to drop from returned object. Accepts string or array.
  • links: In-Memory CDR Correlation pipeline (false|true).
  • links_size: Max size of entries In-Memory CDR Correlation pipeline. Default: 5000.
  • links_age: Max age in ms for entries In-Memory CDR Correlation pipeline. Default: 5000.
  • links_vectors: Vectors for In-Memory CDR Correlation pipeline. Accepts full path to module file.

Default Vectors: In-Memory correlation vectors extract a key with optional regex transforms, forking with prefix,suffix and stored in memory for pairing, assigning a score to each match against. Parameter name can be used to force the set for common fields, such as correlation_id and callid in most CDRs.

The following format is accepted by the qrelate links_vectors file pointer for importing rules:

module.exports = [
    { score: 100, key: 'callid', suffix: "_b2b-1" },
    { score: 100, key: 'correlation_id', name: 'callid' },
    { score: 100, key: 'x-cid', name: 'callid', inject: 'x-cid' },
    { score: 50,  key: 'ruri_user', regex: /^(00|\+)/ },
    { score: 50,  key: 'to_user', name: "to_user_tail", regex_match: /.{8}$/ }
    { score: 50,  key: 'anumber_ext' prefix: "USER-" }
];