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

📄 megaco_session_externalizer.erl

📁 一个Megaco实现源代码
💻 ERL
📖 第 1 页 / 共 4 页
字号:
                                  commandRequests     = CmdReqList},                 State) ->    #'MegacoMessage_ActionRequest'{id                  = tr_ContextID(CtxId, State),                                   contextRequest      = tr_opt_ContextRequest(CtxReq, State),                                   contextAttrAuditReq = tr_opt_ContextAttrAuditRequest(CtxAuditReq, State),                                   commandRequests     = [tr_CommandRequest(CmdReq, State) || CmdReq <- CmdReqList]}.tr_ActionReply(#'ActionReply'{contextId       = CtxId,                              errorDescriptor = ErrDesc,                              contextReply    = CtxRep,                              commandReply    = CmdRepList},               State) ->    CmdRepList2 = [tr_CommandReply(CmdRep, State) || CmdRep <- CmdRepList],    #'MegacoMessage_ActionReply'{id              = tr_ContextID(CtxId, State),                                 errorDescriptor = tr_opt_ErrorDescriptor(ErrDesc, State),                                 contextReply    = tr_opt_ContextRequest(CtxRep, State),                                 commandReply    = CmdRepList2}.tr_opt_ContextRequest(asn1_NOVALUE, State) ->    #'MegacoMessage_OptContextRequest'{label = false};tr_opt_ContextRequest(Val, State) ->    #'MegacoMessage_OptContextRequest'{label = true,                                       value = tr_ContextRequest(Val, State)}.tr_ContextRequest(#'ContextRequest'{priority    = Prio,                                    emergency   = Em,                                    topologyReq = TopReqList},                  State) ->    #'MegacoMessage_ContextRequest'{priority    = tr_opt_unsigned_short(Prio, State),                                    emergency   = tr_opt_bool(Em, State),                                    topologyReq = tr_opt_TopologyRequestList(TopReqList, State)}.tr_opt_TopologyRequestList(asn1_NOVALUE, State) ->    #'MegacoMessage_OptTopologyRequestList'{label = false};tr_opt_TopologyRequestList(TopReqList, State) ->    #'MegacoMessage_OptTopologyRequestList'{label = true,                                            value = [tr_TopologyRequest(TopReq, State) || TopReq <- TopReqList]}.tr_opt_ContextAttrAuditRequest(asn1_NOVALUE, State) ->    #'MegacoMessage_OptContextAttrAuditRequest'{label = false};tr_opt_ContextAttrAuditRequest(Val, State) ->    #'MegacoMessage_OptContextAttrAuditRequest'{label = true,                                                value = tr_ContextAttrAuditRequest(Val, State)}.tr_ContextAttrAuditRequest(#'ContextAttrAuditRequest'{topology = Top,                                                      emergency = Em,                                                      priority = Prio},                           State) ->    #'MegacoMessage_ContextAttrAuditRequest'{topology  = tr_opt_null(Top, State),                                             emergency = tr_opt_null(Em, State),                                             priority  = tr_opt_null(Prio, State)}.tr_CommandRequest(#'CommandRequest'{command        = Cmd,                                    optional       = Opt,                                    wildcardReturn = Wild},                  State) ->    #'MegacoMessage_CommandRequest'{optional       = tr_opt_null(Opt, State),                                    wildcardReturn = tr_opt_null(Wild, State),                                    command        = tr_Command(Cmd, State)}.tr_Command({Tag, Val}, State) ->    case Tag of        addReq ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_addReq',                                          value = tr_AmmRequest(Val, State)};        moveReq ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_moveReq',                                          value = tr_AmmRequest(Val, State)};        modReq ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_modReq',                                          value = tr_AmmRequest(Val, State)};        subtractReq ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_subtractReq',                                          value = tr_SubtractRequest(Val, State)};        auditCapRequest ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_auditCapRequest',                                          value = tr_AuditRequest(Val, State)};        auditValueRequest ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_auditValueRequest',                                          value = tr_AuditRequest(Val, State)};        notifyReq ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_notifyReq',                                          value = tr_NotifyRequest(Val, State)};        serviceChangeReq ->            #'MegacoMessage_CommandUnion'{label = 'CommandChoice_serviceChangeReq',                                          value = tr_ServiceChangeRequest(Val, State)}    end.tr_CommandReply({Tag, Val}, State) ->    case Tag of        addReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_addReply',                                               value = tr_AmmsReply(Val, State)};        moveReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_moveReply',                                               value = tr_AmmsReply(Val, State)};        modReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_modReply',                                               value = tr_AmmsReply(Val, State)};        subtractReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_subtractReply',                                               value = tr_AmmsReply(Val, State)};        auditCapReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_auditCapReply',                                               value = tr_AuditReply(Val, State)};        auditValueReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_auditValueReply',                                               value = tr_AuditReply(Val, State)};        notifyReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_notifyReply',                                               value = tr_NotifyReply(Val, State)};        serviceChangeReply ->            #'MegacoMessage_CommandReplyUnion'{label = 'CommandReplyChoice_serviceChangeReply',                                               value = tr_ServiceChangeReply(Val, State)}    end.tr_TopologyRequest(#'TopologyRequest'{terminationFrom   = From,                                      terminationTo     = To,                                      topologyDirection = Dir},                   State) ->    #'MegacoMessage_TopologyRequest'{terminationFrom   = tr_TerminationID(From, State),                                     terminationTo     = tr_TerminationID(To, State),                                     dir               = tr_TopologyDirection(Dir, State)}.tr_TopologyDirection(Dir, State) ->    case Dir of        bothway -> 'TopologyDirection_bothway';        isolate -> 'TopologyDirection_isolate';        oneway ->  'TopologyDirection_oneway'    end.tr_AmmRequest(#'AmmRequest'{terminationID = IdList,                            descriptors   = DescList},              State) ->    #'MegacoMessage_AmmRequest'{termIdList = [tr_TerminationID(Id, State) ||                                                 Id <- IdList],                                descriptors = [tr_ammDescriptor(Desc, State) ||                                                  Desc <- DescList]}.tr_ammDescriptor({Tag, Desc}, State) ->    case Tag of        mediaDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_mediaDescriptor',                                                value = tr_MediaDescriptor(Desc, State)};        modemDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_modemDescriptor',                                                value = tr_ModemDescriptor(Desc, State)};        muxDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_muxDescriptor',                                                value = tr_MuxDescriptor(Desc, State)};        eventsDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_eventsDescriptor',                                                value = tr_EventsDescriptor(Desc, State)};        eventBufferDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_eventBufferDescriptor',                                                value = tr_EventBufferDescriptor(Desc, State)};        signalsDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_signalsDescriptor',                                                value = tr_SignalsDescriptor(Desc, State)};        digitMapDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_digitMapDescriptor',                                                value = tr_DigitMapDescriptor(Desc, State)};        auditDescriptor ->            #'MegacoMessage_AmmDescriptorUnion'{label = 'AmmDescriptorChoice_auditDescriptor',                                                value = tr_AuditDescriptor(Desc, State)}    end.tr_AmmsReply(#'AmmsReply'{terminationID    = IdList,                          terminationAudit = TermAudit},             State) ->    #'MegacoMessage_AmmsReply'{termIdList = [tr_TerminationID(Id, State) ||                                                Id <- IdList],                               terminationAudit = tr_opt_TerminationAudit(TermAudit, State)}.tr_SubtractRequest(#'SubtractRequest'{terminationID   = IdList,                                      auditDescriptor = Desc},                   State) ->    #'MegacoMessage_SubtractRequest'{termIdList  = [tr_TerminationID(Id, State) ||                                                       Id <- IdList],                                     auditDescriptor = tr_opt_AuditDescriptor(Desc, State)}.tr_AuditRequest(#'AuditRequest'{terminationID   = Id,                                auditDescriptor = Desc},                State) ->    #'MegacoMessage_AuditRequest'{termId = tr_TerminationID(Id, State),                                  audit = tr_AuditDescriptor(Desc, State)}.tr_AuditReply({Tag, Val}, State) ->    case Tag of        contextAuditResult ->            #'MegacoMessage_AuditReply'{label = 'AuditReplyChoice_ctxAuditResult',                                        value = [tr_TerminationID(Id, State) || Id <- Val]};        error ->            #'MegacoMessage_AuditReply'{label = 'AuditReplyChoice_error',                                        value = tr_ErrorDescriptor(Val, State)};        auditResult ->            #'MegacoMessage_AuditReply'{label = 'AuditReplyChoice_auditResult',                                        value = tr_AuditResult(Val, State)}    end.tr_AuditResult(#'AuditResult'{terminationID          = Id,                              terminationAuditResult = AuditRes},              State) ->    #'MegacoMessage_AuditResult'{termId                 = tr_TerminationID(Id, State),                   terminationAuditResult = tr_TerminationAudit(AuditRes, State)}.tr_opt_AuditDescriptor(asn1_NOVALUE, State) ->    #'MegacoMessage_OptAuditDescriptor'{label = false};tr_opt_AuditDescriptor(Desc, State) ->    #'MegacoMessage_OptAuditDescriptor'{label = true,                                        value = tr_AuditDescriptor(Desc, State)}.tr_AuditDescriptor(#'AuditDescriptor'{auditToken = Tokens}, State) ->    #'MegacoMessage_AuditDescriptor'{auditToken = tr_opt_AuditTokenBitsList(Tokens, State)}.tr_opt_AuditTokenBitsList(asn1_NOVALUE, State) ->    #'MegacoMessage_OptAuditTokenBitsList'{label = false};tr_opt_AuditTokenBitsList(Val, State) ->    #'MegacoMessage_OptAuditTokenBitsList'{label = true,                                           value = tr_AuditTokenBitsList(Val, State)}.tr_AuditTokenBitsList(Tokens, State) ->    [tr_auditItem(Token, State) || Token <- Tokens].tr_auditItem(Token, State) ->    case Token of        muxToken               -> 'AuditTokenBits_muxToken';        modemToken             -> 'AuditTokenBits_modemToken';        mediaToken             -> 'AuditTokenBits_mediaToken';        eventsToken            -> 'AuditTokenBits_eventsToken';        signalsToken           -> 'AuditTokenBits_signalsToken';        digitMapToken          -> 'AuditTokenBits_digitMapToken';        statsToken             -> 'AuditTokenBits_statsToken';        observedEventsToken    -> 'AuditTokenBits_observedEventsToken';        packagesToken          -> 'AuditTokenBits_packagesToken';        eventBufferToken       -> 'AuditTokenBits_eventBufferToken'    end.tr_opt_TerminationAudit(asn1_NOVALUE, State) ->    #'MegacoMessage_OptTerminationAudit'{label = false};tr_opt_TerminationAudit(Val, State) ->    #'MegacoMessage_OptTerminationAudit'{label = true, value = tr_TerminationAudit(Val, State)}.tr_TerminationAudit(ParmList, State) when list(ParmList) ->    [tr_AuditReturnParameter(Parm, State) || Parm <- ParmList].tr_AuditReturnParameter({Tag, Val}, State) ->    case Tag of        errorDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_errorDescriptor',                                                       value = tr_ErrorDescriptor(Val, State)};        mediaDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_mediaDescriptor',                                                       value = tr_MediaDescriptor(Val, State)};        modemDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_modemDescriptor',                                                       value = tr_ModemDescriptor(Val, State)};        muxDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_muxDescriptor',                                                       value = tr_MuxDescriptor(Val, State)};        eventsDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_eventsDescriptor',                                                       value = tr_EventsDescriptor(Val, State)};        eventBufferDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_eventBufferDescriptor',                                                       value = tr_EventBufferDescriptor(Val, State)};        signalsDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_signalsDescriptor',                                                       value = tr_SignalsDescriptor(Val, State)};        digitMapDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_digitMapDescriptor',                                                       value = tr_DigitMapDescriptor(Val, State)};        observedEventsDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_observedEventsDescriptor',                                                       value = tr_ObservedEventsDescriptor(Val, State)};        statisticsDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_statisticsDescriptor',                                                       value = tr_StatisticsDescriptor(Val, State)};        packagesDescriptor ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_packagesDescriptor',                                                       value = tr_PackagesDescriptor(Val, State)};        emptyDescriptors ->            #'MegacoMessage_AuditReturnParameterUnion'{label = 'AuditReturnParameterChoice_emptyDescriptors',                                                       value = tr_AuditDescriptor(Val, State)}    end.tr_NotifyRequest(#'NotifyRequest'{terminationID            = IdList,                                  observedEventsDescriptor = ObsDesc,                                  errorDescriptor          = ErrDesc},                 State) ->    #'MegacoMessage_NotifyRequest'{termIdList = [tr_TerminationID(Id, State) ||                                                    Id <- IdList],                                   observed = tr_ObservedEventsDescriptor(ObsDesc, State),                                   errorDescriptor = tr_opt_ErrorDescriptor(ErrDesc, State)}.tr_NotifyReply(#'NotifyReply'{terminationID   = IdList,                              errorDescriptor = ErrDesc},               State) ->    #'MegacoMessage_NotifyReply'{termIdList = [tr_TerminationID(Id, State) || Id <- IdList],                                 error = tr_opt_ErrorDescriptor(ErrDesc, State)}.tr_ObservedEventsDescriptor(#'ObservedEventsDescriptor'{requestId        = Id,                                                        observedEventLst = Events},                            State) when list (Events) ->    #'MegacoMessage_ObservedEventsDescriptor'{id        = tr_RequestID(Id, State),                                              observedEventLst = [tr_ObservedEvent(E, State) || E <- Events]}.tr_ObservedEvent(#'ObservedEvent'{eventName    = Name,                                  streamID     = Id,                                  eventParList = Parms,

⌨️ 快捷键说明

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