Module ocs_diameter_3gpp_ro_nrf_app_cb

This gen_server behaviour callback module receives diameter messages for the 3GPP Ro application and interworks with a rating function (RF) over the 3GPP Re interface using the Nrf Open API.

Copyright © 2016 - 2026 SigScale Global Inc.

References

Description

This gen_server behaviour callback module receives diameter messages for the 3GPP Ro application and interworks with a rating function (RF) over the 3GPP Re interface using the Nrf Open API.

Data Types

capabilities()

capabilities() = #diameter_caps{}

message()

message() = tuple() | list()

packet()

packet() = #diameter_packet{}

peer()

peer() = {Peer_Ref::term(), Capabilities::capabilities()}

state()

state() = #state{}

Function Index

peer_up/4Invoked when the peer connection is available.
peer_down/4Invoked when the peer connection is not available.
pick_peer/5Invoked as a consequence of a call to diameter:call/4 to select a destination peer for an outgoing request.
prepare_request/4Invoked to return a request for encoding and transport.
prepare_retransmit/4Invoked to return a request for encoding and retransmission.
handle_answer/5Invoked when an answer message is received from a peer.
handle_error/5Invoked when an error occurs before an answer message is received in response to an outgoing request.
handle_request/4Invoked when a request message is received from the peer.
request/4*Handle received request.
errors/4*Handle errors in requests.
process_request/5*Process a received DIAMETER Accounting packet.
subscriber_id/3*Get filtered subscriber IDs in priority order.
post_request_ecur/10*POST ECUR rating data to a Nrf Rating Server.
post_request_iec/8*POST IEC rating data to a Nrf Rating Server.
post_request_scur/9*POST SCUR rating data to a Nrf Rating Server.
get_destination/1*Get Requested Party Address.
get_service_location/1*Get MCC and MNC location information.
insert_ref/3*Insert a rating Data ref.
build_mscc/2*Build a list of CCA MSCCs.
map_service_rating/2*Convert a service rating struct list to list of maps.
tariff_element/2*
build_container/1*Build a container for CCR MSCC.
iec_service_rating/4*
used_unit/1*
used_unit1/2*
used_unit2/2*
used_unit3/2*
used_unit4/2*
reserved_unit/1*
reserved_unit1/2*
reserved_unit2/2*
reserved_unit3/2*
reserved_unit4/2*
update_service_rating/3*
final_service_rating/3*
match_tariff/2*Match a Tariff object with an MSCC.
fui/1*Parse redirect server address.
accounting_event_type/1*Converts CC-Request-Type integer value to a readable atom.

Function Details

peer_up/4

peer_up(ServiceName, Peer, State, Config) -> NewState

Invoked when the peer connection is available

peer_down/4

peer_down(ServiceName, Peer, State, Config) -> NewState

Invoked when the peer connection is not available

pick_peer/5

pick_peer(LocalCandidates, RemoteCandidates, ServiceName, State, Config) -> Result

Invoked as a consequence of a call to diameter:call/4 to select a destination peer for an outgoing request.

prepare_request/4

prepare_request(Packet, ServiceName, Peer, Config) -> Action

Invoked to return a request for encoding and transport

prepare_retransmit/4

prepare_retransmit(Packet, ServiceName, Peer, Config) -> Action

Invoked to return a request for encoding and retransmission. In case of peer connection is lost alternate peer is selected.

handle_answer/5

handle_answer(Packet, Request, ServiceName, Peer, Config) -> Result

Invoked when an answer message is received from a peer.

handle_error/5

handle_error(Reason, Request, ServiceName, Peer, Config) -> Result

Invoked when an error occurs before an answer message is received in response to an outgoing request.

handle_request/4

handle_request(Packet, ServiceName, Peer, Config) -> Action

Invoked when a request message is received from the peer.

request/4 *

request(Svc, Capabilities, Request, Config) -> Action

Handle received request. Authorize client then forward capabilities and request to the accounting port server matching the service the request was received on.

errors/4 *

errors(ServiceName, Capabilities, Request, Errors) -> Action

Handle errors in requests.

process_request/5 *

process_request(IpAddress, Port, Caps, Request, Config) -> Result

Process a received DIAMETER Accounting packet.

subscriber_id/3 *

subscriber_id(SubscriptionIDs, UserName, SubIdTypes) -> Result

Get filtered subscriber IDs in priority order.

post_request_ecur/10 *

post_request_ecur(ServiceName, SubscriptionId, ServiceContextId, SessionId, ServiceRatingData, Amounts, Location, Destination, URL, Flag) -> Result

POST ECUR rating data to a Nrf Rating Server.

post_request_iec/8 *

post_request_iec(ServiceName, SubscriptionId, ServiceContextId, SessionId, MSCC, Location, Destination, URL) -> Result

POST IEC rating data to a Nrf Rating Server.

post_request_scur/9 *

post_request_scur(ServiceName, SubscriptionId, ServiceContextId, SessionId, ServiceRatingData, Amounts, Location, URL, Flag) -> Result

POST SCUR rating data to a Nrf Rating Server.

get_destination/1 *

get_destination(ServiceInformation) -> RequestedPartyAddress

Get Requested Party Address.

get_service_location/1 *

get_service_location(ServiceInformation) -> ServiceInformation

Get MCC and MNC location information.

insert_ref/3 *

insert_ref(SessionId, SessionState, PLAs) -> Result

Insert a rating Data ref.

build_mscc/2 *

build_mscc(ServiceRatings, Container) -> Result

Build a list of CCA MSCCs

map_service_rating/2 *

map_service_rating(ServiceRating, SessionId) -> Result

Convert a service rating struct list to list of maps.

tariff_element/2 *

tariff_element(T, Acc) -> any()

build_container/1 *

build_container(MSCC) -> MSCC

Build a container for CCR MSCC.

iec_service_rating/4 *

iec_service_rating(MSCC, ServiceContextId, ServiceInformation, Destination) -> ServiceRating

used_unit/1 *

used_unit(UsedServiceUnits) -> Result

used_unit1/2 *

used_unit1(USU, Acc) -> any()

used_unit2/2 *

used_unit2(USU, Acc) -> any()

used_unit3/2 *

used_unit3(USU, Acc) -> any()

used_unit4/2 *

used_unit4(USU, Acc) -> any()

reserved_unit/1 *

reserved_unit(RequestedServiceUnits) -> Result

reserved_unit1/2 *

reserved_unit1(RSU, Acc) -> any()

reserved_unit2/2 *

reserved_unit2(RSU, Acc) -> any()

reserved_unit3/2 *

reserved_unit3(RSU, Acc) -> any()

reserved_unit4/2 *

reserved_unit4(RSU, Acc) -> any()

update_service_rating/3 *

update_service_rating(MSCC, ServiceContextId, ServiceInformation) -> ServiceRating

final_service_rating/3 *

final_service_rating(MSCC, ServiceContextId, ServiceInformation) -> ServiceRating

match_tariff/2 *

match_tariff(Tariffs, MSCCs) -> Result

Match a Tariff object with an MSCC

fui/1 *

fui(RedirectServerAddress) -> Result

Parse redirect server address.

accounting_event_type/1 *

accounting_event_type(RequestType) -> EventType

Converts CC-Request-Type integer value to a readable atom.


Generated by EDoc