Skip to content

Commit 35f4b4a

Browse files
Merge pull request #211 from nickvsnetworking/MultipleDedicatedBearers
Support for multiple IMS dedicated bearers
2 parents 178e1cb + fc0dc9c commit 35f4b4a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

lib/diameter.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,6 +3070,8 @@ def Answer_16777236_265(self, packet_vars, avps):
30703070
aarOriginHost = bytes.fromhex(aarOriginHost).decode('ascii')
30713071
aarOriginRealm = self.get_avp_data(avps, 296)[0]
30723072
aarOriginRealm = bytes.fromhex(aarOriginRealm).decode('ascii')
3073+
aarSessionID = self.get_avp_data(avps, 263)[0]
3074+
aarSessionID = bytes.fromhex(aarSessionID).decode('ascii')
30733075
#Check if we have a record-route set as that's where we'll need to send the response
30743076
try:
30753077
#Get first record-route header, then parse it
@@ -3266,7 +3268,7 @@ def Answer_16777236_265(self, packet_vars, avps):
32663268
"gbr_ul": ulBandwidth,
32673269
"precedence": 40,
32683270
"arp_priority": 15,
3269-
"rule_name": "GBR-Voice",
3271+
"rule_name": "GBR-Voice_" + str(aarSessionID),
32703272
"arp_preemption_vulnerability": arpPreemptionVulnerability,
32713273
"gbr_dl": dlBandwidth,
32723274
"tft_group_id": 1,
@@ -3457,14 +3459,21 @@ def Answer_16777236_275(self, packet_vars, avps):
34573459
servingPgwRealm = emergencySubscriberData.get('gx_origin_realm', None)
34583460
servingPgw = emergencySubscriberData.get('serving_pgw', None).split(';')[0]
34593461

3462+
try:
3463+
aarSessionID = self.get_avp_data(avps, 263)[0]
3464+
aarSessionID = bytes.fromhex(aarSessionID).decode('ascii')
3465+
self.logTool.log(service='HSS', level='debug', message=f"[diameter.py] [Answer_16777236_275] [STA] Got Origional SessionID: {aarSessionID}", redisClient=self.redisMessaging)
3466+
except:
3467+
self.logTool.log(service='HSS', level='debug', message=f"[diameter.py] [Answer_16777236_275] [STA] Error getting Origional SessionID: {traceback.format_exc()}", redisClient=self.redisMessaging)
3468+
aarSessionID = ""
34603469
if servingApn is not None or emergencySubscriberData:
34613470
reAuthAnswer = self.awaitDiameterRequestAndResponse(
34623471
requestType='RAR',
34633472
hostname=servingPgwPeer,
34643473
sessionId=pcrfSessionId,
34653474
servingPgw=servingPgw,
34663475
servingRealm=servingPgwRealm,
3467-
chargingRuleName='GBR-Voice',
3476+
chargingRuleName='GBR-Voice_' + str(aarSessionID),
34683477
chargingRuleAction='remove'
34693478
)
34703479

0 commit comments

Comments
 (0)