From d6be188a3d57aa511be8456d9fd3dde2c3c137f6 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 8 Nov 2015 17:42:26 +0100 Subject: Rename files --- src/pbx_escape.erl | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/pbx_escape.erl (limited to 'src/pbx_escape.erl') diff --git a/src/pbx_escape.erl b/src/pbx_escape.erl new file mode 100644 index 0000000..bc447d4 --- /dev/null +++ b/src/pbx_escape.erl @@ -0,0 +1,63 @@ +-module(pbx_escape). + +-export([decode/1, lines/1]). +-export([privateData/1, deviceData/1, deviceBasic/1, + pbxType/0, pbxType/1]). + +-include("CSTA-escape-service.hrl"). +-include("CSTA-device-identifiers.hrl"). +-include("KME-specific-types.hrl"). + +decode(Data) -> + 'CSTA-escape-service':decode('EscapeArgument', Data). + +lines(Device) -> + 'CSTA-escape-service':encode('EscapeArgument', #'EscapeArgument'{ + privateData = {private, {kmeSystemData, {getSystemData, {request, + {deviceList, {category, {standardDevice, Device}}}}}}}}). + +privateData({ok, #'EscapeArgument'{privateData = Data}}) -> + private(Data). + +private({private, {kmeSystemData, Data}}) -> + List = linked(Data), + %Dev = lists:map(fun device/1, List), + io:format("kmeSystemData ~p~n", [List]). + +linked({systemDataLinkedReply, #'KmeSystemDataLinkedReply'{lastSegment = false, sysData = Data}}) -> + stateEntry(Data); +linked({systemDataLinkedReply, #'KmeSystemDataLinkedReply'{lastSegment = true, sysData = Data}}) -> + stateEntry(Data). + +stateEntry(#'KmeGetSystemDataRsp'{deviceList = List}) when List =/= asn1_NOVALUE -> + lists:filter(fun stateEntryFilter/1, List); +stateEntry(#'KmeGetSystemDataRsp'{pbxType = Type}) when Type =/= asn1_NOVALUE -> + pbxType(Type). + +stateEntryFilter(#'KmeDeviceStateEntry'{status = ins}) -> true; +stateEntryFilter(#'KmeDeviceStateEntry'{status = ous}) -> false. + +device(#'KmeDeviceStateEntry'{device = #'DeviceID'{deviceIdentifier = Device}}) -> Device. + +deviceData(Device) -> + 'CSTA-escape-service':encode('EscapeArgument', #'EscapeArgument'{ + privateData = {private, {kmeSystemData, {getSystemData, {request, + {deviceData, #'KmeGetSystemDataReq_deviceData'{ + device = #'DeviceID'{deviceIdentifier = Device}, + sysData = {fcoKey, []}}}}}}}}). + +deviceBasic(Device) -> + 'CSTA-escape-service':encode('EscapeArgument', #'EscapeArgument'{ + privateData = {private, {kmeSystemData, {systemDataChanged, + {deviceBasicInfo, #'DeviceID'{deviceIdentifier = Device}}}}}}). + +pbxType() -> + 'CSTA-escape-service':encode('EscapeArgument', #'EscapeArgument'{ + privateData = {private, {kmeSystemData, {getSystemData, {request, + {systemData, pbxType}}}}}}). + +pbxType(Type) -> + proplists:get_value(Type, [{0, tda100}, {1, tda200}, {2, tda30}, + {3, tda50}, {5, tda15}, {6, tda600}, + {7, tde100}, {8, tde200}, {9, tde600}, + {10, ncp500}, {11, ncp1000}, {12, ncp3000}]). -- cgit v1.2.3