Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
abf5e12
Add ENUM Management to API
LarryLaffer-dev Jan 7, 2026
9ddf82e
Support for subscriptions to the signalling bearer
LarryLaffer-dev Sep 25, 2025
83739f5
Safeguard retrieving APN
LarryLaffer-dev Nov 10, 2025
8d0b5e7
Default: Internet and be less verbose
carstenbock Nov 10, 2025
678ebdd
Increase Failsafe-Limit to 250
LarryLaffer-dev Nov 10, 2025
60514ba
Fix typo
LarryLaffer-dev Nov 10, 2025
59a6af1
Increase Failsafe Limit
LarryLaffer-dev Nov 10, 2025
689e72b
Improve Failsafe-Counter
LarryLaffer-dev Nov 10, 2025
f2fa433
Indicate Rx-Auth-Application ID in CER
LarryLaffer-dev Sep 25, 2025
e35068b
Revert "Indicate Rx-Auth-Application ID in CER"
LarryLaffer-dev Sep 26, 2025
204166a
Add function to update GEORED-Peers via API
LarryLaffer-dev Sep 26, 2025
9c63389
Fix conflict + fix imports
LarryLaffer-dev Sep 26, 2025
c67eff1
Repository Data should be passed through transparently
LarryLaffer-dev Sep 26, 2025
9a26057
Minor sanity fixes
LarryLaffer-dev Sep 25, 2025
0a2a3ff
Avoid submitting double Diameter-Return codes
LarryLaffer-dev Sep 25, 2025
3c2f3b6
Support for subscriptions to the signalling bearer
LarryLaffer-dev Sep 25, 2025
81a795f
Initial Diameter-Zn-Implementation
LarryLaffer-dev Oct 7, 2025
82fe057
Add missing changes
LarryLaffer-dev Oct 7, 2025
2bcfb63
Repository Data should be passed through transparently
LarryLaffer-dev Sep 26, 2025
029a3b5
Minor sanity fixes
LarryLaffer-dev Sep 25, 2025
4f2eb29
Indicate Rx-Auth-Application ID in CER
LarryLaffer-dev Sep 25, 2025
a4bc550
Avoid submitting double Diameter-Return codes
LarryLaffer-dev Sep 25, 2025
9a1fb6c
Merge GxCCRGetAPN
LarryLaffer-dev Jan 8, 2026
4b4debc
Merge enum
LarryLaffer-dev Jan 8, 2026
645399d
Merge increase_failsafe_limit
LarryLaffer-dev Jan 8, 2026
73fdd6a
Merge update_geored_peers
LarryLaffer-dev Jan 8, 2026
efa27ee
Merge diameter_zn
LarryLaffer-dev Jan 8, 2026
c72777d
Merge sh_updates
LarryLaffer-dev Jan 8, 2026
9b515e4
Merge sanity_fixes
LarryLaffer-dev Jan 8, 2026
98748e7
Merge rx_auth_application
LarryLaffer-dev Jan 8, 2026
c710263
Merge double_2001_sta
LarryLaffer-dev Jan 8, 2026
147c149
Fix typo
carstenbock Jan 8, 2026
e48c33b
Fix config reference in Zn command addition logic
LarryLaffer-dev Jan 12, 2026
709ffbf
Refactor Zn-Interface implementation and integrate with Diameter library
LarryLaffer-dev Jan 12, 2026
40a206a
Merge pull request #25 from LarryLaffer-dev/diameter_zn
LarryLaffer-dev Jan 12, 2026
92c4877
Refactor georedPeers assignment to use config parameter directly
carstenbock Jan 12, 2026
5653439
Merge pull request #26 from LarryLaffer-dev/update_geored_peers
LarryLaffer-dev Jan 12, 2026
0a959ec
Implement IFC Template Management
LarryLaffer-dev Jan 26, 2026
53f7803
Merge branch 'nickvsnetworking:master' into ifc_db_storage
LarryLaffer-dev Jan 26, 2026
3dfdeb1
Merge branch '0.0.3' into ifc_db_storage
LarryLaffer-dev Jan 26, 2026
c6acd3b
Merge pull request #27 from LarryLaffer-dev/ifc_db_storage
LarryLaffer-dev Jan 26, 2026
f4c531f
Add IFC template configuration options to config.yaml
carstenbock Jan 26, 2026
44308fe
Merge pull request #28 from LarryLaffer-dev/ifc_db_storage
LarryLaffer-dev Jan 26, 2026
7ef4af5
Add IFC template management and database schema updates
carstenbock Jan 26, 2026
019fea4
Merge pull request #29 from LarryLaffer-dev/ifc_db_storage
LarryLaffer-dev Jan 26, 2026
3d68eda
Enhance database schema upgrade to check for existing ifc_template ta…
LarryLaffer-dev Jan 26, 2026
35af509
Merge pull request #30 from LarryLaffer-dev/ifc_db_storage
LarryLaffer-dev Jan 26, 2026
a9e6c38
Add main_service flag to Diameter and Database clients
carstenbock Jan 26, 2026
488542c
Merge pull request #31 from LarryLaffer-dev/ifc_db_storage
LarryLaffer-dev Jan 26, 2026
2665a45
Refactor ENUMClient to import IMS_SUBSCRIBER directly and adjust pagi…
LarryLaffer-dev Jan 28, 2026
11301f4
Merge pull request #32 from LarryLaffer-dev/enum
LarryLaffer-dev Jan 28, 2026
6c2c681
Log error message when connection information for peer is not found i…
LarryLaffer-dev Jan 29, 2026
307e797
Add import for literal_eval from ast module in database.py
carstenbock Jan 29, 2026
9fb0b8a
Enhance Diameter class error handling and username processing. Added …
carstenbock Feb 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,51 @@ hss:
bind_ip: "0.0.0.0"
bind_port: 4222

