Profiles¶
Profiles define the subscriber's Aggregate Maximum Bit Rate (UE-AMBR). Ella Core signals this value to the radio, which enforces it. A profile can be shared across multiple policies.
List Profiles¶
This path returns the list of profiles.
| Method | Path |
|---|---|
| GET | /api/v1/profiles |
Query Parameters¶
| Name | In | Type | Default | Allowed | Description |
|---|---|---|---|---|---|
page |
query | int | 1 |
>= 1 |
1-based page index. |
per_page |
query | int | 25 |
1…100 |
Number of items per page. |
Sample Response¶
{
"result": {
"items": [
{
"name": "enterprise",
"ue_ambr_uplink": "1 Gbps",
"ue_ambr_downlink": "1 Gbps",
"allow_4g": true,
"allow_5g": true
}
],
"page": 1,
"per_page": 10,
"total_count": 1
}
}
Create a Profile¶
This path creates a new profile.
| Method | Path |
|---|---|
| POST | /api/v1/profiles |
Parameters¶
name(string): The name of the profile.ue_ambr_uplink(string): Aggregate uplink bitrate cap across all of the subscriber's sessions (UE-AMBR). Enforced by the radio. Format:<number> <unit>(e.g."500 Mbps"). Allowed units: Kbps, Mbps, Gbps.ue_ambr_downlink(string): Aggregate downlink bitrate cap across all of the subscriber's sessions (UE-AMBR). Enforced by the radio. Format:<number> <unit>(e.g."1 Gbps"). Allowed units: Kbps, Mbps, Gbps.allow_4g(boolean, optional): Whether subscribers using this profile may attach over 4G (EPC). Defaults totrue.allow_5g(boolean, optional): Whether subscribers using this profile may register over 5G (5GC). Defaults totrue.
Sample Response¶
{
"result": {
"message": "Profile created successfully"
}
}
Get a Profile¶
This path returns the details of a specific profile.
| Method | Path |
|---|---|
| GET | /api/v1/profiles/{name} |
Parameters¶
None
Sample Response¶
{
"result": {
"name": "enterprise",
"ue_ambr_uplink": "1 Gbps",
"ue_ambr_downlink": "1 Gbps",
"allow_4g": true,
"allow_5g": true
}
}
Update a Profile¶
This path updates an existing profile.
| Method | Path |
|---|---|
| PUT | /api/v1/profiles/{name} |
Parameters¶
ue_ambr_uplink(string): Aggregate uplink bitrate cap across all of the subscriber's sessions (UE-AMBR). Enforced by the radio. Format:<number> <unit>(e.g."500 Mbps"). Allowed units: Kbps, Mbps, Gbps. The ceiling depends on the access the profile permits: 10 Gbps when 4G is allowed (S1APBitRate, TS 36.413), otherwise 4 Tbps (NGAPBitRate, TS 38.413).ue_ambr_downlink(string): Aggregate downlink bitrate cap across all of the subscriber's sessions (UE-AMBR). Enforced by the radio. Format:<number> <unit>(e.g."1 Gbps"). Allowed units: Kbps, Mbps, Gbps. The ceiling depends on the access the profile permits: 10 Gbps when 4G is allowed (S1APBitRate, TS 36.413), otherwise 4 Tbps (NGAPBitRate, TS 38.413).allow_4g(boolean, optional): Whether subscribers using this profile may attach over 4G (EPC). Defaults totrue.allow_5g(boolean, optional): Whether subscribers using this profile may register over 5G (5GC). Defaults totrue.
Sample Response¶
{
"result": {
"message": "Profile updated successfully"
}
}
Delete a Profile¶
This path deletes a profile from Ella Core. A profile cannot be deleted if it is referenced by any policy.
| Method | Path |
|---|---|
| DELETE | /api/v1/profiles/{name} |
Parameters¶
None
Sample Response¶
{
"result": {
"message": "Profile deleted successfully"
}
}
Get a Profile's IMS Initial Filter Criteria¶
This path returns a profile's IMS initial filter criteria, in priority order.
| Method | Path |
|---|---|
| GET | /api/v1/profiles/{name}/ims-filter-criteria |
Parameters¶
None
Sample Response¶
{
"result": {
"initial_filter_criteria": [
{
"priority": 0,
"application_server_name": "conference",
"trigger": {
"conditions_match": "all",
"groups": [{"conditions": [{"request_uri": "^sip:conference@.*$"}]}]
},
"default_handling": "SESSION_TERMINATED",
"include_register_request": false,
"include_register_response": false
}
]
}
}
Update a Profile's IMS Initial Filter Criteria¶
This path replaces a profile's IMS initial filter criteria. Registered subscribers of the profile get the new user profile.
| Method | Path |
|---|---|
| PUT | /api/v1/profiles/{name}/ims-filter-criteria |
Parameters¶
initial_filter_criteria(array): In priority order (TS 29.228 Annex B.2.2). An empty list removes all of them. Each criterion has:application_server_name(string): The name of the IMS application server matching requests are sent to.trigger(optional object): Without it, the criterion matches every request.conditions_match(string):allif a group matches when all of its conditions match, and the trigger matches when any group matches.anyif a group matches when any of its conditions matches, and the trigger matches when every group matches.groups(array): Groups ofconditions. Each condition has an optionalnegated(boolean) and exactly one ofrequest_uri(string),method(string),sip_header({header, content}),session_case(ORIGINATING_REGISTERED,TERMINATING_REGISTERED,TERMINATING_UNREGISTERED,ORIGINATING_UNREGISTEREDorORIGINATING_CDIV) andsession_description({line, content}). With theREGISTERmethod,registration_typeslists up to two ofINITIAL_REGISTRATION,RE-REGISTRATIONandDE-REGISTRATION. Request URIs, headers, lines and contents are extended regular expressions.
profile_part(optional string):REGISTEREDorUNREGISTERED, the part of the user profile the criterion belongs to. Omitted for both.default_handling(optional string):SESSION_CONTINUEDorSESSION_TERMINATED, what the S-CSCF does when the application server can't be reached.service_info(optional string): Passed transparently to the application server.include_register_request(optional boolean)include_register_response(optional boolean)
The priority of a criterion is its position in the list. It is returned on reads and ignored on writes.
Sample Request¶
{
"initial_filter_criteria": [
{
"application_server_name": "conference",
"trigger": {
"conditions_match": "all",
"groups": [{"conditions": [{"request_uri": "^sip:conference@.*$"}]}]
},
"default_handling": "SESSION_TERMINATED"
}
]
}
Sample Response¶
{
"result": {
"message": "Profile initial filter criteria updated successfully"
}
}