summaryrefslogtreecommitdiff
path: root/CSTA-application-context-information-csta3.erl
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-23 10:18:38 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-10-23 10:18:38 +0200
commit31cd25a7dd51f9cb8676370fadf630cf4c81c93b (patch)
treeb9a8fa7b25ababaccab2a6ce5e7cc777e9cb7f02 /CSTA-application-context-information-csta3.erl
Initial import
Diffstat (limited to 'CSTA-application-context-information-csta3.erl')
-rw-r--r--CSTA-application-context-information-csta3.erl1032
1 files changed, 1032 insertions, 0 deletions
diff --git a/CSTA-application-context-information-csta3.erl b/CSTA-application-context-information-csta3.erl
new file mode 100644
index 0000000..fdf7405
--- /dev/null
+++ b/CSTA-application-context-information-csta3.erl
@@ -0,0 +1,1032 @@
+%% Generated by the Erlang ASN.1 BER-compiler version:1.7
+%% Purpose: encoder and decoder to the types in mod CSTA-application-context-information-csta3
+
+-module('CSTA-application-context-information-csta3').
+-include("CSTA-application-context-information-csta3.hrl").
+-define('RT_BER',asn1rt_ber_bin).
+-asn1_info([{vsn,'1.7'},
+ {module,'CSTA-application-context-information-csta3'},
+ {options,[{i,[47,104,111,109,101,47,113,117,97,120,47,101,114,108,47,97,115,110]},warnings,ber,errors,{cwd,[47,104,111,109,101,47,113,117,97,120,47,101,114,108,47,97,115,110]},{outdir,[47,104,111,109,101,47,113,117,97,120,47,101,114,108,47,97,115,110]},{i,[46]},{i,[47,104,111,109,101,47,113,117,97,120,47,101,114,108,47,97,115,110,47,107,109,101]}]}]).
+
+-export([encoding_rule/0]).
+-export([
+'enc_CSTAFunctionality'/2,
+'enc_SwitchingFunctionServicesC2'/2,
+'enc_EventReportServicesC2'/2,
+'enc_ComputingFunctionServicesC2'/2,
+'enc_BidirectionalServicesC2'/2,
+'enc_StatusReportingServicesC2'/2,
+'enc_InputOutputServicesC2'/2,
+'enc_VoiceUnitServicesC2'/2,
+'enc_ACSEUserInformationForCSTA'/2,
+'enc_OldACSEUserInformationForCSTA'/2,
+'enc_NewACSEUserInformationForCSTA'/2,
+'enc_CSTAPrivateDataVersionList'/2,
+'enc_CSTAVersion'/2,
+'enc_CallControlServices'/2,
+'enc_CallAssociatedServices'/2,
+'enc_MediaAttachmentServices'/2,
+'enc_RouteingServices'/2,
+'enc_VoiceUnitServices'/2,
+'enc_LocationServices'/2,
+'enc_CallControlEvents'/2,
+'enc_CallAssociatedEvents'/2,
+'enc_MediaAttachmentEvents'/2,
+'enc_PhysicalDeviceFeatureEvents'/2,
+'enc_LogicalDeviceFeatureEvents'/2,
+'enc_DeviceMaintenanceEvents'/2,
+'enc_VoiceUnitEvents'/2,
+'enc_VendorSpecEvents'/2
+]).
+
+-export([
+'dec_CSTAFunctionality'/2,
+'dec_SwitchingFunctionServicesC2'/2,
+'dec_EventReportServicesC2'/2,
+'dec_ComputingFunctionServicesC2'/2,
+'dec_BidirectionalServicesC2'/2,
+'dec_StatusReportingServicesC2'/2,
+'dec_InputOutputServicesC2'/2,
+'dec_VoiceUnitServicesC2'/2,
+'dec_ACSEUserInformationForCSTA'/2,
+'dec_OldACSEUserInformationForCSTA'/2,
+'dec_NewACSEUserInformationForCSTA'/2,
+'dec_CSTAPrivateDataVersionList'/2,
+'dec_CSTAVersion'/2,
+'dec_CallControlServices'/2,
+'dec_CallAssociatedServices'/2,
+'dec_MediaAttachmentServices'/2,
+'dec_RouteingServices'/2,
+'dec_VoiceUnitServices'/2,
+'dec_LocationServices'/2,
+'dec_CallControlEvents'/2,
+'dec_CallAssociatedEvents'/2,
+'dec_MediaAttachmentEvents'/2,
+'dec_PhysicalDeviceFeatureEvents'/2,
+'dec_LogicalDeviceFeatureEvents'/2,
+'dec_DeviceMaintenanceEvents'/2,
+'dec_VoiceUnitEvents'/2,
+'dec_VendorSpecEvents'/2
+]).
+
+-export([
+'dec_CSTAFunctionality'/3,
+'dec_SwitchingFunctionServicesC2'/3,
+'dec_EventReportServicesC2'/3,
+'dec_ComputingFunctionServicesC2'/3,
+'dec_BidirectionalServicesC2'/3,
+'dec_StatusReportingServicesC2'/3,
+'dec_InputOutputServicesC2'/3,
+'dec_VoiceUnitServicesC2'/3,
+'dec_ACSEUserInformationForCSTA'/3,
+'dec_OldACSEUserInformationForCSTA'/3,
+'dec_NewACSEUserInformationForCSTA'/3,
+'dec_CSTAPrivateDataVersionList'/3,
+'dec_CSTAVersion'/3,
+'dec_CallControlServices'/3,
+'dec_CallAssociatedServices'/3,
+'dec_MediaAttachmentServices'/3,
+'dec_RouteingServices'/3,
+'dec_VoiceUnitServices'/3,
+'dec_LocationServices'/3,
+'dec_CallControlEvents'/3,
+'dec_CallAssociatedEvents'/3,
+'dec_MediaAttachmentEvents'/3,
+'dec_PhysicalDeviceFeatureEvents'/3,
+'dec_LogicalDeviceFeatureEvents'/3,
+'dec_DeviceMaintenanceEvents'/3,
+'dec_VoiceUnitEvents'/3,
+'dec_VendorSpecEvents'/3
+]).
+
+-export([info/0]).
+
+
+-export([encode/2,decode/2,encode_disp/2,decode_disp/2]).
+
+encoding_rule() ->
+ ber.
+
+encode(Type,Data) ->
+case catch encode_disp(Type,Data) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {Bytes,_Len} ->
+ {ok,wrap_encode(Bytes)};
+ Bytes ->
+ {ok,wrap_encode(Bytes)}
+end.
+
+decode(Type,Data) ->
+case catch decode_disp(Type,wrap_decode(Data)) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {X,_Rest} ->
+ {ok,X};
+ {X,_Rest,_Len} ->
+ {ok,X}
+end.
+
+encode_disp('CSTAFunctionality',Data) -> 'enc_CSTAFunctionality'(Data,[]);
+encode_disp('SwitchingFunctionServicesC2',Data) -> 'enc_SwitchingFunctionServicesC2'(Data,[]);
+encode_disp('EventReportServicesC2',Data) -> 'enc_EventReportServicesC2'(Data,[]);
+encode_disp('ComputingFunctionServicesC2',Data) -> 'enc_ComputingFunctionServicesC2'(Data,[]);
+encode_disp('BidirectionalServicesC2',Data) -> 'enc_BidirectionalServicesC2'(Data,[]);
+encode_disp('StatusReportingServicesC2',Data) -> 'enc_StatusReportingServicesC2'(Data,[]);
+encode_disp('InputOutputServicesC2',Data) -> 'enc_InputOutputServicesC2'(Data,[]);
+encode_disp('VoiceUnitServicesC2',Data) -> 'enc_VoiceUnitServicesC2'(Data,[]);
+encode_disp('ACSEUserInformationForCSTA',Data) -> 'enc_ACSEUserInformationForCSTA'(Data,[]);
+encode_disp('OldACSEUserInformationForCSTA',Data) -> 'enc_OldACSEUserInformationForCSTA'(Data,[]);
+encode_disp('NewACSEUserInformationForCSTA',Data) -> 'enc_NewACSEUserInformationForCSTA'(Data,[]);
+encode_disp('CSTAPrivateDataVersionList',Data) -> 'enc_CSTAPrivateDataVersionList'(Data,[]);
+encode_disp('CSTAVersion',Data) -> 'enc_CSTAVersion'(Data,[]);
+encode_disp('CallControlServices',Data) -> 'enc_CallControlServices'(Data,[]);
+encode_disp('CallAssociatedServices',Data) -> 'enc_CallAssociatedServices'(Data,[]);
+encode_disp('MediaAttachmentServices',Data) -> 'enc_MediaAttachmentServices'(Data,[]);
+encode_disp('RouteingServices',Data) -> 'enc_RouteingServices'(Data,[]);
+encode_disp('VoiceUnitServices',Data) -> 'enc_VoiceUnitServices'(Data,[]);
+encode_disp('LocationServices',Data) -> 'enc_LocationServices'(Data,[]);
+encode_disp('CallControlEvents',Data) -> 'enc_CallControlEvents'(Data,[]);
+encode_disp('CallAssociatedEvents',Data) -> 'enc_CallAssociatedEvents'(Data,[]);
+encode_disp('MediaAttachmentEvents',Data) -> 'enc_MediaAttachmentEvents'(Data,[]);
+encode_disp('PhysicalDeviceFeatureEvents',Data) -> 'enc_PhysicalDeviceFeatureEvents'(Data,[]);
+encode_disp('LogicalDeviceFeatureEvents',Data) -> 'enc_LogicalDeviceFeatureEvents'(Data,[]);
+encode_disp('DeviceMaintenanceEvents',Data) -> 'enc_DeviceMaintenanceEvents'(Data,[]);
+encode_disp('VoiceUnitEvents',Data) -> 'enc_VoiceUnitEvents'(Data,[]);
+encode_disp('VendorSpecEvents',Data) -> 'enc_VendorSpecEvents'(Data,[]);
+encode_disp(Type,_Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+decode_disp('CSTAFunctionality',Data) -> 'dec_CSTAFunctionality'(Data,mandatory);
+decode_disp('SwitchingFunctionServicesC2',Data) -> 'dec_SwitchingFunctionServicesC2'(Data,mandatory);
+decode_disp('EventReportServicesC2',Data) -> 'dec_EventReportServicesC2'(Data,mandatory);
+decode_disp('ComputingFunctionServicesC2',Data) -> 'dec_ComputingFunctionServicesC2'(Data,mandatory);
+decode_disp('BidirectionalServicesC2',Data) -> 'dec_BidirectionalServicesC2'(Data,mandatory);
+decode_disp('StatusReportingServicesC2',Data) -> 'dec_StatusReportingServicesC2'(Data,mandatory);
+decode_disp('InputOutputServicesC2',Data) -> 'dec_InputOutputServicesC2'(Data,mandatory);
+decode_disp('VoiceUnitServicesC2',Data) -> 'dec_VoiceUnitServicesC2'(Data,mandatory);
+decode_disp('ACSEUserInformationForCSTA',Data) -> 'dec_ACSEUserInformationForCSTA'(Data,mandatory);
+decode_disp('OldACSEUserInformationForCSTA',Data) -> 'dec_OldACSEUserInformationForCSTA'(Data,mandatory);
+decode_disp('NewACSEUserInformationForCSTA',Data) -> 'dec_NewACSEUserInformationForCSTA'(Data,mandatory);
+decode_disp('CSTAPrivateDataVersionList',Data) -> 'dec_CSTAPrivateDataVersionList'(Data,mandatory);
+decode_disp('CSTAVersion',Data) -> 'dec_CSTAVersion'(Data,mandatory);
+decode_disp('CallControlServices',Data) -> 'dec_CallControlServices'(Data,mandatory);
+decode_disp('CallAssociatedServices',Data) -> 'dec_CallAssociatedServices'(Data,mandatory);
+decode_disp('MediaAttachmentServices',Data) -> 'dec_MediaAttachmentServices'(Data,mandatory);
+decode_disp('RouteingServices',Data) -> 'dec_RouteingServices'(Data,mandatory);
+decode_disp('VoiceUnitServices',Data) -> 'dec_VoiceUnitServices'(Data,mandatory);
+decode_disp('LocationServices',Data) -> 'dec_LocationServices'(Data,mandatory);
+decode_disp('CallControlEvents',Data) -> 'dec_CallControlEvents'(Data,mandatory);
+decode_disp('CallAssociatedEvents',Data) -> 'dec_CallAssociatedEvents'(Data,mandatory);
+decode_disp('MediaAttachmentEvents',Data) -> 'dec_MediaAttachmentEvents'(Data,mandatory);
+decode_disp('PhysicalDeviceFeatureEvents',Data) -> 'dec_PhysicalDeviceFeatureEvents'(Data,mandatory);
+decode_disp('LogicalDeviceFeatureEvents',Data) -> 'dec_LogicalDeviceFeatureEvents'(Data,mandatory);
+decode_disp('DeviceMaintenanceEvents',Data) -> 'dec_DeviceMaintenanceEvents'(Data,mandatory);
+decode_disp('VoiceUnitEvents',Data) -> 'dec_VoiceUnitEvents'(Data,mandatory);
+decode_disp('VendorSpecEvents',Data) -> 'dec_VendorSpecEvents'(Data,mandatory);
+decode_disp(Type,_Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+
+wrap_encode(Bytes) when is_list(Bytes) ->
+ binary_to_list(list_to_binary(Bytes));
+wrap_encode(Bytes) when is_binary(Bytes) ->
+ binary_to_list(Bytes);
+wrap_encode(Bytes) -> Bytes.
+
+wrap_decode(Bytes) when is_list(Bytes) ->
+ list_to_binary(Bytes);
+wrap_decode(Bytes) -> Bytes.
+
+
+info() ->
+ case ?MODULE:module_info() of
+ MI when is_list(MI) ->
+ case lists:keysearch(attributes,1,MI) of
+ {value,{_,Attributes}} when is_list(Attributes) ->
+ case lists:keysearch(asn1_info,1,Attributes) of
+ {value,{_,Info}} when is_list(Info) ->
+ Info;
+ _ ->
+ []
+ end;
+ _ ->
+ []
+ end
+ end.
+
+
+%%================================
+%% CSTAFunctionality
+%%================================
+'enc_CSTAFunctionality'(Val, TagIn) ->
+
+%%-------------------------------------------------
+%% attribute number 1 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes1,EncLen1} = case ?RT_BER:cindex(2,Val,switchingFunctionServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(2,Val,switchingFunctionServices), [{alternateCall,0},{answerCall,1},{associateData,2},{callCompletion,3},{clearCall,4},{clearConnection,5},{conferenceCall,6},{consultationCall,7},{divertCall,8},{holdCall,9},{makeCall,10},{makePredictiveCall,11},{parkCall,12},{queryDevice,13},{reconnectCall,14},{retrieveCall,15},{sendDTMFTones,16},{setFeature,17},{singleStepConference,18},{singleStepTransfer,19},{transferCall,20}], [{tag,128,0,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 2 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes2,EncLen2} = case ?RT_BER:cindex(3,Val,eventReportServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(3,Val,eventReportServices), [{callCleared,0},{conferenced,1},{connectionCleared,2},{delivered,3},{diverted,4},{established,5},{failed,6},{held,7},{networkReached,8},{originated,9},{queued,10},{retrieved,11},{serviceInitiated,12},{transferred,13},{autoAnswer,14},{callInformation,15},{doNotDisturb,16},{forwarding,17},{messageWaiting,18},{microphoneMute,19},{speakerMute,20},{speakerVolume,21},{agentBusy,22},{loggedOn,23},{loggedOff,24},{notReady,25},{ready,26},{workingAfterCall,27},{backInService,28},{outOfServiceEvent,29},{privateEvent,30},{playEvent,31},{recordEvent,32},{reviewEvent,33},{stopEvent,34},{suspendPlayEvent,35},{suspendRecordEvent,36},{voiceAttributesChangeEvent,37}], [{tag,128,1,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 3 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes3,EncLen3} = case ?RT_BER:cindex(4,Val,computingFunctionServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(4,Val,computingFunctionServices), [{routeRequest,0},{reRouteRequest,1},{routeSelectRequest,2},{routeUsedRequest,3},{routeEndRequest,4}], [{tag,128,2,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 4 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes4,EncLen4} = case ?RT_BER:cindex(5,Val,bidirectionalServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(5,Val,bidirectionalServices), [{escapeService,0},{systemStatus,1}], [{tag,128,3,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 5 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes5,EncLen5} = case ?RT_BER:cindex(6,Val,statusReportingServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(6,Val,statusReportingServices), [{monitorStart,0},{changeMonitorFilter,1},{monitorStop,2},{snapshotDevice,3},{snapshotCall,4}], [{tag,128,4,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 6 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes6,EncLen6} = case ?RT_BER:cindex(7,Val,inputOutputServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(7,Val,inputOutputServices), [{startDataPathService,0},{stopDataPathService,1},{sendDataService,2},{sendMulticastDataService,3},{sendBroadcastDataService,4},{suspendDataPathService,5},{dataPathSuspendedService,6},{resumeDataPath,7},{dataPathResumedService,8},{fastData,9}], [{tag,128,5,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 7 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {EncBytes7,EncLen7} = case ?RT_BER:cindex(8,Val,voiceUnitServices) of
+ asn1_DEFAULT -> {<<>>,0};
+ [] -> {<<>>,0};
+ _ ->
+ ?RT_BER:encode_bit_string([], ?RT_BER:cindex(8,Val,voiceUnitServices), [{concatenateMessage,0},{deleteMessage,1},{playMessage,2},{queryVoiceAttribute,3},{recordMessage,4},{reposition,5},{resume,6},{review,7},{setVoiceAttribute,8},{stop,9},{suspend,10},{synthesizeMessage,11}], [{tag,128,6,'IMPLICIT',32}])
+ end,
+
+ BytesSoFar = [EncBytes1, EncBytes2, EncBytes3, EncBytes4, EncBytes5, EncBytes6, EncBytes7],
+ LenSoFar = EncLen1 + EncLen2 + EncLen3 + EncLen4 + EncLen5 + EncLen6 + EncLen7,
+ ?RT_BER:encode_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], BytesSoFar, LenSoFar).
+
+
+'dec_CSTAFunctionality'(Bytes, OptOrMand) ->
+ 'dec_CSTAFunctionality'(Bytes, OptOrMand, []).
+
+'dec_CSTAFunctionality'(Bytes, OptOrMand, TagIn) ->
+ %%-------------------------------------------------
+ %% decode tag and length
+ %%-------------------------------------------------
+ {{_,Len},Bytes1,Rb1} = ?RT_BER:check_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], Bytes, OptOrMand),
+{Bytes2,RemBytes} = ?RT_BER:split_list(Bytes1,Len),
+
+%%-------------------------------------------------
+%% attribute number 1 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term1,Bytes3,Rb2} = case Bytes2 of
+<<2:2,_:1,0:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes2,[],[{alternateCall,0},{answerCall,1},{associateData,2},{callCompletion,3},{clearCall,4},{clearConnection,5},{conferenceCall,6},{consultationCall,7},{divertCall,8},{holdCall,9},{makeCall,10},{makePredictiveCall,11},{parkCall,12},{queryDevice,13},{reconnectCall,14},{retrieveCall,15},{sendDTMFTones,16},{setFeature,17},{singleStepConference,18},{singleStepTransfer,19},{transferCall,20}],[{tag,128,0,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes2, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 2 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term2,Bytes4,Rb3} = case Bytes3 of
+<<2:2,_:1,1:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes3,[],[{callCleared,0},{conferenced,1},{connectionCleared,2},{delivered,3},{diverted,4},{established,5},{failed,6},{held,7},{networkReached,8},{originated,9},{queued,10},{retrieved,11},{serviceInitiated,12},{transferred,13},{autoAnswer,14},{callInformation,15},{doNotDisturb,16},{forwarding,17},{messageWaiting,18},{microphoneMute,19},{speakerMute,20},{speakerVolume,21},{agentBusy,22},{loggedOn,23},{loggedOff,24},{notReady,25},{ready,26},{workingAfterCall,27},{backInService,28},{outOfServiceEvent,29},{privateEvent,30},{playEvent,31},{recordEvent,32},{reviewEvent,33},{stopEvent,34},{suspendPlayEvent,35},{suspendRecordEvent,36},{voiceAttributesChangeEvent,37}],[{tag,128,1,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes3, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 3 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term3,Bytes5,Rb4} = case Bytes4 of
+<<2:2,_:1,2:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes4,[],[{routeRequest,0},{reRouteRequest,1},{routeSelectRequest,2},{routeUsedRequest,3},{routeEndRequest,4}],[{tag,128,2,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes4, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 4 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term4,Bytes6,Rb5} = case Bytes5 of
+<<2:2,_:1,3:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes5,[],[{escapeService,0},{systemStatus,1}],[{tag,128,3,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes5, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 5 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term5,Bytes7,Rb6} = case Bytes6 of
+<<2:2,_:1,4:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes6,[],[{monitorStart,0},{changeMonitorFilter,1},{monitorStop,2},{snapshotDevice,3},{snapshotCall,4}],[{tag,128,4,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes6, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 6 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term6,Bytes8,Rb7} = case Bytes7 of
+<<2:2,_:1,5:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes7,[],[{startDataPathService,0},{stopDataPathService,1},{sendDataService,2},{sendMulticastDataService,3},{sendBroadcastDataService,4},{suspendDataPathService,5},{dataPathSuspendedService,6},{resumeDataPath,7},{dataPathResumedService,8},{fastData,9}],[{tag,128,5,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes7, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 7 with type BIT STRING DEFAULT = []
+%%-------------------------------------------------
+ {Term7,Bytes9,Rb8} = case Bytes8 of
+<<2:2,_:1,6:5,_/binary>> ->
+?RT_BER:decode_bit_string(Bytes8,[],[{concatenateMessage,0},{deleteMessage,1},{playMessage,2},{queryVoiceAttribute,3},{recordMessage,4},{reposition,5},{resume,6},{review,7},{setVoiceAttribute,8},{stop,9},{suspend,10},{synthesizeMessage,11}],[{tag,128,6,'IMPLICIT',32}], no_length, mandatory);
+_ ->
+{[],Bytes8, 0 }
+end,
+
+ {Bytes10,Rb9} = ?RT_BER:restbytes2(RemBytes, Bytes9,noext),
+ {{'CSTAFunctionality', Term1, Term2, Term3, Term4, Term5, Term6, Term7}, Bytes10, Rb1+Rb2+Rb3+Rb4+Rb5+Rb6+Rb7+Rb8+Rb9}.
+
+
+%%================================
+%% SwitchingFunctionServicesC2
+%%================================
+
+'enc_SwitchingFunctionServicesC2'({'SwitchingFunctionServicesC2',Val}, TagIn) ->
+ 'enc_SwitchingFunctionServicesC2'(Val, TagIn);
+
+'enc_SwitchingFunctionServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{alternateCall,0},{answerCall,1},{associateData,2},{callCompletion,3},{clearCall,4},{clearConnection,5},{conferenceCall,6},{consultationCall,7},{divertCall,8},{holdCall,9},{makeCall,10},{makePredictiveCall,11},{parkCall,12},{queryDevice,13},{reconnectCall,14},{retrieveCall,15},{sendDTMFTones,16},{setFeature,17},{singleStepConference,18},{singleStepTransfer,19},{transferCall,20}], TagIn ++ []).
+
+
+'dec_SwitchingFunctionServicesC2'(Bytes, OptOrMand) ->
+ 'dec_SwitchingFunctionServicesC2'(Bytes, OptOrMand, []).
+
+'dec_SwitchingFunctionServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{alternateCall,0},{answerCall,1},{associateData,2},{callCompletion,3},{clearCall,4},{clearConnection,5},{conferenceCall,6},{consultationCall,7},{divertCall,8},{holdCall,9},{makeCall,10},{makePredictiveCall,11},{parkCall,12},{queryDevice,13},{reconnectCall,14},{retrieveCall,15},{sendDTMFTones,16},{setFeature,17},{singleStepConference,18},{singleStepTransfer,19},{transferCall,20}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% EventReportServicesC2
+%%================================
+
+'enc_EventReportServicesC2'({'EventReportServicesC2',Val}, TagIn) ->
+ 'enc_EventReportServicesC2'(Val, TagIn);
+
+'enc_EventReportServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{callCleared,0},{conferenced,1},{connectionCleared,2},{delivered,3},{diverted,4},{established,5},{failed,6},{held,7},{networkReached,8},{originated,9},{queued,10},{retrieved,11},{serviceInitiated,12},{transferred,13},{autoAnswer,14},{callInformation,15},{doNotDisturb,16},{forwarding,17},{messageWaiting,18},{microphoneMute,19},{speakerMute,20},{speakerVolume,21},{agentBusy,22},{loggedOn,23},{loggedOff,24},{notReady,25},{ready,26},{workingAfterCall,27},{backInService,28},{outOfServiceEvent,29},{privateEvent,30},{playEvent,31},{recordEvent,32},{reviewEvent,33},{stopEvent,34},{suspendPlayEvent,35},{suspendRecordEvent,36},{voiceAttributesChangeEvent,37}], TagIn ++ []).
+
+
+'dec_EventReportServicesC2'(Bytes, OptOrMand) ->
+ 'dec_EventReportServicesC2'(Bytes, OptOrMand, []).
+
+'dec_EventReportServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{callCleared,0},{conferenced,1},{connectionCleared,2},{delivered,3},{diverted,4},{established,5},{failed,6},{held,7},{networkReached,8},{originated,9},{queued,10},{retrieved,11},{serviceInitiated,12},{transferred,13},{autoAnswer,14},{callInformation,15},{doNotDisturb,16},{forwarding,17},{messageWaiting,18},{microphoneMute,19},{speakerMute,20},{speakerVolume,21},{agentBusy,22},{loggedOn,23},{loggedOff,24},{notReady,25},{ready,26},{workingAfterCall,27},{backInService,28},{outOfServiceEvent,29},{privateEvent,30},{playEvent,31},{recordEvent,32},{reviewEvent,33},{stopEvent,34},{suspendPlayEvent,35},{suspendRecordEvent,36},{voiceAttributesChangeEvent,37}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% ComputingFunctionServicesC2
+%%================================
+
+'enc_ComputingFunctionServicesC2'({'ComputingFunctionServicesC2',Val}, TagIn) ->
+ 'enc_ComputingFunctionServicesC2'(Val, TagIn);
+
+'enc_ComputingFunctionServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{routeRequest,0},{reRouteRequest,1},{routeSelectRequest,2},{routeUsedRequest,3},{routeEndRequest,4}], TagIn ++ []).
+
+
+'dec_ComputingFunctionServicesC2'(Bytes, OptOrMand) ->
+ 'dec_ComputingFunctionServicesC2'(Bytes, OptOrMand, []).
+
+'dec_ComputingFunctionServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{routeRequest,0},{reRouteRequest,1},{routeSelectRequest,2},{routeUsedRequest,3},{routeEndRequest,4}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% BidirectionalServicesC2
+%%================================
+
+'enc_BidirectionalServicesC2'({'BidirectionalServicesC2',Val}, TagIn) ->
+ 'enc_BidirectionalServicesC2'(Val, TagIn);
+
+'enc_BidirectionalServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{escapeService,0},{systemStatus,1}], TagIn ++ []).
+
+
+'dec_BidirectionalServicesC2'(Bytes, OptOrMand) ->
+ 'dec_BidirectionalServicesC2'(Bytes, OptOrMand, []).
+
+'dec_BidirectionalServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{escapeService,0},{systemStatus,1}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% StatusReportingServicesC2
+%%================================
+
+'enc_StatusReportingServicesC2'({'StatusReportingServicesC2',Val}, TagIn) ->
+ 'enc_StatusReportingServicesC2'(Val, TagIn);
+
+'enc_StatusReportingServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{monitorStart,0},{changeMonitorFilter,1},{monitorStop,2},{snapshotDevice,3},{snapshotCall,4}], TagIn ++ []).
+
+
+'dec_StatusReportingServicesC2'(Bytes, OptOrMand) ->
+ 'dec_StatusReportingServicesC2'(Bytes, OptOrMand, []).
+
+'dec_StatusReportingServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{monitorStart,0},{changeMonitorFilter,1},{monitorStop,2},{snapshotDevice,3},{snapshotCall,4}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% InputOutputServicesC2
+%%================================
+
+'enc_InputOutputServicesC2'({'InputOutputServicesC2',Val}, TagIn) ->
+ 'enc_InputOutputServicesC2'(Val, TagIn);
+
+'enc_InputOutputServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{startDataPathService,0},{stopDataPathService,1},{sendDataService,2},{sendMulticastDataService,3},{sendBroadcastDataService,4},{suspendDataPathService,5},{dataPathSuspendedService,6},{resumeDataPath,7},{dataPathResumedService,8},{fastData,9}], TagIn ++ []).
+
+
+'dec_InputOutputServicesC2'(Bytes, OptOrMand) ->
+ 'dec_InputOutputServicesC2'(Bytes, OptOrMand, []).
+
+'dec_InputOutputServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{startDataPathService,0},{stopDataPathService,1},{sendDataService,2},{sendMulticastDataService,3},{sendBroadcastDataService,4},{suspendDataPathService,5},{dataPathSuspendedService,6},{resumeDataPath,7},{dataPathResumedService,8},{fastData,9}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% VoiceUnitServicesC2
+%%================================
+
+'enc_VoiceUnitServicesC2'({'VoiceUnitServicesC2',Val}, TagIn) ->
+ 'enc_VoiceUnitServicesC2'(Val, TagIn);
+
+'enc_VoiceUnitServicesC2'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{concatenateMessage,0},{deleteMessage,1},{playMessage,2},{queryVoiceAttribute,3},{recordMessage,4},{reposition,5},{resume,6},{review,7},{setVoiceAttribute,8},{stop,9},{suspend,10},{synthesizeMessage,11}], TagIn ++ []).
+
+
+'dec_VoiceUnitServicesC2'(Bytes, OptOrMand) ->
+ 'dec_VoiceUnitServicesC2'(Bytes, OptOrMand, []).
+
+'dec_VoiceUnitServicesC2'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{concatenateMessage,0},{deleteMessage,1},{playMessage,2},{queryVoiceAttribute,3},{recordMessage,4},{reposition,5},{resume,6},{review,7},{setVoiceAttribute,8},{stop,9},{suspend,10},{synthesizeMessage,11}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% ACSEUserInformationForCSTA
+%%================================
+
+'enc_ACSEUserInformationForCSTA'({'ACSEUserInformationForCSTA',Val}, TagIn) ->
+ 'enc_ACSEUserInformationForCSTA'(Val, TagIn);
+
+'enc_ACSEUserInformationForCSTA'(Val, TagIn) ->
+ {EncBytes,EncLen} = case element(1,Val) of
+ oldDefinition ->
+ 'enc_OldACSEUserInformationForCSTA'(element(2,Val), []);
+ newDefinition ->
+ 'enc_NewACSEUserInformationForCSTA'(element(2,Val), [{tag,128,0,'IMPLICIT',32}]);
+ Else ->
+ exit({error,{asn1,{invalid_choice_type,Else}}})
+ end,
+
+?RT_BER:encode_tags(TagIn ++[], EncBytes, EncLen).
+
+
+
+
+'dec_ACSEUserInformationForCSTA'(Bytes, OptOrMand) ->
+ 'dec_ACSEUserInformationForCSTA'(Bytes, OptOrMand, []).
+
+'dec_ACSEUserInformationForCSTA'(Bytes, OptOrMand, TagIn) ->
+ {{_,Len},Bytes1, RbExp} = ?RT_BER:check_tags(TagIn++[], Bytes, OptOrMand),
+ IndefEndBytes = fun(indefinite,<<0,0,R/binary>>)-> R; (_,B)-> B end,
+ IndefEndRb = fun(indefinite,<<0,0,_R/binary>>)-> 2; (_,_)-> 0 end,
+ case Bytes1 of
+
+%% 'oldDefinition'
+ <<0:2,_:1,16:5,_/binary>> ->
+ {Dec, Rest, RbCho} = 'dec_OldACSEUserInformationForCSTA'(Bytes1, mandatory, []),
+ {{oldDefinition, Dec}, IndefEndBytes(Len,Rest), RbExp + RbCho + IndefEndRb(Len,Rest)};
+
+
+%% 'newDefinition'
+ <<2:2,_:1,0:5,_/binary>> ->
+ {Dec, Rest, RbCho} = 'dec_NewACSEUserInformationForCSTA'(Bytes1, mandatory, [{tag,128,0,'IMPLICIT',32}]),
+ {{newDefinition, Dec}, IndefEndBytes(Len,Rest), RbExp + RbCho + IndefEndRb(Len,Rest)};
+
+ Else ->
+ case OptOrMand of
+ mandatory ->exit({error,{asn1,{invalid_choice_tag,Else}}});
+ _ ->exit({error,{asn1,{no_optional_tag,Else}}})
+ end
+ end.
+
+
+%%================================
+%% OldACSEUserInformationForCSTA
+%%================================
+'enc_OldACSEUserInformationForCSTA'(Val, TagIn) ->
+
+%%-------------------------------------------------
+%% attribute number 1 with type BIT STRING
+%%-------------------------------------------------
+ {EncBytes1,EncLen1} = ?RT_BER:encode_bit_string([], ?RT_BER:cindex(2,Val,cSTAVersion), [{versionOne,0},{versionTwo,1},{versionThree,2},{versionFour,3},{versionFive,4},{versionSix,5},{versionSeven,6},{versionEight,7},{versionNine,8},{versionTen,9},{versionEleven,10},{versionTwelve,11},{versionThirteen,12},{versionFourteen,13},{versionFifteen,14},{versionSixteen,15},{versionSeventeen,16},{versionEighteen,17},{versionNineteen,18},{versionTwenty,19},{versionTwentyone,20},{versionTwentytwo,21},{versionTwentythree,22},{versionTwentyfour,23}], []),
+
+%%-------------------------------------------------
+%% attribute number 2 External CSTA-application-context-information-csta3:CSTAFunctionality
+%%-------------------------------------------------
+ {EncBytes2,EncLen2} = 'enc_CSTAFunctionality'(?RT_BER:cindex(3,Val,cSTAFunctionsRequiredByApplication), []),
+
+%%-------------------------------------------------
+%% attribute number 3 External CSTA-application-context-information-csta3:CSTAFunctionality
+%%-------------------------------------------------
+ {EncBytes3,EncLen3} = 'enc_CSTAFunctionality'(?RT_BER:cindex(4,Val,cSTAFunctionsThatCanBeSupplied), []),
+
+ BytesSoFar = [EncBytes1, EncBytes2, EncBytes3],
+ LenSoFar = EncLen1 + EncLen2 + EncLen3,
+ ?RT_BER:encode_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], BytesSoFar, LenSoFar).
+
+
+'dec_OldACSEUserInformationForCSTA'(Bytes, OptOrMand) ->
+ 'dec_OldACSEUserInformationForCSTA'(Bytes, OptOrMand, []).
+
+'dec_OldACSEUserInformationForCSTA'(Bytes, OptOrMand, TagIn) ->
+ %%-------------------------------------------------
+ %% decode tag and length
+ %%-------------------------------------------------
+ {{_,Len},Bytes1,Rb1} = ?RT_BER:check_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], Bytes, OptOrMand),
+{Bytes2,RemBytes} = ?RT_BER:split_list(Bytes1,Len),
+
+%%-------------------------------------------------
+%% attribute number 1 with type BIT STRING
+%%-------------------------------------------------
+ {Term1,Bytes3,Rb2} = ?RT_BER:decode_bit_string(Bytes2,[],[{versionOne,0},{versionTwo,1},{versionThree,2},{versionFour,3},{versionFive,4},{versionSix,5},{versionSeven,6},{versionEight,7},{versionNine,8},{versionTen,9},{versionEleven,10},{versionTwelve,11},{versionThirteen,12},{versionFourteen,13},{versionFifteen,14},{versionSixteen,15},{versionSeventeen,16},{versionEighteen,17},{versionNineteen,18},{versionTwenty,19},{versionTwentyone,20},{versionTwentytwo,21},{versionTwentythree,22},{versionTwentyfour,23}],[], no_length, mandatory),
+
+%%-------------------------------------------------
+%% attribute number 2 External CSTA-application-context-information-csta3:CSTAFunctionality
+%%-------------------------------------------------
+ {Term2,Bytes4,Rb3} = 'dec_CSTAFunctionality'(Bytes3, mandatory, []),
+
+%%-------------------------------------------------
+%% attribute number 3 External CSTA-application-context-information-csta3:CSTAFunctionality
+%%-------------------------------------------------
+ {Term3,Bytes5,Rb4} = 'dec_CSTAFunctionality'(Bytes4, mandatory, []),
+
+ {Bytes6,Rb5} = ?RT_BER:restbytes2(RemBytes, Bytes5,noext),
+ {{'OldACSEUserInformationForCSTA', Term1, Term2, Term3}, Bytes6, Rb1+Rb2+Rb3+Rb4+Rb5}.
+
+
+%%================================
+%% NewACSEUserInformationForCSTA
+%%================================
+'enc_NewACSEUserInformationForCSTA'(Val, TagIn) ->
+
+%%-------------------------------------------------
+%% attribute number 1 with type BIT STRING
+%%-------------------------------------------------
+ {EncBytes1,EncLen1} = ?RT_BER:encode_bit_string([], ?RT_BER:cindex(2,Val,cSTAVersion), [{versionOne,0},{versionTwo,1},{versionThree,2},{versionFour,3},{versionFive,4},{versionSix,5},{versionSeven,6},{versionEight,7},{versionNine,8},{versionTen,9},{versionEleven,10},{versionTwelve,11},{versionThirteen,12},{versionFourteen,13},{versionFifteen,14},{versionSixteen,15},{versionSeventeen,16},{versionEighteen,17},{versionNineteen,18},{versionTwenty,19},{versionTwentyone,20},{versionTwentytwo,21},{versionTwentythree,22},{versionTwentyfour,23}], []),
+
+%%-------------------------------------------------
+%% attribute number 2 External CSTA-application-context-information-csta3:CSTAFunctionality OPTIONAL
+%%-------------------------------------------------
+ {EncBytes2,EncLen2} = case ?RT_BER:cindex(3,Val,cSTAFunctionsRequiredByApplication) of
+ asn1_NOVALUE -> {<<>>,0};
+ _ ->
+ 'enc_CSTAFunctionality'(?RT_BER:cindex(3,Val,cSTAFunctionsRequiredByApplication), [{tag,128,0,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 3 External CSTA-application-context-information-csta3:CSTAFunctionality OPTIONAL
+%%-------------------------------------------------
+ {EncBytes3,EncLen3} = case ?RT_BER:cindex(4,Val,cSTAFunctionsThatCanBeSupplied) of
+ asn1_NOVALUE -> {<<>>,0};
+ _ ->
+ 'enc_CSTAFunctionality'(?RT_BER:cindex(4,Val,cSTAFunctionsThatCanBeSupplied), [{tag,128,1,'IMPLICIT',32}])
+ end,
+
+%%-------------------------------------------------
+%% attribute number 4 External CSTA-application-context-information-csta3:CSTAPrivateDataVersionList OPTIONAL
+%%-------------------------------------------------
+ {EncBytes4,EncLen4} = case ?RT_BER:cindex(5,Val,cSTAPrivateDataVersionList) of
+ asn1_NOVALUE -> {<<>>,0};
+ _ ->
+ 'enc_CSTAPrivateDataVersionList'(?RT_BER:cindex(5,Val,cSTAPrivateDataVersionList), [{tag,128,2,'IMPLICIT',32}])
+ end,
+
+ BytesSoFar = [EncBytes1, EncBytes2, EncBytes3, EncBytes4],
+ LenSoFar = EncLen1 + EncLen2 + EncLen3 + EncLen4,
+ ?RT_BER:encode_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], BytesSoFar, LenSoFar).
+
+
+'dec_NewACSEUserInformationForCSTA'(Bytes, OptOrMand) ->
+ 'dec_NewACSEUserInformationForCSTA'(Bytes, OptOrMand, []).
+
+'dec_NewACSEUserInformationForCSTA'(Bytes, OptOrMand, TagIn) ->
+ %%-------------------------------------------------
+ %% decode tag and length
+ %%-------------------------------------------------
+ {{_,Len},Bytes1,Rb1} = ?RT_BER:check_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], Bytes, OptOrMand),
+{Bytes2,RemBytes} = ?RT_BER:split_list(Bytes1,Len),
+
+%%-------------------------------------------------
+%% attribute number 1 with type BIT STRING
+%%-------------------------------------------------
+ {Term1,Bytes3,Rb2} = ?RT_BER:decode_bit_string(Bytes2,[],[{versionOne,0},{versionTwo,1},{versionThree,2},{versionFour,3},{versionFive,4},{versionSix,5},{versionSeven,6},{versionEight,7},{versionNine,8},{versionTen,9},{versionEleven,10},{versionTwelve,11},{versionThirteen,12},{versionFourteen,13},{versionFifteen,14},{versionSixteen,15},{versionSeventeen,16},{versionEighteen,17},{versionNineteen,18},{versionTwenty,19},{versionTwentyone,20},{versionTwentytwo,21},{versionTwentythree,22},{versionTwentyfour,23}],[], no_length, mandatory),
+
+%%-------------------------------------------------
+%% attribute number 2 External CSTA-application-context-information-csta3:CSTAFunctionality OPTIONAL
+%%-------------------------------------------------
+ {Term2,Bytes4,Rb3} = case Bytes3 of
+<<2:2,_:1,0:5,_/binary>> ->
+'dec_CSTAFunctionality'(Bytes3, opt_or_default, [{tag,128,0,'IMPLICIT',32}]);
+_ ->
+{ asn1_NOVALUE, Bytes3, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 3 External CSTA-application-context-information-csta3:CSTAFunctionality OPTIONAL
+%%-------------------------------------------------
+ {Term3,Bytes5,Rb4} = case Bytes4 of
+<<2:2,_:1,1:5,_/binary>> ->
+'dec_CSTAFunctionality'(Bytes4, opt_or_default, [{tag,128,1,'IMPLICIT',32}]);
+_ ->
+{ asn1_NOVALUE, Bytes4, 0 }
+end,
+
+%%-------------------------------------------------
+%% attribute number 4 External CSTA-application-context-information-csta3:CSTAPrivateDataVersionList OPTIONAL
+%%-------------------------------------------------
+ {Term4,Bytes6,Rb5} = case Bytes5 of
+<<2:2,_:1,2:5,_/binary>> ->
+'dec_CSTAPrivateDataVersionList'(Bytes5, opt_or_default, [{tag,128,2,'IMPLICIT',32}]);
+_ ->
+{ asn1_NOVALUE, Bytes5, 0 }
+end,
+
+ {Bytes7,Rb6} = ?RT_BER:restbytes2(RemBytes, Bytes6,noext),
+ {{'NewACSEUserInformationForCSTA', Term1, Term2, Term3, Term4}, Bytes7, Rb1+Rb2+Rb3+Rb4+Rb5+Rb6}.
+
+
+%%================================
+%% CSTAPrivateDataVersionList
+%%================================
+
+'enc_CSTAPrivateDataVersionList'({'CSTAPrivateDataVersionList',Val}, TagIn) ->
+ 'enc_CSTAPrivateDataVersionList'(Val, TagIn);
+
+'enc_CSTAPrivateDataVersionList'(Val, TagIn) ->
+ {EncBytes,EncLen} = 'enc_CSTAPrivateDataVersionList_components'(Val,[],0),
+ ?RT_BER:encode_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], EncBytes, EncLen).
+
+'enc_CSTAPrivateDataVersionList_components'([], AccBytes, AccLen) ->
+ {lists:reverse(AccBytes),AccLen};
+
+'enc_CSTAPrivateDataVersionList_components'([H|T],AccBytes, AccLen) ->
+ {EncBytes,EncLen} = ?RT_BER:encode_integer([], H, []),
+ 'enc_CSTAPrivateDataVersionList_components'(T,[EncBytes|AccBytes], AccLen + EncLen).
+
+
+
+'dec_CSTAPrivateDataVersionList'(Bytes, OptOrMand) ->
+ 'dec_CSTAPrivateDataVersionList'(Bytes, OptOrMand, []).
+
+'dec_CSTAPrivateDataVersionList'(Bytes, OptOrMand, TagIn) ->
+ %%-------------------------------------------------
+ %% decode tag and length
+ %%-------------------------------------------------
+ {{_,Len},Bytes1,Rb1} = ?RT_BER:check_tags(TagIn ++ [{tag,0,16,'IMPLICIT',32}], Bytes, OptOrMand),
+ ?RT_BER:decode_components(Rb1, Len, Bytes1, fun(FBytes,_,_)->
+?RT_BER:decode_integer(FBytes,[],[], mandatory)
+end, [], []).
+
+
+
+
+%%================================
+%% CSTAVersion
+%%================================
+
+'enc_CSTAVersion'({'CSTAVersion',Val}, TagIn) ->
+ 'enc_CSTAVersion'(Val, TagIn);
+
+'enc_CSTAVersion'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{versionOne,0},{versionTwo,1},{versionThree,2},{versionFour,3},{versionFive,4},{versionSix,5},{versionSeven,6},{versionEight,7},{versionNine,8},{versionTen,9},{versionEleven,10},{versionTwelve,11},{versionThirteen,12},{versionFourteen,13},{versionFifteen,14},{versionSixteen,15},{versionSeventeen,16},{versionEighteen,17},{versionNineteen,18},{versionTwenty,19},{versionTwentyone,20},{versionTwentytwo,21},{versionTwentythree,22},{versionTwentyfour,23}], TagIn ++ []).
+
+
+'dec_CSTAVersion'(Bytes, OptOrMand) ->
+ 'dec_CSTAVersion'(Bytes, OptOrMand, []).
+
+'dec_CSTAVersion'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{versionOne,0},{versionTwo,1},{versionThree,2},{versionFour,3},{versionFive,4},{versionSix,5},{versionSeven,6},{versionEight,7},{versionNine,8},{versionTen,9},{versionEleven,10},{versionTwelve,11},{versionThirteen,12},{versionFourteen,13},{versionFifteen,14},{versionSixteen,15},{versionSeventeen,16},{versionEighteen,17},{versionNineteen,18},{versionTwenty,19},{versionTwentyone,20},{versionTwentytwo,21},{versionTwentythree,22},{versionTwentyfour,23}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% CallControlServices
+%%================================
+
+'enc_CallControlServices'({'CallControlServices',Val}, TagIn) ->
+ 'enc_CallControlServices'(Val, TagIn);
+
+'enc_CallControlServices'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{acceptCall,0},{alternateCall,1},{answerCall,2},{callBack,3},{callBackMessage,4},{campOnCall,5},{clearCall,6},{clearConnection,7},{conferenceCall,8},{consultationCall,9},{deflectCall,10},{dialDigits,11},{directedPickupCall,12},{groupPickupCall,13},{holdCall,14},{intrudeCall,15},{joinCall,16},{makeCall,17},{makePredictiveCall,18},{parkCall,19},{reconnectCall,20},{retrieveCall,21},{singleStepConference,22},{singleStepTransfer,23},{transferCall,24},{makeConnection,25},{sendMessage,26}], TagIn ++ []).
+
+
+'dec_CallControlServices'(Bytes, OptOrMand) ->
+ 'dec_CallControlServices'(Bytes, OptOrMand, []).
+
+'dec_CallControlServices'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{acceptCall,0},{alternateCall,1},{answerCall,2},{callBack,3},{callBackMessage,4},{campOnCall,5},{clearCall,6},{clearConnection,7},{conferenceCall,8},{consultationCall,9},{deflectCall,10},{dialDigits,11},{directedPickupCall,12},{groupPickupCall,13},{holdCall,14},{intrudeCall,15},{joinCall,16},{makeCall,17},{makePredictiveCall,18},{parkCall,19},{reconnectCall,20},{retrieveCall,21},{singleStepConference,22},{singleStepTransfer,23},{transferCall,24},{makeConnection,25},{sendMessage,26}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% CallAssociatedServices
+%%================================
+
+'enc_CallAssociatedServices'({'CallAssociatedServices',Val}, TagIn) ->
+ 'enc_CallAssociatedServices'(Val, TagIn);
+
+'enc_CallAssociatedServices'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{associateData,0},{cancelTelephonyTones,1},{generateDigits,2},{generateTelephonyTones,3},{sendUserInformation,4},{changeConnectionInformation,5}], TagIn ++ []).
+
+
+'dec_CallAssociatedServices'(Bytes, OptOrMand) ->
+ 'dec_CallAssociatedServices'(Bytes, OptOrMand, []).
+
+'dec_CallAssociatedServices'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{associateData,0},{cancelTelephonyTones,1},{generateDigits,2},{generateTelephonyTones,3},{sendUserInformation,4},{changeConnectionInformation,5}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% MediaAttachmentServices
+%%================================
+
+'enc_MediaAttachmentServices'({'MediaAttachmentServices',Val}, TagIn) ->
+ 'enc_MediaAttachmentServices'(Val, TagIn);
+
+'enc_MediaAttachmentServices'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{attachMediaService,0},{detachMediaService,1}], TagIn ++ []).
+
+
+'dec_MediaAttachmentServices'(Bytes, OptOrMand) ->
+ 'dec_MediaAttachmentServices'(Bytes, OptOrMand, []).
+
+'dec_MediaAttachmentServices'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{attachMediaService,0},{detachMediaService,1}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% RouteingServices
+%%================================
+
+'enc_RouteingServices'({'RouteingServices',Val}, TagIn) ->
+ 'enc_RouteingServices'(Val, TagIn);
+
+'enc_RouteingServices'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{routeRegister,0},{routeRegisterCancel,1},{routeRegisterAbort,2},{reroute,3},{routeEnd,4},{routeReject,5},{routeRequest,6},{routeSelect,7},{routeUsed,8}], TagIn ++ []).
+
+
+'dec_RouteingServices'(Bytes, OptOrMand) ->
+ 'dec_RouteingServices'(Bytes, OptOrMand, []).
+
+'dec_RouteingServices'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{routeRegister,0},{routeRegisterCancel,1},{routeRegisterAbort,2},{reroute,3},{routeEnd,4},{routeReject,5},{routeRequest,6},{routeSelect,7},{routeUsed,8}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% VoiceUnitServices
+%%================================
+
+'enc_VoiceUnitServices'({'VoiceUnitServices',Val}, TagIn) ->
+ 'enc_VoiceUnitServices'(Val, TagIn);
+
+'enc_VoiceUnitServices'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{concatenateMessage,0},{deleteMessage,1},{playMessage,2},{queryVoiceAttribute,3},{recordMessage,4},{reposition,5},{resume,6},{review,7},{setVoiceAttribute,8},{stop,9},{suspend,10},{synthesizeMessage,11},{activate,12},{clear,13},{deactivate,14}], TagIn ++ []).
+
+
+'dec_VoiceUnitServices'(Bytes, OptOrMand) ->
+ 'dec_VoiceUnitServices'(Bytes, OptOrMand, []).
+
+'dec_VoiceUnitServices'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{concatenateMessage,0},{deleteMessage,1},{playMessage,2},{queryVoiceAttribute,3},{recordMessage,4},{reposition,5},{resume,6},{review,7},{setVoiceAttribute,8},{stop,9},{suspend,10},{synthesizeMessage,11},{activate,12},{clear,13},{deactivate,14}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% LocationServices
+%%================================
+
+'enc_LocationServices'({'LocationServices',Val}, TagIn) ->
+ 'enc_LocationServices'(Val, TagIn);
+
+'enc_LocationServices'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{getLocationInformation,0},{setLocationInformation,1},{locationTrackkingSessionResumed,2},{locationTrackkingSessionSuspended,3},{resumeLocationTrackingSession,4},{locationInformationReport,5},{startLocationTrackingSession,6},{stopLocationTrackingSession,7},{suspendLocationTrackingCapabilities,8},{locationSessionInfo,9}], TagIn ++ []).
+
+
+'dec_LocationServices'(Bytes, OptOrMand) ->
+ 'dec_LocationServices'(Bytes, OptOrMand, []).
+
+'dec_LocationServices'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{getLocationInformation,0},{setLocationInformation,1},{locationTrackkingSessionResumed,2},{locationTrackkingSessionSuspended,3},{resumeLocationTrackingSession,4},{locationInformationReport,5},{startLocationTrackingSession,6},{stopLocationTrackingSession,7},{suspendLocationTrackingCapabilities,8},{locationSessionInfo,9}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% CallControlEvents
+%%================================
+
+'enc_CallControlEvents'({'CallControlEvents',Val}, TagIn) ->
+ 'enc_CallControlEvents'(Val, TagIn);
+
+'enc_CallControlEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{callCleared,0},{conferenced,1},{connectionCleared,2},{delivered,3},{diverted,4},{established,5},{failed,6},{held,7},{networkReached,8},{originated,9},{queued,10},{retrieved,11},{serviceInitiated,12},{transferred,13},{digitsDialed,14},{bridged,15},{networkCapabilitiesChanged,16},{offered,17}], TagIn ++ []).
+
+
+'dec_CallControlEvents'(Bytes, OptOrMand) ->
+ 'dec_CallControlEvents'(Bytes, OptOrMand, []).
+
+'dec_CallControlEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{callCleared,0},{conferenced,1},{connectionCleared,2},{delivered,3},{diverted,4},{established,5},{failed,6},{held,7},{networkReached,8},{originated,9},{queued,10},{retrieved,11},{serviceInitiated,12},{transferred,13},{digitsDialed,14},{bridged,15},{networkCapabilitiesChanged,16},{offered,17}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% CallAssociatedEvents
+%%================================
+
+'enc_CallAssociatedEvents'({'CallAssociatedEvents',Val}, TagIn) ->
+ 'enc_CallAssociatedEvents'(Val, TagIn);
+
+'enc_CallAssociatedEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{callInformation,0},{charging,1},{dTMFDigitsDetected,2},{telephonyTonesDetected,3},{serviceCompletionFailure,4}], TagIn ++ []).
+
+
+'dec_CallAssociatedEvents'(Bytes, OptOrMand) ->
+ 'dec_CallAssociatedEvents'(Bytes, OptOrMand, []).
+
+'dec_CallAssociatedEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{callInformation,0},{charging,1},{dTMFDigitsDetected,2},{telephonyTonesDetected,3},{serviceCompletionFailure,4}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% MediaAttachmentEvents
+%%================================
+
+'enc_MediaAttachmentEvents'({'MediaAttachmentEvents',Val}, TagIn) ->
+ 'enc_MediaAttachmentEvents'(Val, TagIn);
+
+'enc_MediaAttachmentEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{mediaAttached,0},{mediaDetached,1}], TagIn ++ []).
+
+
+'dec_MediaAttachmentEvents'(Bytes, OptOrMand) ->
+ 'dec_MediaAttachmentEvents'(Bytes, OptOrMand, []).
+
+'dec_MediaAttachmentEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{mediaAttached,0},{mediaDetached,1}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% PhysicalDeviceFeatureEvents
+%%================================
+
+'enc_PhysicalDeviceFeatureEvents'({'PhysicalDeviceFeatureEvents',Val}, TagIn) ->
+ 'enc_PhysicalDeviceFeatureEvents'(Val, TagIn);
+
+'enc_PhysicalDeviceFeatureEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{buttonInformation,0},{buttonPress,1},{displayUpdated,2},{hookswitch,3},{lampMode,4},{messageWaiting,5},{microphoneGain,6},{microphoneMute,7},{ringerStatus,8},{speakerMute,9},{speakerVolume,10}], TagIn ++ []).
+
+
+'dec_PhysicalDeviceFeatureEvents'(Bytes, OptOrMand) ->
+ 'dec_PhysicalDeviceFeatureEvents'(Bytes, OptOrMand, []).
+
+'dec_PhysicalDeviceFeatureEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{buttonInformation,0},{buttonPress,1},{displayUpdated,2},{hookswitch,3},{lampMode,4},{messageWaiting,5},{microphoneGain,6},{microphoneMute,7},{ringerStatus,8},{speakerMute,9},{speakerVolume,10}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% LogicalDeviceFeatureEvents
+%%================================
+
+'enc_LogicalDeviceFeatureEvents'({'LogicalDeviceFeatureEvents',Val}, TagIn) ->
+ 'enc_LogicalDeviceFeatureEvents'(Val, TagIn);
+
+'enc_LogicalDeviceFeatureEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{agentBusy,0},{agentLoggedOn,1},{agentLoggedOff,2},{agentNotReady,3},{agentReady,4},{agentWorkingAfterCall,5},{autoAnswer,6},{autoWorkMode,7},{callBack,8},{callBackMessage,9},{callerIDStatus,10},{doNotDisturb,11},{forwarding,12},{routeingMode,13},{presenceState,14}], TagIn ++ []).
+
+
+'dec_LogicalDeviceFeatureEvents'(Bytes, OptOrMand) ->
+ 'dec_LogicalDeviceFeatureEvents'(Bytes, OptOrMand, []).
+
+'dec_LogicalDeviceFeatureEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{agentBusy,0},{agentLoggedOn,1},{agentLoggedOff,2},{agentNotReady,3},{agentReady,4},{agentWorkingAfterCall,5},{autoAnswer,6},{autoWorkMode,7},{callBack,8},{callBackMessage,9},{callerIDStatus,10},{doNotDisturb,11},{forwarding,12},{routeingMode,13},{presenceState,14}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% DeviceMaintenanceEvents
+%%================================
+
+'enc_DeviceMaintenanceEvents'({'DeviceMaintenanceEvents',Val}, TagIn) ->
+ 'enc_DeviceMaintenanceEvents'(Val, TagIn);
+
+'enc_DeviceMaintenanceEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{backInService,0},{outOfService,1},{deviceCapabilityChanged,2},{partiallyInService,3}], TagIn ++ []).
+
+
+'dec_DeviceMaintenanceEvents'(Bytes, OptOrMand) ->
+ 'dec_DeviceMaintenanceEvents'(Bytes, OptOrMand, []).
+
+'dec_DeviceMaintenanceEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{backInService,0},{outOfService,1},{deviceCapabilityChanged,2},{partiallyInService,3}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% VoiceUnitEvents
+%%================================
+
+'enc_VoiceUnitEvents'({'VoiceUnitEvents',Val}, TagIn) ->
+ 'enc_VoiceUnitEvents'(Val, TagIn);
+
+'enc_VoiceUnitEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{stop,0},{play,1},{suspendPlay,2},{record,3},{suspendRecord,4},{review,5},{voiceAttributesChange,6},{bookmarkReached,7},{completed,8},{dtmfDetected,9},{emptied,10},{interruptionDetected,11},{notRecognized,12},{recognized,13},{started,14},{silenceTimeoutExpired,15},{speechDetected,16},{voiceErrorOccured,17}], TagIn ++ []).
+
+
+'dec_VoiceUnitEvents'(Bytes, OptOrMand) ->
+ 'dec_VoiceUnitEvents'(Bytes, OptOrMand, []).
+
+'dec_VoiceUnitEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{stop,0},{play,1},{suspendPlay,2},{record,3},{suspendRecord,4},{review,5},{voiceAttributesChange,6},{bookmarkReached,7},{completed,8},{dtmfDetected,9},{emptied,10},{interruptionDetected,11},{notRecognized,12},{recognized,13},{started,14},{silenceTimeoutExpired,15},{speechDetected,16},{voiceErrorOccured,17}],TagIn++[], no_length, OptOrMand).
+
+
+
+%%================================
+%% VendorSpecEvents
+%%================================
+
+'enc_VendorSpecEvents'({'VendorSpecEvents',Val}, TagIn) ->
+ 'enc_VendorSpecEvents'(Val, TagIn);
+
+'enc_VendorSpecEvents'(Val, TagIn) ->
+?RT_BER:encode_bit_string([], Val, [{privateEvent,0}], TagIn ++ []).
+
+
+'dec_VendorSpecEvents'(Bytes, OptOrMand) ->
+ 'dec_VendorSpecEvents'(Bytes, OptOrMand, []).
+
+'dec_VendorSpecEvents'(Bytes, OptOrMand, TagIn) ->
+?RT_BER:decode_bit_string(Bytes,[],[{privateEvent,0}],TagIn++[], no_length, OptOrMand).
+