open5gs/misc/db/python/README.md

68 lines
2.0 KiB
Markdown
Raw Normal View History

## Open5GS Python Library
2019-07-15 08:28:45 +00:00
Basic Python library to interface with MongoDB subscriber DB in Open5GS HSS / PCRF. Requires Python 3+, pymongo and bson. (All available through PIP)
2019-07-15 08:28:45 +00:00
If you are planning to run this on a different machine other than localhost (the machine hosting the MongoDB service) you will need to enable remote access to MongoDB by binding it's IP to 0.0.0.0:
This is done by editing ```/etc/mongodb.conf``` and changing the bind IP to:
``` bind_ip = 0.0.0.0 ```
Restart MongoDB for changes to take effect.
``` $ /etc/init.d/mongodb restart ```
Basic Example:
```
import Open5GS
Open5GS_1 = Open5GS("10.0.1.118", 27017)
2019-07-15 08:28:45 +00:00
slice_data = [
{
"sst": 1,
"default_indicator": True,
"session": [
{
"name": "internet",
"type": 3, "pcc_rule": [], "ambr": {"uplink": {"value": 1, "unit": 3}, "downlink": {"value": 1, "unit": 3}},
"qos": {
"index": 9,
"arp": {"priority_level": 8, "pre_emption_capability": 1, "pre_emption_vulnerability": 1}
}
}
]
}
]
sub_data = {
"imsi": "001010000000004",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice" : slice_data,
"ambr": {"uplink": {"value": 1, "unit": 3}, "downlink": {"value": 1, "unit": 3}},
"security": {
"k": "465B5CE8 B199B49F AA5F0A2E E238A6BC",
"amf": "8000",
'op': None,
"opc": "E8ED289D EBA952E4 283B54E8 8E6183CA"
},
"schema_version": 1,
"__v": 0
}
2019-07-15 08:28:45 +00:00
print(Open5GS_1.AddSubscriber(sub_data)) #Add Subscriber using dict of sub_data
2019-07-15 08:28:45 +00:00
print(Open5GS_1.GetSubscriber('891012222222300')) #Get added Subscriber's details
2019-07-15 08:28:45 +00:00
print(Open5GS_1.UpdateSubscriber('891012222222300', sub_data)) #Update subscriber
print(Open5GS_1.DeleteSubscriber('891012222222300')) #Delete Subscriber
2019-07-15 08:28:45 +00:00
Subscriber_List = Open5GS_1.GetSubscribers()
2019-07-15 08:28:45 +00:00
for subscribers in Subscriber_List:
print(subscribers['imsi'])
```