Use Framed-IP-Address AVP when Subscription-Id AVP missing or can not be matched #244
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When receiving AAR without Subscription-Id AVP there was a list index out of range issues:
[07/05/2025 14:05:57] [ERROR] [diameter.py] [Answer_16777236_265] [AAA] Error generating AAA: Traceback (most recent call last): File "/pyhss/lib/diameter.py", line 2891, in Answer_16777236_265 subscriptionId = bytes.fromhex(self.get_avp_data(avps, 444)[0]).decode('ascii') IndexError: list index out of range
When further investigating the code I discovered that the existence of the AVP was not checked, nor that the fallback mechanism to check the UE IP was properly implemented, and was not using the already extracted/decoded Framed-IP-Address AVP.
This PR will handle the case of the Subscription-Id AVP missing and also makes sure the UE IP address is actually being used to find the PCRF session.