# IFC Template Configuration
# Controls how Initial Filter Criteria (IFC) templates are loaded and cached
ifc_templates:
# Whether to use database-stored templates (True) or file-based templates (False)
# Default: False (file-based) for backward compatibility
use_database: False
# Whether to cache compiled Jinja2 templates in memory (recommended for production)
# Works for both database and file-based modes
cache_enabled: True
# Default template path when subscriber has no ifc_path or ifc_template_id set
default_template_path: 'default_ifc.xml'

# Enable Zn Interface for GBA (Generic Bootstrapping Architecture)
# Zn-Interface connects BSF (Bootstrapping Server Function) to HSS
# According to 3GPP TS 29.109
Zn_enabled: True

# BSF (Bootstrapping Server Function) Parameters
bsf:
# BSF Hostname for GBA Authentication
bsf_hostname: "bsf.epc.mnc001.mcc001.3gppnetwork.org"

# GAA (Generic Authentication Architecture) Key lifetime in seconds
# Default: 3600 seconds (1 hour)
gaa_key_lifetime: 3600

# Supported NAF (Network Application Function) Groups
# NAFs that are allowed to use GBA credentials
naf_groups:
- name: "default_naf_group"
naf_hostnames:
- "naf1.epc.mnc001.mcc001.3gppnetwork.org"
- "naf2.epc.mnc001.mcc001.3gppnetwork.org"

# B-TID (Bootstrapping Transaction Identifier) format
# Format: base64(RAND)@bsf_hostname
btid_format: "base64"

# Ks_NAF key derivation algorithm
# Options: "milenage", "tuak"
key_derivation_algorithm: "milenage"

# Enable Ks_ext_NAF (extended NAF key) support for 2G/3G
ks_ext_naf_enabled: True

api:
page_size: 200
# Whether or not to return key-based data when querying the AUC. Disable in production systems.
Expand Down Expand Up @@ -162,10 +207,39 @@ ocs:
geored:
enabled: False
sync_actions: ['HSS', 'IMS', 'PCRF', 'EIR'] #What event actions should be synced
update_file: '/etc/pyhss/geored_last_update' #File to store latest geored endpoints
endpoints: #List of PyHSS API Endpoints to update
- 'http://hss01.mnc001.mcc001.3gppnetwork.org:8080'
- 'http://hss02.mnc001.mcc001.3gppnetwork.org:8080'

