⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 megaco_session_externalizer.erl

📁 一个Megaco实现源代码
💻 ERL
📖 第 1 页 / 共 4 页
字号:
    #'MegacoMessage_OptSecondRequestedActions'{label = false};tr_opt_SecondRequestedActions(Val, State) ->    #'MegacoMessage_OptSecondRequestedActions'{label = true,                                               value = tr_SecondRequestedActions(Val, State)}.tr_SecondRequestedActions(#'SecondRequestedActions'{keepActive        = Keep,                                                    eventDM           = DM,                                                    signalsDescriptor = SigDesc},                          State) ->    #'MegacoMessage_SecondRequestedActions'{keepActive        = tr_opt_bool(Keep, State),                                            eventDM           = tr_opt_EventDM(DM, State),                                            signalsDescriptor = tr_opt_SignalsDescriptor(SigDesc, State)}.tr_EventBufferDescriptor(EventSpecs, State) ->    [tr_EventSpec(ES, State) || ES <- EventSpecs].tr_EventSpec(#'EventSpec'{eventName    = Name,                          streamID     = Id,                          eventParList = Parms},             State) ->    #'MegacoMessage_EventSpec'{name         = tr_EventName(Name, State),                               streamID     = tr_opt_StreamID(Id, State),                               eventParList = [tr_EventParameter(P, Name, State) || P <- Parms]}.tr_opt_SignalsDescriptor(asn1_NOVALUE, State) ->    #'MegacoMessage_OptSignalsDescriptor'{label = false};tr_opt_SignalsDescriptor(SigDesc, State) ->    #'MegacoMessage_OptSignalsDescriptor'{label = true,                                          value = tr_SignalsDescriptor(SigDesc, State)}.tr_SignalsDescriptor(SigDesc, State) ->    [tr_SignalRequest(SigReq, State) || SigReq <- SigDesc].tr_SignalRequest({Tag, Val}, State) ->    case Tag of        signal ->            #'MegacoMessage_SignalRequestUnion'{label = 'SignalRequestChoice_signal',                                                value = tr_Signal(Val, State)};        seqSigList ->            #'MegacoMessage_SignalRequestUnion'{label = 'SignalRequestChoice_seqSigList',                                                value = tr_SeqSigList(Val, State)}    end.tr_SeqSigList(#'SeqSigList'{id         = Id,                            signalList = SigList},              State) when list(SigList) ->    #'MegacoMessage_SeqSigList'{id         = Id,                                signalList = [tr_Signal(Sig, State) || Sig <- SigList]}.tr_Signal(#'Signal'{signalName       = Name,                    streamID         = Id,                    sigType          = Type,                    duration         = Dur,                    notifyCompletion = Compl,                    keepActive       = Keep,                    sigParList       = Parms},          State) ->    #'MegacoMessage_Signal'{name             = tr_SignalName(Name, State),                            streamID         = tr_opt_StreamID(Id, State),                            sigType          = tr_opt_SignalType(Type, State),                            duration         = tr_opt_unsigned_short(Dur, State),                            notifyCompletion = tr_opt_NotifyCompletion(Compl, State),                            keepActive       = tr_opt_bool(Keep, State),                            sigParList       = [tr_SigParameter(P, Name, State) || P <- Parms]}.tr_opt_NotifyCompletion(asn1_NOVALUE, State) ->    #'MegacoMessage_OptNotifyCompletion'{label = false};tr_opt_NotifyCompletion(Val, State) ->    #'MegacoMessage_OptNotifyCompletion'{label = true,                                         value = tr_NotifyCompletion(Val, State)}.tr_NotifyCompletion(Items, State) ->    [tr_notifyCompletionItem(I, State) || I <- Items].tr_notifyCompletionItem(Item, State) ->    case Item of        onTimeOut                   -> 'NotifyCompletionBits_onTimeOut';        onInterruptByEvent          -> 'NotifyCompletionBits_onInterruptByEvent';        onInterruptByNewSignalDescr -> 'NotifyCompletionBits_onInterruptByNewSignalDescr';        otherReason                 -> 'NotifyCompletionBits_otherReason'    end.tr_opt_SignalType(Type, State) ->    #'MegacoMessage_OptSignalType'{label = false};tr_opt_SignalType(Val, State) ->    #'MegacoMessage_OptSignalType'{label = true,                                   value = tr_SignalType(Val, State)}.tr_SignalType(Val, State) ->    case Val of        brief   -> 'SignalType_brief';        onOff   -> 'SignalType_onOff';        timeOut -> 'SignalType_timeOut'    end.tr_SignalName(Name, State) ->    tr_PkgdName(Name, State).tr_SigParameter(#'SigParameter'{sigParameterName = ParName,                                value            = Value,                                extraInfo        = Extra},                SigName,                State) ->    #'MegacoMessage_SigParameter'{sigParameterName  = tr_Name(SigName, State),                                  sigParameterValue = tr_Value(Value, State),                                  extraInfo         = tr_opt_extraInfo(Extra, State)}.tr_opt_RequestID(asn1_NOVALUE, State) ->    #'MegacoMessage_OptRequestID'{label = false};tr_opt_RequestID(Val, State) ->    #'MegacoMessage_OptRequestID'{label = true,                                  value = tr_RequestID(Val, State)}.tr_RequestID(Id, State) ->    Id.tr_ModemDescriptor(#'ModemDescriptor'{mtl = Types,                                      mpl = Props},                   State) ->    #'MegacoMessage_ModemDescriptor'{mtl = [tr_ModemType(T, State) || T <- Types],                                     mpl = [tr_PropertyParm(P, State) || P <- Props]}.tr_ModemType(Type, State) ->    case Type of        v18       -> 'ModemType_v18';        v22       -> 'ModemType_v22';        v22bis    -> 'ModemType_v22bis';        v32       -> 'ModemType_v32';        v32bis    -> 'ModemType_v32bis';        v34       -> 'ModemType_v34';        v90       -> 'ModemType_v90';        v91       -> 'ModemType_v91';        synchISDN -> 'ModemType_synchISDN'    end.tr_DigitMapDescriptor(#'DigitMapDescriptor'{digitMapName  = Name,                                            digitMapValue = Value},                      State) ->    #'MegacoMessage_DigitMapDescriptor'{digitMapName  = tr_opt_DigitMapName(Name, State),                                        digitMapValue = tr_opt_DigitMapValue(Value, State)}.tr_opt_DigitMapName(asn1_NOVALUE, State) ->    #'MegacoMessage_OptDigitMapName'{label = false};tr_opt_DigitMapName(Val, State) ->    #'MegacoMessage_OptDigitMapName'{label = true,                                     value = tr_DigitMapName(Val, State)}.tr_DigitMapName(Name, State) ->    tr_Name(Name, State).tr_opt_DigitMapValue(asn1_NOVALUE, State) ->    #'MegacoMessage_OptDigitMapValue'{label = false};tr_opt_DigitMapValue(Value, State) ->    #'MegacoMessage_OptDigitMapValue'{label = true,                                      value = tr_DigitMapValue(Value, State)}.tr_DigitMapValue(#'DigitMapValue'{digitMapBody = Body,                                  startTimer   = Start,                                  shortTimer   = Short,                                  longTimer    = Long},                 State) ->    #'MegacoMessage_DigitMapValue'{startTimer   = tr_opt_unsigned_short(Start, State),                                   shortTimer   = tr_opt_unsigned_short(Short, State),                                   longTimer    = tr_opt_unsigned_short(Long, State),                                   digitMapBody = Body}.tr_ServiceChangeParm(#'ServiceChangeParm'{serviceChangeMethod  = Method,                                          serviceChangeAddress = Addr,                                          serviceChangeVersion = Version,                                          serviceChangeProfile = Profile,                                          serviceChangeReason  = Reason,                                          serviceChangeDelay   = Delay,                                          serviceChangeMgcId   = MgcId,                                          timeStamp            = Time},                     State) ->    #'MegacoMessage_ServiceChangeParm'{method    = tr_ServiceChangeMethod(Method, State),                                       address   = tr_opt_ServiceChangeAddress(Addr, State),                                       version   = tr_opt_serviceChangeVersion(Version, State),                                       profile   = tr_opt_ServiceChangeProfile(Profile, State),                                       reason    = tr_serviceChangeReason(Reason, State),                                       delay     = tr_opt_unsigned_long(Delay, State),                                       mgcId     = tr_opt_serviceChangeMgcId(MgcId, State),                                       timeStamp = tr_opt_TimeNotation(Time, State)}.tr_ServiceChangeMethod(Method, State) ->    case Method of        failover      -> 'ServiceChangeMethod_failover';        forced        -> 'ServiceChangeMethod_forced';        graceful      -> 'ServiceChangeMethod_graceful';        restart       -> 'ServiceChangeMethod_restart';        disconnected  -> 'ServiceChangeMethod_disconnected';        handOff       -> 'ServiceChangeMethod_handOff'    end. %% BUGBUG: extensiontr_opt_ServiceChangeAddress(asn1_NOVALUE, State) ->    #'MegacoMessage_OptServiceChangeAddressUnion'{label = false};tr_opt_ServiceChangeAddress(Val, State) ->    #'MegacoMessage_OptServiceChangeAddressUnion'{label = true,                                                  value = tr_ServiceChangeAddress(Val, State)}.tr_ServiceChangeAddress({Tag, Val}, State) ->    case Tag of        portNumber ->            #'MegacoMessage_ServiceChangeAddressUnion'{label = 'OptServiceChangeAddressChoice_portNumber',                                                       value = tr_portNumber(Val, State)};        ip4Address ->            #'MegacoMessage_ServiceChangeAddressUnion'{label = 'OptServiceChangeAddressChoice_ip4Address',                                                       value = tr_IP4Address(Val, State)};        ip6Address ->            #'MegacoMessage_ServiceChangeAddressUnion'{label = 'OptServiceChangeAddressChoice_ip6Address',                                                       value = tr_IP6Address(Val, State)};        domainName ->            #'MegacoMessage_ServiceChangeAddressUnion'{label = 'OptServiceChangeAddressChoice_domainName',                                                       value = tr_DomainName(Val, State)};        deviceName ->            #'MegacoMessage_ServiceChangeAddressUnion'{label = 'OptServiceChangeAddressChoice_deviceName',                                                       value = tr_PathName(Val, State)};        mtpAddress ->            #'MegacoMessage_ServiceChangeAddressUnion'{label = 'OptServiceChangeAddressChoice_mtpAddress',                                                       value = tr_mtpAddress(Val, State)}    end.tr_opt_serviceChangeVersion(Version, State) ->    tr_opt_unsigned_short(Version, State).tr_opt_ServiceChangeProfile(asn1_NOVALUE, State) ->    #'MegacoMessage_OptServiceChangeProfile'{label = false};tr_opt_ServiceChangeProfile(Profile, State) ->     #'MegacoMessage_OptServiceChangeProfile'{label = true,                                              value = tr_ServiceChangeProfile(Profile, State)}.tr_ServiceChangeProfile(#'ServiceChangeProfile'{profileName = Name,                                                version     = Version},                        State) ->    #'MegacoMessage_ServiceChangeProfile'{profileName = tr_Name(Name, State),                                          version     = tr_version(Version, State)}.tr_serviceChangeReason(Reason, State) ->    tr_Value(Reason, State).tr_opt_serviceChangeMgcId(asn1_NOVALUE, State) ->    #'MegacoMessage_OptMIdUnion'{label = false};tr_opt_serviceChangeMgcId(MgcId, State) ->    #'MegacoMessage_OptMIdUnion'{label = true,                                 value = tr_MId(MgcId, State)}.tr_opt_unsigned_short(asn1_NOVALUE, State) ->    #'MegacoMessage_OptUnsignedShort'{label = false};tr_opt_unsigned_short(Val, State) ->    #'MegacoMessage_OptUnsignedShort'{label = true,                                      value = Val}.tr_opt_unsigned_long(asn1_NOVALUE, State) ->    #'MegacoMessage_OptUnsignedLong'{label = false};tr_opt_unsigned_long(Val, State) ->    #'MegacoMessage_OptUnsignedLong'{label = true,                                      value = Val}.tr_portNumber(Port, State) ->    Port.tr_ServiceChangeResParm(#'ServiceChangeResParm'{serviceChangeMgcId   = MgcId,                                                serviceChangeAddress = Addr,                                                serviceChangeVersion = Version,                                                serviceChangeProfile = Profile,                                                timeStamp            = Time},                        State) ->    #'MegacoMessage_ServiceChangeResParm'{mgcId     = tr_opt_serviceChangeMgcId(MgcId, State),                                          address   = tr_opt_ServiceChangeAddress(Addr, State),                                          version   = tr_opt_serviceChangeVersion(Version, State),                                          profile   = tr_opt_ServiceChangeProfile(Profile, State),                                          timeStamp = tr_opt_TimeNotation(Time, State)}.tr_PackagesDescriptor(Items, State) ->    [tr_PackagesItem(I, State) || I <- Items].tr_PackagesItem(#'PackagesItem'{packageName    = Name,                                packageVersion = Version},                State) ->    #'MegacoMessage_PackagesItem'{packageName    = tr_Name(Name, State),                                  packageVersion = Version}.tr_StatisticsDescriptor(Parms, State) ->    [tr_StatisticsParameter(P, State) || P <- Parms].tr_StatisticsParameter(#'StatisticsParameter'{statName  = Name,                                              statValue = Value},                       State) ->    #'MegacoMessage_StatisticsParameter'{statName  = tr_PkgdName(Name, State),                                         statValue = tr_opt_Value(Value, State)}.tr_opt_TimeNotation(asn1_NOVALUE, State) ->    #'MegacoMessage_OptTimeNotation'{label = false};tr_opt_TimeNotation(Val, State) ->    #'MegacoMessage_OptTimeNotation'{label = true,                                     value = tr_TimeNotation(Val, State)}.tr_TimeNotation(#'TimeNotation'{date = Date, time = Time}, State) ->    #'MegacoMessage_TimeNotation'{date = Date, time = Time}.tr_opt_Value(asn1_NOVALUE, State) ->    #'MegacoMessage_OptValue'{label = false};tr_opt_Value(Value, State) ->    #'MegacoMessage_OptValue'{label = true,                              value = tr_Value(Value, State)}.tr_Value(Strings, State) ->    Strings.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -