pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35687?usp=email )
Change subject: s6b: Answer Diameter STR with STA ......................................................................
s6b: Answer Diameter STR with STA
Change-Id: I34f803c1f772bab9b267e4eaad7146e7b1ac2894 --- M src/aaa_diameter_s6b_cb.erl 1 file changed, 26 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/87/35687/1
diff --git a/src/aaa_diameter_s6b_cb.erl b/src/aaa_diameter_s6b_cb.erl index 55bc66f..81757a9 100644 --- a/src/aaa_diameter_s6b_cb.erl +++ b/src/aaa_diameter_s6b_cb.erl @@ -65,9 +65,23 @@ 'Origin-Realm'=OR}, lager:info("S6b Tx to ~p: ~p~n", [Caps, Resp]), {reply, Resp}; - % TODO: extract relevant fields from DIAMETER AAA -%% handle_request/3 + +% 3GPP TS 29.273 9.2.2.3.1 Session-Termination-Request (STR) Command: +handle_request(#diameter_packet{msg = Req, errors = []}, _SvcName, {_, Caps}) when is_record(Req, 'STR') -> + lager:info("S6b Rx from ~p: ~p~n", [Caps, Req]), + % extract relevant fields from DIAMETER STR: + #diameter_caps{origin_host = {OH,_}, origin_realm = {OR,_}} = Caps, + #'STR'{'Session-Id' = SessionId, + 'Auth-Application-Id' = _AuthAppId, + 'User-Name' = _UserNameOpt} = Req, + % 3GPP TS 29.273 9.2.2.3.2 Session-Termination-Answer (STA) Command: + Resp = #'STA'{'Session-Id' = SessionId, + 'Result-Code' = 2001, + 'Origin-Host' = OH, + 'Origin-Realm' = OR}, + lager:info("S6b Tx to ~p: ~p~n", [Caps, Resp]), + {reply, Resp}; + handle_request(Packet, _SvcName, Peer) -> lager:error("S6b Rx unexpected msg from ~p: ~p~n", [Peer, Packet]), - %PESPIN: TODO: handle S6b AAR here, see osmo_dia2gsup "handle_request" as example. erlang:error({unexpected, ?MODULE, ?LINE}).