Module hss_server

A gen_server module for the hss application.

Copyright © 2008 Motivity Telecom Inc.

Behaviours: gen_server.

Authors: Vance Shipley (vances@motivity.ca) [web site: http://www.motivity.ca].

Description

A gen_server module for the hss application.

Data Types

ak()

ak() = binary()

A 48 bit anonymity key (AK).

amf()

amf() = binary()

A 16 bit authentication management field (AMF).

authenticationData()

authenticationData() = #authenticationData{itemNumber = integer(), authenticationScheme = string(), authenticationInformation = string(), authorizationInformation = string(), confidentialityKey = string(), integrityKey = string()}

Information to support the authentication between the end user and the home IMS network.

authentication_request()

authentication_request() = #authentication_request{publicUserID = publicUserID(), privateUserID = privateUserID(), numberAuthenticationItems = integer(), authenticationData = authenticationData(), sCSCFName = sipURL(), routingInformation = string()}

Authentication request.

authentication_request_response()

authentication_request_response() = #authentication_request_response{resultCode = resultCode(), experimentalResult = experimentalResult(), publicUserID = publicUserID(), privateUserID = privateUserID(), numberAuthenticationItems = integer(), authenticationData = [authenticationData()]}

Authentication request response.

chargingInformation()

chargingInformation() = #chargingInformation{primary_event_charging_function_name = diameterURI(), secondary_event_charging_function_name = diameterURI(), primary_charging_collection_function_name = diameterURI(), secondary_charging_collection_function_name = diameterURI()}

RFC 3588 Addresses of the charging functions. (e.g. "aaa://tabulator.acme.net")

ck()

ck() = binary()

A 128 bit confidentiality key (AK).

experimentalResult()

experimentalResult() = user_unknown | identities_dont_match | roaming_not_allowed | subsequent_reqistration | server_selection | identity_not_registered | first_registration | success_server_name_not_stored

Experimental-Result AVP shall be used for Cx/Dx errors.

hss_initiated_update_of_user_profile()

hss_initiated_update_of_user_profile() = #hss_initiated_update_of_user_profile{privateUserID = privateUserID(), chargingInformation = chargingInformation(), userProfile = userProfile(), routingInformation = string()}

HSS initiated update of user profile.

ik()

ik() = binary()

A 128 bit integrity key (AK).

k()

k() = binary()

A 128 bit subscriber authentication key (K) known only to the HSS and the ISIM/USIM application on the UICC.

mac()

mac() = binary()

A 64 bit message authentication code (MAC).

network_initiated_deregistration_by_hss()

network_initiated_deregistration_by_hss() = #scscf_registration_notification{publicUserID = publicUserID(), privateUserID = privateUserID(), reasonDeregistration = reasonDeregistration(), routingInformation = string()}

Network initiated de-registration by the HSS, administrative procedure.

network_initiated_deregistration_by_hss_response()

network_initiated_deregistration_by_hss_response() = #network_initiated_deregistration_by_hss_response{resultCode = resultCode(), experimentalResult = experimentalResult(), associatedPrivateIDs = [privateUserID()]}

Network initiated de-registration by the HSS response.

opc()

opc() = binary()

A 128 bit key (OPc) derived from the Operator Variant Algorithm Configuration Field (OP) and K known only to the HSS and the ISIM/USIM application on the UICC.

rand()

rand() = binary()

A 128 bit random challenge (RAND).

reasonDeregistration()

reasonDeregistration() = #reasonDeregistration{reasonCode = permanent_termination | new_server_assigned | server_change | remove_scscf, reasonInfo = string()}

The HSS shall send to the S-CSCF a reason for the de-registration. The reasonCode is intended for the S-CSCF while the reasonInfo is intended to be forwarded to the user.

res()

res() = binary()

A 64 bit challenge response (RES).

resultCode()

resultCode() = success | authorization_rejected | unable_to_reply | unable_to_comply

Result-Code AVP shall be used for errors defined in the Diameter Base Protocol.

scscf_registration_notification()

scscf_registration_notification() = #scscf_registration_notification{publicUserID = publicUserID(), sCSCFName = sipURL(), privateUserID = privateUserID(), serverAssignmentType = serverAssignmentType(), userDataAlreadyAvailable = user_data_not_available | user_data_already_available, routingInformation = string()}

S-CSCF registration/deregistration notification.

scscf_registration_notification_response()

scscf_registration_notification_response() = #scscf_registration_notification_response{privateUserID = privateUserID(), resultCode = resultCode(), experimentalResult = experimentalResult(), userProfile = userProfile(), chargingInformation = chargingInformation(), associatedPrivateIDs = [privateUserID()]}

S-CSCF registration/deregistration notification response.

serverAssignmentType()

serverAssignmentType() = no_assignment | registration | reregistration | unregistered_user | timeout_deregistration | user_deregistration | timeout_deregistration_store_server_name | user_deregistration_store_server_name | administrative_deregistration | authentication_failure | authentication_timeout | deregistration_too_much_data

Type of update that the S-CSCF requests in the HSS.

sqn()

sqn() = binary()

A 48 bit sequence number (SQN). The management of sequence numbers is specified in 3GPP TS 33.102 Annex C. The current implementation of this module uses sequence numbers which are not time-based as described in C.1.1.2 and C.3.2. The sequence number SQN = <<SQE:43, IND:5>> where SQE is incremented to generate a fresh sequence number and IND is incremented each time an authentication vector is generated.

state()

state() = #state{}

userProfile()

userProfile() = binary()

This information element contains the user profile in XML format.

user_location_query()

user_location_query() = #user_location_query{publicUserID = publicUserID(), routingInformation = string(), originatingRequest = boolean()}

User location query.

user_location_response()

user_location_response() = #user_location_response{resultCode = resultCode(), experimentalResult = experimentalResult(), sCSCFCapabilities = serverCapabilities(), sCSCFName = sipURL()}

User location response.

user_profile_update_response()

user_profile_update_response() = #user_profile_update_response{resultCode = resultCode(), experimentalResult = experimentalResult()}

User profile update response.

user_registration_status_query()

user_registration_status_query() = #user_registration_status_query{publicUserID = publicUserID(), typeOfAuthorization = registration | deregistration | registration_and_capabilities, visitedNetworkIdentifier = string(), privateUserID = privateUserID(), routingInformation = string()}

User registration status query.

user_registration_status_response()

user_registration_status_response() = #user_registration_status_response{resultCode = resultCode(), experimentalResult = experimentalResult(), sCSCFCapabilities = serverCapabilities(), sCSCFName = sipURL()}

User registration status response .


Generated by EDoc, Dec 29 2008, 15:46:25.