pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/erlang/osmo_dia2gsup/+/34259 )


Change subject: Translate GSUP Auth Info Answer error Cause in Diamater AIA
......................................................................

Translate GSUP Auth Info Answer error Cause in Diamater AIA

Change-Id: I32622713c2c1f40e1d9c5597ffab8cb211171fc2
---
M src/server_cb.erl
1 file changed, 26 insertions(+), 7 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/erlang/osmo_dia2gsup 
refs/changes/59/34259/1

diff --git a/src/server_cb.erl b/src/server_cb.erl
index 482ba9a..a6450dd 100644
--- a/src/server_cb.erl
+++ b/src/server_cb.erl
@@ -177,15 +177,23 @@
 -define(GMM_CAUSE_INV_MAND_INFO,       16#60).
 -define(GMM_CAUSE_PROTO_ERR_UNSPEC,    16#6f).

--define(EXP_RES(Foo),  #'Experimental-Result'{'Vendor-Id'=fixme, 
'Experimental-Result-Code'=Foo}).
+-define(EXP_RES(Foo),  #'Experimental-Result'{'Vendor-Id'=10415, 
'Experimental-Result-Code'=Foo}).

 -type empty_or_intl() :: [] | [integer()].
 -spec gsup_cause2dia(integer()) -> {empty_or_intl(), empty_or_intl()}.
 gsup_cause2dia(?GMM_CAUSE_IMSI_UNKNOWN) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_USER_UNKNOWN)]};
-gsup_cause2dia(?GMM_CAUSE_PLMN_NOTALLOWED) -> {[], 
[?DIAMETER_ERROR_ROAMING_NOT_ALLOWED]};
-gsup_cause2dia(?GMM_CAUSE_GPRS_NOTALLOWED) -> {[], 
[?DIAMETER_ERROR_RAT_NOT_ALLOWED]};
-%gsup_cause2dia(?GMM_CAUSE_INV_MAND_INFO) ->
-%gsup_cause2dia(?GMM_CAUSE_NET_FAIL) ->
+gsup_cause2dia(?GMM_CAUSE_ILLEGAL_MS) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_USER_UNKNOWN)]};
+gsup_cause2dia(?GMM_CAUSE_PLMN_NOTALLOWED) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_ROAMING_NOT_ALLOWED)]};
+gsup_cause2dia(?GMM_CAUSE_GPRS_NOTALLOWED) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_RAT_NOT_ALLOWED)]};
+
+gsup_cause2dia(?GMM_CAUSE_LA_NOTALLOWED) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_RAT_NOT_ALLOWED)]};
+gsup_cause2dia(?GMM_CAUSE_ROAMING_NOTALLOWED) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_ROAMING_NOT_ALLOWED)]};
+gsup_cause2dia(?GMM_CAUSE_NO_SUIT_CELL_IN_LA) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_UNKOWN_SERVING_NODE)]};
+gsup_cause2dia(?GMM_CAUSE_NET_FAIL) -> {[], 
[?EXP_RES(?DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE)]};
+gsup_cause2dia(?GMM_CAUSE_CONGESTION) -> {[], 
[?EXP_RES(?DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE)]};
+gsup_cause2dia(?GMM_CAUSE_GSM_AUTH_UNACCEPT) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_USER_UNKNOWN)]};
+gsup_cause2dia(?GMM_CAUSE_INV_MAND_INFO) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_UNKOWN_SERVING_NODE)]};
+gsup_cause2dia(?GMM_CAUSE_PROTO_ERR_UNSPEC) -> {[], 
[?EXP_RES(?DIAMETER_ERROR_UNKOWN_SERVING_NODE)]};
 % TODO: more values
 gsup_cause2dia(_) -> {fixme, []}.

@@ -229,9 +237,11 @@
                        Resp = #'AIA'{'Session-Id'=SessionId, 'Origin-Host'=OH, 
'Origin-Realm'=OR,
                                      'Result-Code'=2001, 
'Auth-Session-State'=1,
                                      'Authentication-Info'=AuthInfo};
-               #{message_type := send_auth_info_err} ->
+               #{message_type := send_auth_info_err, cause:=Cause} ->
+                       {Res, ExpRes} = gsup_cause2dia(Cause),
                        Resp = #'AIA'{'Session-Id'=SessionId, 'Origin-Host'=OH, 
'Origin-Realm'=OR,
-                                     
'Result-Code'=?DIAMETER_ERROR_USER_UNKNOWN,
+                                     'Result-Code'=Res,
+                                     'Experimental-Result'=ExpRes,
                                      'Auth-Session-State'=1};
                timeout ->
                        Resp = #'AIA'{'Session-Id'=SessionId, 'Origin-Host'=OH, 
'Origin-Realm'=OR,

--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo_dia2gsup/+/34259
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: erlang/osmo_dia2gsup
Gerrit-Branch: master
Gerrit-Change-Id: I32622713c2c1f40e1d9c5597ffab8cb211171fc2
Gerrit-Change-Number: 34259
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to