Module ocs_terminate_fsm
This gen_fsm behaviour callback module
implements procedures for session termination initiated by non-3GPP
access network.
Copyright © 2016 - 2026 SigScale Global Inc.
Behaviours: gen_fsm.
References
This gen_fsm behaviour callback module
implements procedures for session termination initiated by non-3GPP
access network.
statedata() = #statedata{identity = binary() | undefined, imsi = binary() | undefined, origin_host = binary(), origin_realm = binary(), server_address = inet:ip_address(), server_port = pos_integer(), client_address = inet:ip_address(), client_port = pos_integer(), service = tuple() | undefined, hss_realm = string() | undefined, hss_host = string() | undefined, nas_host = string() | undefined, nas_realm = string() | undefined, nas_address = inet:ip_address() | undefined, request = #'3gpp_sta_STR'{} | #'3gpp_swm_STR'{} | undefined, session_id = string(), from = {pid(), reference()} | undefined}
init(Args) -> Result
- Args = list()
- Result = {ok, StateName, StateData} | {ok, StateName, StateData, Timeout} | {ok, StateName, StateData, hibernate} | {stop, Reason} | ignore
- StateName = atom()
- StateData = statedata()
- Timeout = non_neg_integer() | infinity
- Reason = term()
Initialize the ocs_terminate_fsm finite state machine.
See also: //stdlib/gen_fsm:init/1.
idle(Event, From, StateData) -> Result
- Event = timeout | term()
- From = {pid(), reference()}
- StateData = statedata()
- Result = {reply, Reply, NextStateName, NewStateData} | {reply, Reply, NextStateName, NewStateData, Timeout} | {reply, Reply, NextStateName, NewStateData, hibernate} | {next_state, NextStateName, NewStateData} | {next_state, NextStateName, NewStateData, Timeout} | {next_state, NextStateName, NewStateData, hibernate} | {stop, Reason, Reply, NewStateData} | {stop, Reason, NewStateData}
- Reply = term()
- NextStateName = atom()
- NewStateData = statedata()
- Timeout = non_neg_integer() | infinity
- Reason = normal | term()
Handle events sent with gen_fsm:sync_send_event/2 in the idle state.
@see //stdlib/gen_fsm:StateName/3
deregister(Event, StateData) -> Result
- Event = {ok, #'3gpp_swx_SAA'{}} | {error, Reason} | timeout
- StateData = statedata()
- Result = {next_state, NextStateName, NewStateData} | {next_state, NextStateName, NewStateData, Timeout} | {next_state, NextStateName, NewStateData, hibernate} | {stop, Reason, NewStateData}
- NextStateName = atom()
- NewStateData = statedata()
- Timeout = non_neg_integer() | infinity
- Reason = normal | term()
Handle events sent with gen_fsm:send_event/2 in the deregister state.
@see //stdlib/gen_fsm:StateName/2
handle_event(Event, StateName, StateData) -> Result
- Event = term()
- StateName = atom()
- StateData = statedata()
- Result = {next_state, NextStateName, NewStateData} | {next_state, NextStateName, NewStateData, Timeout} | {next_state, NextStateName, NewStateData, hibernate} | {stop, Reason, NewStateData}
- NextStateName = atom()
- NewStateData = statedata()
- Timeout = non_neg_integer() | infinity
- Reason = normal | term()
Handle an event sent with
gen_fsm:send_all_state_event/2.
See also: //stdlib/gen_fsm:handle_event/3.
handle_sync_event(Event, From, StateName, StateData) -> Result
- Event = term()
- From = {Pid, Tag}
- Pid = pid()
- Tag = term()
- StateName = atom()
- StateData = statedata()
- Result = {reply, Reply, NextStateName, NewStateData} | {reply, Reply, NextStateName, NewStateData, Timeout} | {reply, Reply, NextStateName, NewStateData, hibernate} | {next_state, NextStateName, NewStateData} | {next_state, NextStateName, NewStateData, Timeout} | {next_state, NextStateName, NewStateData, hibernate} | {stop, Reason, Reply, NewStateData} | {stop, Reason, NewStateData}
- Reply = term()
- NextStateName = atom()
- NewStateData = statedata()
- Timeout = non_neg_integer() | infinity
- Reason = normal | term()
Handle an event sent with
gen_fsm:sync_send_all_state_event/2,3.
See also: //stdlib/gen_fsm:handle_sync_event/4.
handle_info(Info, StateName, StateData) -> Result
- Info = term()
- StateName = atom()
- StateData = statedata()
- Result = {next_state, NextStateName, NewStateData} | {next_state, NextStateName, NewStateData, Timeout} | {next_state, NextStateName, NewStateData, hibernate} | {stop, Reason, NewStateData}
- NextStateName = atom()
- NewStateData = statedata()
- Timeout = non_neg_integer() | infinity
- Reason = normal | term()
Handle a received message.
See also: //stdlib/gen_fsm:handle_info/3.
terminate(Reason, StateName, StateData) -> any()
- Reason = normal | shutdown | term()
- StateName = atom()
- StateData = statedata()
Cleanup and exit.
See also: //stdlib/gen_fsm:terminate/3.
code_change(OldVsn, StateName, StateData, Extra) -> Result
- OldVsn = Vsn | {down, Vsn}
- Vsn = term()
- StateName = atom()
- StateData = statedata()
- Extra = term()
- Result = {ok, NextStateName, NewStateData}
- NextStateName = atom()
- NewStateData = statedata()
Update internal state data during a release upgrade/downgrade.
See also: //stdlib/gen_fsm:code_change/4.
Generated by EDoc