## ENUM Management Parameters (RFC 6116)
# Manages NAPTR records in PowerDNS for E.164 Number Mapping (ENUM)
# Used to map MSISDNs to SIP URIs for IMS subscribers
enum:
enabled: False
# If true, fail IMS subscriber operations when ENUM updates fail
# If false, log errors but allow subscriber operations to succeed
strict_mode: False
# NAPTR record parameters
naptr_order: 10
naptr_preference: 10
naptr_ttl: 3600
# PowerDNS API endpoints - each can have multiple domains
# endpoints:
# - name: "primary-pdns"
# url: "http://pdns1.example.com:8081"
# api_key: "changeme"
# sip_domain: "ims.mnc001.mcc001.3gppnetwork.org"
# domains:
# - "e164.arpa"
# - "e164.example.com"
# - name: "secondary-pdns"
# url: "http://pdns2.example.com:8081"
# api_key: "changeme"
# sip_domain: "ims.mnc001.mcc001.3gppnetwork.org"
# domains:
# - "e164.arpa"

#Redis is required to run PyHSS. An instance running on a local network is recommended for production.
redis:
# Which connection type to attempt. Valid options are: tcp, unix, sentinel
Expand Down
303 changes: 303 additions & 0 deletions default_sh_user_data.xml

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions docker/.env
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ HSS_SCTP_RTO_MIN=500
HSS_SCTP_RTO_INITIAL=1000
HSS_GSUP_BIND_IP=0.0.0.0
HSS_GSUP_BIND_PORT=4222
# IFC Template Configuration (backward compatible)
HSS_IFC_TEMPLATES_USE_DATABASE=False
HSS_IFC_TEMPLATES_CACHE_ENABLED=True
HSS_IFC_TEMPLATES_DEFAULT_TEMPLATE_PATH=default_ifc.xml
API_PAGE_SIZE=200
API_ENABLE_INSECURE_AUC=False
BENCHMARKING_ENABLED=True
Expand Down
31 changes: 31 additions & 0 deletions docker/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,15 @@ hss:
bind_ip: "${HSS_GSUP_BIND_IP:-0.0.0.0}"
bind_port: ${HSS_GSUP_BIND_PORT:-4222}

# IFC Template Configuration (backward compatible)
ifc_templates:
# Whether to use database-stored templates (True) or file-based templates (False/default)
use_database: ${HSS_IFC_TEMPLATES_USE_DATABASE:-False}
# Whether to cache compiled Jinja2 templates (works for both modes)
cache_enabled: ${HSS_IFC_TEMPLATES_CACHE_ENABLED:-True}
# Default template path when ifc_path/ifc_template_id is not set
default_template_path: "${HSS_IFC_TEMPLATES_DEFAULT_TEMPLATE_PATH:-default_ifc.xml}"

api:
page_size: ${API_PAGE_SIZE:-200}
# Whether or not to return key-based data when querying the AUC. Disable in production systems.
Expand Down Expand Up @@ -155,6 +164,28 @@ geored:
- "${GEORED_ENDPOINT_1:-http://hss01.mnc001.mcc001.3gppnetwork.org:8080}"
- "${GEORED_ENDPOINT_2:-http://hss02.mnc001.mcc001.3gppnetwork.org:8080}"

## ENUM Management Parameters (RFC 6116)
# Manages NAPTR records in PowerDNS for E.164 Number Mapping (ENUM)
# Used to map MSISDNs to SIP URIs for IMS subscribers
enum:
enabled: ${ENUM_ENABLED:-False}
# If true, fail IMS subscriber operations when ENUM updates fail
# If false, log errors but allow subscriber operations to succeed
strict_mode: ${ENUM_STRICT_MODE:-False}
# NAPTR record parameters
naptr_order: ${ENUM_NAPTR_ORDER:-10}
naptr_preference: ${ENUM_NAPTR_PREFERENCE:-10}
naptr_ttl: ${ENUM_NAPTR_TTL:-3600}
# PowerDNS API endpoints - each can have multiple domains
# Configure via environment variables or override this section
# endpoints:
# - name: "primary-pdns"
# url: "http://pdns1.example.com:8081"
# api_key: "changeme"
# sip_domain: "ims.mnc001.mcc001.3gppnetwork.org"
# domains:
# - "e164.arpa"

#Redis is required to run PyHSS. An instance running on a local network is recommended for production.
redis:
# Which connection type to attempt. Valid options are: tcp, unix, sentinel
Expand Down
Loading
Loading