summaryrefslogtreecommitdiff
path: root/acse.erl
diff options
context:
space:
mode:
Diffstat (limited to 'acse.erl')
-rw-r--r--acse.erl36
1 files changed, 36 insertions, 0 deletions
diff --git a/acse.erl b/acse.erl
new file mode 100644
index 0000000..82ba4b1
--- /dev/null
+++ b/acse.erl
@@ -0,0 +1,36 @@
+-module(acse).
+
+-include("ACSE-1.hrl").
+-include("CSTA-application-context-information-csta3.hrl").
+
+-export([user_information/0, associate_request/0, release_request/0]).
+-export([decode/1, accepted/1]).
+
+user_information() ->
+ {ok, UI} = 'CSTA-application-context-information-csta3':encode(
+ 'ACSEUserInformationForCSTA', {newDefinition,
+ #'NewACSEUserInformationForCSTA'{cSTAVersion = [versionFive]}}),
+ {'single-ASN1-type', UI}.
+
+associate_request() ->
+ 'ACSE-1':encode('ACSE-apdu', {aarq, #'AARQ-apdu'{
+ 'protocol-version' = [version1],
+ 'application-context-name' = {1, 3, 12, 0, 218},
+ 'user-information' = [#'EXTERNAL'{
+ 'direct-reference' = {1, 3, 12, 0, 285, 200},
+ encoding = user_information()}]}}).
+
+release_request() -> 'ACSE-1':encode('ACSE-apdu', {rlrq, #'RLRQ-apdu'{}}).
+
+decode(Msg) -> 'ACSE-1':decode('ACSE-apdu', Msg).
+
+accepted({aarq, _}) -> error;
+accepted({aare, Apdu}) ->
+ case Apdu#'AARE-apdu'.result of
+ accepted -> ok;
+ 'rejected-permanent' -> error;
+ 'rejected-transient' -> error
+ end;
+accepted({rlrq, _}) -> error;
+accepted({rlre, _}) -> error;
+accepted({abrt, _}) -> error.