summaryrefslogtreecommitdiff
path: root/acse.erl
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-27 15:39:53 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-10-27 15:39:53 +0100
commit423f3fab58f987e8ce243bef39a259d310e9d124 (patch)
tree8cb1838a138a17f5f8eb50b74ab4d65d795cae02 /acse.erl
parent5550bad85735872be74ba3deae220a600ff8dd22 (diff)
Split files
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.