Application-Specific Properties

CHF Proxy accepts 5G network traffic and can route it to a pre-configured Charging Function (CHF) implementation using basic routing rules and values extracted from the messages. After initial deployment of CHF Proxy, you can further customize the application configuration.

You can configure CHF Proxy application properties with one or more configuration maps. For information about configuration maps, see the discussion of configuration map properties.

The following subsections describe the configuration properties for CHF Proxy.

This is an example configuration:
scaling:
  main:
    mode: manual
    instances: 4
 
http:
  port: 8080
 
baseUrl: "https://chf.matrixx.com"
 
routes:
  chargingData:
    urls:
      - /nchf-convergedcharging/v2/chargingdata 
      - /nchf-convergedcharging/v2/chargingdata/:ref/update
      - /nchf-convergedcharging/v2/chargingdata/:ref/release
      - /nchf-convergedcharging/v2/chargingdata/:endpoint/:ref/update
      - /nchf-convergedcharging/v2/chargingdata/:endpoint/:ref/release
    extractedFields:
      imsi:
        fromMessage:
          jsonPath: $.subscriberIdentifier
          regex: "^imsi\\-(?<value>[0-9]{1,15})$"
      nai:
        fromMessage:
          jsonPath: $.subscriberIdentifier
          regex: "^nai\\-(?<value>.*)$"
    routingRules:
      - targetEndpoint: chf-one
        fieldValueMatchingRules:
          - between:
              fieldName: imsi
              lower: 1
              upper: 10
      - targetEndpoint: chf-one
        fieldValueMatchingRules:
          - between:
              fieldName: nai
              lower: 1
              upper: 10
    defaultEndpoint: chf-two
    locationHeader:
      pattern: "%s/nchf-convergedcharging/v2/chargingdata/%s/%s"
      strategy: PROPAGATE
 
  spendingLimitControl:
    urls:
      - /nchf-spendinglimitcontrol/v1/subscriptions/:ref
      - /nchf-spendinglimitcontrol/v1/subscriptions/:endpoint/:ref
    extractedFields:
      imsi:
        fromMessage:
          jsonPath: $.supi
          regex: "^imsi\\-(?<value>[0-9]{1,15})$"
      nai:
        fromMessage:
          jsonPath: $.supi
          regex: "^nai\\-(?<value>.*)$"
    routingRules:
      - targetEndpoint: chf-one
        fieldValueMatchingRules:
          - between:
              fieldName: imsi
              lower: 1
              upper: 100
      - targetEndpoint: chf-one
        fieldValueMatchingRules:
          - between:
              fieldName: nai
              lower: 1
              upper: 100
      - targetEndpoint: chf-two
        fieldValueMatchingRules:
          - between:
              fieldName: imsi
              lower: 101
              upper: 200
      - targetEndpoint: chf-two
        fieldValueMatchingRules:
          - between:
              fieldName: nai
              lower: 101
              upper: 200
    locationHeader:
      pattern: "%s/nchf-spendinglimitcontrol/v1/subscriptions/%s/%s"
      strategy: PROPAGATE
 
endpoints:
  chf-one:
    baseUrl: http://chf-one:8080
    networkCDRs:
      config:
        bootstrap.servers: kafka:9092
      topic:
        single: chf-one-cdrs
      logger:
        enabled: true
 
  chf-two:
    baseUrl: http://chf-two:8080
    enrichedHeaders:
      - headerName: "X-IMSI"
        fieldName: imsi