Hoof Configuration

Overview

In general SIP3 Hoof can be deeply customized by our developers. Also SIP3 Hoof can be customized with configuration. What can be customized?

  • Common configuration

  • Sidebar Menu

  • Timezones

  • Custom Searches

  • Custom Search Results

  • Winbox behaviour

Hoof configuration is stored in JSON format:

{
  "time_zones": [], (1)
  "winbox": {}, (2)
  "sidebar": {  (3)
    "dashboards": [],
    "searches": [],
    "links": []
  },
  "searches": [], (4)
  "features": [], (5)
  "root_path": "", (6)
  "default_route": "/search/advanced", (7)
  "oauth2": {} (8)
}
1 time_zones - List of available timezones
2 winbox - Winbox behaviour configuration
3 sidebar - Sidebar menu configuration. Contains from dashboards - Links to dashboards. Always place on the top of the sidebar searches - Links to Searches links - Internal and External links to resources
4 searhes - Custom search configurations
5 features - List of features to be enabled in Hoof
6 root_path - Root path used when Hoof is placed after proxy and have prefix in path
7 default_route - Default route after successful login or going to root_path
8 oauth2 - OAuth2 configuration

Timezones

Default configuration have 2 timezones:

  • Local timezone based on Browser environment

  • UTC timezone

Timezone configuration JSON:

{
  "label": "NPT", (1)
  "name": "Nepal", (2)
  "value": "+05:45" (3)
}
1 label - Short name of Timezone that will be showed in User Interface
2 name - Name of Timezone to be showed in dropdown
3 value - Timezone offset

Timezone will appear in dropdown in same order as in JSON Array.

Winbox

Winbox configuration contains parameters that define behaviour of all winboxes:

{
  "auto_close": true (1)
}
1 auto_close - If true all winboxes will be closed after changing layouts.

Sidebar configuration

Sidebar contains 4 main sections:

  • Dashboards

  • Searches

  • Management

  • Links

Sidebar example
Management section is not configurable directly

Sections contain links to resources. A link may be internal or external.

  • internal link type used to navigate through Hoof layouts.

  • external links opens in new tab and must have full URL to resource.

{
  "order": 0, (1)
  "name": "Technical Dashboard", (2)
  "type": "internal", (3)
  "url": "/dashboard/technical" (4)
}
1 order - Priority that determine position of the link.
2 name - Link name
3 type - Type of the link
4 url - URL

Searches

Hoof allows to add custom search layout with additional fields in search results.

Custom Search Layout
Full Custom Search configuration example
{
      "id": "custom",
      "name": "Custom search",
      "sections": [
        {
          "id": "main",
          "name": "Main search attributes",
          "attributes": [
            [
              {
                "name": "timeRange",
                "type": "time_range"
              },
              {
                "name": "sip.caller",
                "placeholder": "Caller"
              },
              {
                "name": "sip.callee",
                "placeholder": "Callee"
              }
            ],
            [
              {
                "name": "sip.state",
                "placeholder": "State"
              },
              {
                "name": "callsOnly",
                "type": "checkbox",
                "placeholder": "Calls only",
                "init_value": "sip.method=INVITE",
                "if_true": "sip.method=INVITE",
                "if_false": ""
              }
            ]
          ]
        },
        {
          "id": "hosts",
          "name": "Host search attributes",
          "attributes": [
            [
              {
                "name": "sip.src_addr"
              },
              {
                "name": "sip.src_host",
                "init_value": "domru"
              },
              {
                "name": "sip.dst_addr"
              },
              {
                "name": "sip.dst_host",
                "init_value": "PBX-.*",
                "init_operator": "=~"
              }
            ]
          ]
        }
      ],
      "results": {
        "columns": [
          {
            "header": "Establish time",
            "src": "sip.establish_time",
            "formatter": "duration"
          },
          {
            "header": "Terminated at",
            "src": "sip.terminated_at",
            "formatter": "datetime"
          },
          {
            "header": "Transactions",
            "src": "sip.transactions"
          },
          {
            "header": "Src addr",
            "src": "sip.src_addr"
          }
        ]
      }
    }

Search configuration consist of 4 main parameters:

{
  "id": "custom", (1)
  "name": "Custom search", (2)
  "sections": [ ], (3)
  "results": { } (4)
}
1 id - Custom search ID
2 name - Custom search name
3 sections - Section of search attributes
4 results - Configuration for search results

Section

Section used to group attributes and arrange it on gird for better usability.

{
  "id": "main", (1)
  "name": "Main search attributes", (2)
  "attributes": [ (3)
    [ ],
    [ ]
  ]
}
1 id - Section ID
2 name - Section name
3 attributes - List of attribute lines.
Recommended attributes in one line is not more than 4.

Custom Search Attribute

All Custom Search Attributes have name, other parameters are optional. Attribute may be one of types:

  • time_range - Date and time range selector

  • checkbox - Checkbox that define query to be added to Search query

  • string - String type

  • boolean - Boolean type

  • number - Number type.

{
    "name": "callsOnly", (1)
    "type": "checkbox", (2)
    "placeholder": "Calls only", (3)
    "init_value": "sip.method=INVITE", (4)
    "init_operator": "=", (5)
    "if_true": "sip.method=INVITE", (6)
    "if_false": "" (7)
}
1 name - Attribute name
2 type - Attribute type.
3 placeholder - Placeholder that will be displayed in Input field.
4 init_value - Initial value
5 init_operator - Initial operator
6 if_true - Search query expression if checkbox is checked
7 if_false - Search query expression if checkbox is not checked

Custom search results

Search result in Custom Search may be modified by adding custom columns from Search Results:

{
  "columns": [
    {
      "header": "Establish time",   (1)
      "src": "sip.establish_time",  (2)
      "formatter": "duration"       (3)
    },
    {
      "header": "Terminated at",
      "src": "sip.terminated_at",
      "formatter": "datetime"
    },
    {
      "header": "Transactions",
      "src": "sip.transactions"
    },
    {
      "header": "Src addr",
      "src": "sip.src_addr",
      "display_type": "set"         (4)
    }
  ]
}
1 header - Column name in Search Result Table
2 src - Field name from Search Result
3 formatter - Formatter for the value. Available types: datetime, duration or raw value if not set
4 display_type - Define display type for values.
  • first - Display only first non-null value for src

  • set - Display all unique values

  • list - Display all values in the same order as this value appears in Call legs.

Features

To enable some features in SIP3 Hoof you need to add this named feature to features:

{
  "features": [
    "recording_tasks"
  ]
}

Available features in 2025.1.1:

  • recording_tasks

  • configurations

Starting from 2024.2.2 version only one feature is available: recording_tasks

OAuth2 Configuration

SIP3 Hoof supports OAuth2 authentication and need to be configured properly:

{
  "oauth2": {
    "enabled": true,      (1)
    "provider": "sip3"    (2)
  }
}
1 enabled - Enables OAuth2 authorization in UI
2 provider - OAuth2 provider in SIP3 Twig
SIP3 Twig must be configured first to enable OAuth2 authentication.

Other parameters

root_path

Root path used when Hoof is placed after proxy and have prefix in path

default_route

Default route after successful login or going to root_path