Internet Engineering Task Force (IETF)                     K. Cartwright
Request for Comments: 7878                                     V. Bhatia
Category: Standards Track                                            TNS
ISSN: 2070-1721                                                J-F. Mule
                                                              Apple Inc.
                                                            A. Mayrhofer
                                                             nic.at GmbH
                                                             August 2016
        
Internet Engineering Task Force (IETF)                     K. Cartwright
Request for Comments: 7878                                     V. Bhatia
Category: Standards Track                                            TNS
ISSN: 2070-1721                                                J-F. Mule
                                                              Apple Inc.
                                                            A. Mayrhofer
                                                             nic.at GmbH
                                                             August 2016
        

Session Peering Provisioning (SPP) Protocol over SOAP

基于SOAP的会话对等资源调配(SPP)协议

Abstract

摘要

The Session Peering Provisioning Framework (SPPF) specifies the data model and the overall structure to provision Session Establishment Data (SED) into Session Data Registries and SIP Service Provider data stores. To utilize this framework, one needs a substrate protocol. Given that the Simple Object Access Protocol (SOAP) is currently widely used for messaging between elements of such provisioning systems, this document specifies the usage of SOAP (via HTTPS) as the substrate protocol for SPPF. The benefits include leveraging prevalent expertise and a higher probability that existing provisioning systems will be able to easily migrate to using an SPPF-based protocol.

会话对等资源调配框架(SPPF)指定了将会话建立数据(SED)调配到会话数据注册表和SIP服务提供商数据存储中的数据模型和总体结构。要利用这个框架,需要一个底层协议。鉴于简单对象访问协议(SOAP)目前广泛用于此类供应系统的元素之间的消息传递,本文档指定使用SOAP(通过HTTPS)作为SPPF的底层协议。好处包括利用流行的专业知识,以及现有资源调配系统能够轻松迁移到使用基于SPPF的协议的更高可能性。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 7841第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7878.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc7878.

Copyright Notice

版权公告

Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2016 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

Table of Contents

目录

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  SOAP Features and Protocol Layering . . . . . . . . . . . . .   4
   4.  HTTP(S) Features and SPPP over SOAP . . . . . . . . . . . . .   7
   5.  Authentication, Integrity, and Confidentiality  . . . . . . .   7
   6.  Language Identification . . . . . . . . . . . . . . . . . . .   7
   7.  SPPP SOAP Data Structures . . . . . . . . . . . . . . . . . .   7
     7.1.  Concrete Object Key Types . . . . . . . . . . . . . . . .   8
       7.1.1.  Generic Object Key  . . . . . . . . . . . . . . . . .   8
       7.1.2.  Public Identifier Object Key  . . . . . . . . . . . .   9
       7.1.3.  SED Group Offer Key . . . . . . . . . . . . . . . . .  10
     7.2.  Operation Request and Response Structures . . . . . . . .  10
       7.2.1.  Add Operation Structure . . . . . . . . . . . . . . .  10
       7.2.2.  Delete Operation Structure  . . . . . . . . . . . . .  13
       7.2.3.  Accept Operation Structure  . . . . . . . . . . . . .  16
       7.2.4.  Reject Operation Structure  . . . . . . . . . . . . .  19
       7.2.5.  Batch Operation Structure . . . . . . . . . . . . . .  22
       7.2.6.  Get Operation Structure . . . . . . . . . . . . . . .  25
       7.2.7.  Get SED Group Offers Operation Structure  . . . . . .  26
       7.2.8.  Generic Query Response  . . . . . . . . . . . . . . .  28
       7.2.9.  Get Server Details Operation Structure  . . . . . . .  29
     7.3.  Response Codes and Messages . . . . . . . . . . . . . . .  30
     7.4.  Minor Version Identifier  . . . . . . . . . . . . . . . .  32
   8.  Protocol Operations . . . . . . . . . . . . . . . . . . . . .  32
   9.  SPPP over SOAP WSDL Definition  . . . . . . . . . . . . . . .  32
   10. SPPP over SOAP Examples . . . . . . . . . . . . . . . . . . .  44
     10.1.  Add Destination Group  . . . . . . . . . . . . . . . . .  44
     10.2.  Add SED Records  . . . . . . . . . . . . . . . . . . . .  46
     10.3.  Add SED Records -- URIType . . . . . . . . . . . . . . .  47
     10.4.  Add SED Group  . . . . . . . . . . . . . . . . . . . . .  49
     10.5.  Add Public Identifier -- Successful COR Claim  . . . . .  50
        
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  SOAP Features and Protocol Layering . . . . . . . . . . . . .   4
   4.  HTTP(S) Features and SPPP over SOAP . . . . . . . . . . . . .   7
   5.  Authentication, Integrity, and Confidentiality  . . . . . . .   7
   6.  Language Identification . . . . . . . . . . . . . . . . . . .   7
   7.  SPPP SOAP Data Structures . . . . . . . . . . . . . . . . . .   7
     7.1.  Concrete Object Key Types . . . . . . . . . . . . . . . .   8
       7.1.1.  Generic Object Key  . . . . . . . . . . . . . . . . .   8
       7.1.2.  Public Identifier Object Key  . . . . . . . . . . . .   9
       7.1.3.  SED Group Offer Key . . . . . . . . . . . . . . . . .  10
     7.2.  Operation Request and Response Structures . . . . . . . .  10
       7.2.1.  Add Operation Structure . . . . . . . . . . . . . . .  10
       7.2.2.  Delete Operation Structure  . . . . . . . . . . . . .  13
       7.2.3.  Accept Operation Structure  . . . . . . . . . . . . .  16
       7.2.4.  Reject Operation Structure  . . . . . . . . . . . . .  19
       7.2.5.  Batch Operation Structure . . . . . . . . . . . . . .  22
       7.2.6.  Get Operation Structure . . . . . . . . . . . . . . .  25
       7.2.7.  Get SED Group Offers Operation Structure  . . . . . .  26
       7.2.8.  Generic Query Response  . . . . . . . . . . . . . . .  28
       7.2.9.  Get Server Details Operation Structure  . . . . . . .  29
     7.3.  Response Codes and Messages . . . . . . . . . . . . . . .  30
     7.4.  Minor Version Identifier  . . . . . . . . . . . . . . . .  32
   8.  Protocol Operations . . . . . . . . . . . . . . . . . . . . .  32
   9.  SPPP over SOAP WSDL Definition  . . . . . . . . . . . . . . .  32
   10. SPPP over SOAP Examples . . . . . . . . . . . . . . . . . . .  44
     10.1.  Add Destination Group  . . . . . . . . . . . . . . . . .  44
     10.2.  Add SED Records  . . . . . . . . . . . . . . . . . . . .  46
     10.3.  Add SED Records -- URIType . . . . . . . . . . . . . . .  47
     10.4.  Add SED Group  . . . . . . . . . . . . . . . . . . . . .  49
     10.5.  Add Public Identifier -- Successful COR Claim  . . . . .  50
        
     10.6.  Add LRN  . . . . . . . . . . . . . . . . . . . . . . . .  52
     10.7.  Add TN Range . . . . . . . . . . . . . . . . . . . . . .  53
     10.8.  Add TN Prefix  . . . . . . . . . . . . . . . . . . . . .  54
     10.9.  Enable Peering -- SED Group Offer  . . . . . . . . . . .  56
     10.10. Enable Peering -- SED Group Offer Accept . . . . . . . .  58
     10.11. Add Egress Route . . . . . . . . . . . . . . . . . . . .  60
     10.12. Remove Peering -- SED Group Offer Reject . . . . . . . .  61
     10.13. Get Destination Group  . . . . . . . . . . . . . . . . .  62
     10.14. Get Public Identifier  . . . . . . . . . . . . . . . . .  64
     10.15. Get SED Group Request  . . . . . . . . . . . . . . . . .  66
     10.16. Get SED Group Offers Request . . . . . . . . . . . . . .  68
     10.17. Get Egress Route . . . . . . . . . . . . . . . . . . . .  70
     10.18. Delete Destination Group . . . . . . . . . . . . . . . .  72
     10.19. Delete Public Identifier . . . . . . . . . . . . . . . .  73
     10.20. Delete SED Group Request . . . . . . . . . . . . . . . .  74
     10.21. Delete SED Group Offers Request  . . . . . . . . . . . .  75
     10.22. Delete Egress Route  . . . . . . . . . . . . . . . . . .  76
     10.23. Batch Request  . . . . . . . . . . . . . . . . . . . . .  77
   11. Security Considerations . . . . . . . . . . . . . . . . . . .  80
     11.1.  Vulnerabilities  . . . . . . . . . . . . . . . . . . . .  80
   12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  81
   13. References  . . . . . . . . . . . . . . . . . . . . . . . . .  81
     13.1.  Normative References . . . . . . . . . . . . . . . . . .  81
     13.2.  Informative References . . . . . . . . . . . . . . . . .  82
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  82
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  83
        
     10.6.  Add LRN  . . . . . . . . . . . . . . . . . . . . . . . .  52
     10.7.  Add TN Range . . . . . . . . . . . . . . . . . . . . . .  53
     10.8.  Add TN Prefix  . . . . . . . . . . . . . . . . . . . . .  54
     10.9.  Enable Peering -- SED Group Offer  . . . . . . . . . . .  56
     10.10. Enable Peering -- SED Group Offer Accept . . . . . . . .  58
     10.11. Add Egress Route . . . . . . . . . . . . . . . . . . . .  60
     10.12. Remove Peering -- SED Group Offer Reject . . . . . . . .  61
     10.13. Get Destination Group  . . . . . . . . . . . . . . . . .  62
     10.14. Get Public Identifier  . . . . . . . . . . . . . . . . .  64
     10.15. Get SED Group Request  . . . . . . . . . . . . . . . . .  66
     10.16. Get SED Group Offers Request . . . . . . . . . . . . . .  68
     10.17. Get Egress Route . . . . . . . . . . . . . . . . . . . .  70
     10.18. Delete Destination Group . . . . . . . . . . . . . . . .  72
     10.19. Delete Public Identifier . . . . . . . . . . . . . . . .  73
     10.20. Delete SED Group Request . . . . . . . . . . . . . . . .  74
     10.21. Delete SED Group Offers Request  . . . . . . . . . . . .  75
     10.22. Delete Egress Route  . . . . . . . . . . . . . . . . . .  76
     10.23. Batch Request  . . . . . . . . . . . . . . . . . . . . .  77
   11. Security Considerations . . . . . . . . . . . . . . . . . . .  80
     11.1.  Vulnerabilities  . . . . . . . . . . . . . . . . . . . .  80
   12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  81
   13. References  . . . . . . . . . . . . . . . . . . . . . . . . .  81
     13.1.  Normative References . . . . . . . . . . . . . . . . . .  81
     13.2.  Informative References . . . . . . . . . . . . . . . . .  82
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  82
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  83
        
1. Introduction
1. 介绍

SPPF, defined in [RFC7877], is best supported by a transport and messaging infrastructure that is connection oriented, is request-response oriented, is easily secured, supports propagation through firewalls in a standard fashion, and is easily integrated into back-office systems. This is due to the fact that the client side of SPPF is likely to be integrated with organizations' operational support systems that facilitate transactional provisioning of user addresses and their associated SED. The server side of SPPF is likely to reside in a separate organization's network, resulting in the SPPF provisioning transactions traversing the Internet as they are propagated from the SPPF client to the SPPF server. Given the current state of industry practice and technologies, SOAP and HTTP(S) are well suited for this type of environment. This document describes the specification for transporting SPPF XML structures, using SOAP and HTTP(S) as substrates.

[RFC7877]中定义的SPPF最好由面向连接、面向请求-响应、易于安全保护、支持以标准方式通过防火墙传播并易于集成到后台系统的传输和消息传递基础设施来支持。这是因为SPPF的客户端很可能与组织的运营支持系统集成,以促进用户地址及其相关SED的事务性提供。SPPF的服务器端可能位于单独组织的网络中,导致SPPF供应事务在从SPPF客户端传播到SPPF服务器时穿越互联网。鉴于当前行业实践和技术的现状,SOAP和HTTP非常适合这种类型的环境。本文档描述了使用SOAP和HTTP作为底层传输SPPF XML结构的规范。

The specification in this document for transporting SPPF XML structures over SOAP and HTTP(S) is primarily comprised of five subjects: (1) a description of any applicable SOAP features, (2) any

本文档中关于通过SOAP和HTTP传输SPPF XML结构的规范主要由五个主题组成:(1)任何适用SOAP功能的描述,(2)任何

applicable HTTP features, (3) security considerations, (4) (perhaps most importantly) the Web Services Description Language (WSDL) definition for the SPP Protocol over SOAP, and (5) XML Schema Definition (XSD) types that are "substrate" specific.

适用的HTTP特性,(3)安全考虑,(4)(也许最重要的是)SOAP上SPP协议的Web服务描述语言(WSDL)定义,以及(5)特定于“底层”的XML模式定义(XSD)类型。

2. Terminology
2. 术语

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中所述进行解释。

3. SOAP Features and Protocol Layering
3. SOAP特性和协议分层

The list of SOAP features that are explicitly used and required for SPPP over SOAP are limited. Most SOAP features are not necessary for SPPF. SPPP over SOAP primarily uses SOAP simply as a standard message-envelope technology. The SOAP message envelope is comprised of the SOAP header and body. As described in the SOAP specification [SOAPREF], the SOAP header can contain optional, application-specific, information about the message. The SOAP body contains the SPPF message itself, whose structure is defined by the combination of one of the WSDL operations defined in this document and the SPPF XML data structures defined in this document and the SPPF document. SPPF does not rely on any data elements in the SOAP header. All relevant data elements are defined in the SPPF XML Schema described in [RFC7877] and the SPPF WSDL types specification described in Section 9 of this document.

SPPP over SOAP显式使用和所需的SOAP特性列表是有限的。SPPF不需要大多数SOAP特性。SPPP over SOAP主要使用SOAP作为标准消息信封技术。SOAP消息信封由SOAP头和主体组成。如SOAP规范[SOAPREF]中所述,SOAP头可以包含关于消息的可选、特定于应用程序的信息。SOAP正文包含SPPF消息本身,其结构由本文档中定义的WSDL操作之一与本文档和SPPF文档中定义的SPPF XML数据结构的组合定义。SPPF不依赖SOAP头中的任何数据元素。所有相关数据元素都在[RFC7877]中描述的SPPF XML模式和本文档第9节中描述的SPPF WSDL类型规范中定义。

WSDL is a widely standardized and adopted technology for defining the top-level structures of the messages that are transported within the body of a SOAP message. The WSDL definition for the SPPF SOAP messages is defined later in this document, which imports by reference the XML data types contained in the SPPF schema. The IANA registry where the SPPF schema resides is described in "The IETF XML Registry" [RFC3688].

WSDL是一种广泛采用的标准化技术,用于定义在SOAP消息体中传输的消息的顶级结构。sppfsoap消息的WSDL定义将在本文档后面定义,它通过引用SPPF模式中包含的XML数据类型导入。“IETF XML注册表”[RFC3688]中描述了SPPF模式所在的IANA注册表。

There are multiple structural styles that WSDL allows. The best practice for this type of application is what is sometimes referred to as the "document/literal wrapped style". This style is generally regarded as an optimal approach that enhances maintainability, comprehension, portability, and, to a certain extent, performance. It is characterized by setting the soapAction binding style as "document", the soapAction encoding style as "literal", and then defining the SOAP messages to simply contain a single data element that "wraps" a data structure containing all the required input or output data elements. The figure below illustrates this high-level technical structure as conceptual layers 3 through 6.

WSDL允许多种结构样式。这种类型的应用程序的最佳实践有时被称为“文档/文字包装样式”。这种风格通常被认为是提高可维护性、可理解性、可移植性以及在一定程度上提高性能的最佳方法。它的特点是将soapAction绑定样式设置为“document”,将soapAction编码样式设置为“literal”,然后将SOAP消息定义为仅包含单个数据元素,该数据元素“包装”包含所有必需输入或输出数据元素的数据结构。下图将此高级技术结构说明为概念层3至6。

                                 +-------------+
                             (1) |  Transport  |Example:
                                 |  Protocol   |  TCP, TLS, BEEP, etc.
                                 +-------------+
                                        |
                                        V
                                 +-------------+
                             (2) |   Message   |Example:
                                 |   Envelope  | HTTP, SOAP, None, etc.
                                 +-------------+
                                        |
                                        V
                                +--------------+
                           +----|    SOAP      |---+
                           |(3) |  Operation   |   |
                  Contains |    +--------------+   | Contains
                           |        Example:       |
                           V      submitAddRqst    V
                  +--------------+           +-------------+
                  | SOAP Request |           |SOAP Response|
       Example:   |   Message    |  (4)      |   Message   | Example:
       spppAdd    |  (Operation  |           |  (Operation | spppAdd
       RequestMsg |   Input)     |           |   Output)   | ResponseMsg
                  +--------------+           +-------------+
                           |                       |
                  Contains |                       | Contains
                           |                       |
                           V                       V
                  +--------------+          +---------------+
       Example:   |   Wrapped    |  (5)     |    Wrapped    | Example:
       spppAdd    |Request Object|          |Response Object| spppAdd
       Request    +--------------+          +---------------+ Response
                           |                       |
                  Contains |                       | Contains
                           |                       |
                           V                       V
                  +--------------+          +---------------+
                  |    SPPF      |          |     SPPF      |
                  |  XML Types   |  (6)     |   XML Types   |
                  +--------------+          +---------------+
        
                                 +-------------+
                             (1) |  Transport  |Example:
                                 |  Protocol   |  TCP, TLS, BEEP, etc.
                                 +-------------+
                                        |
                                        V
                                 +-------------+
                             (2) |   Message   |Example:
                                 |   Envelope  | HTTP, SOAP, None, etc.
                                 +-------------+
                                        |
                                        V
                                +--------------+
                           +----|    SOAP      |---+
                           |(3) |  Operation   |   |
                  Contains |    +--------------+   | Contains
                           |        Example:       |
                           V      submitAddRqst    V
                  +--------------+           +-------------+
                  | SOAP Request |           |SOAP Response|
       Example:   |   Message    |  (4)      |   Message   | Example:
       spppAdd    |  (Operation  |           |  (Operation | spppAdd
       RequestMsg |   Input)     |           |   Output)   | ResponseMsg
                  +--------------+           +-------------+
                           |                       |
                  Contains |                       | Contains
                           |                       |
                           V                       V
                  +--------------+          +---------------+
       Example:   |   Wrapped    |  (5)     |    Wrapped    | Example:
       spppAdd    |Request Object|          |Response Object| spppAdd
       Request    +--------------+          +---------------+ Response
                           |                       |
                  Contains |                       | Contains
                           |                       |
                           V                       V
                  +--------------+          +---------------+
                  |    SPPF      |          |     SPPF      |
                  |  XML Types   |  (6)     |   XML Types   |
                  +--------------+          +---------------+
        

Legend: BEEP = Blocks Extensible Exchange Protocol TLS = Transport Layer Security

图例:BEEP=块可扩展Exchange协议TLS=传输层安全性

Figure 1: Layering and Technical Structure of SPPP over SOAP Messages

图1:SPPP over SOAP消息的分层和技术结构

The operations supported by SPPP over SOAP are normatively defined later in this document. Each SOAP operation defines a request/input message and a response/output message. Each such request and response message then contains a single object that wraps the SPPF XML data types that comprise the inputs and the outputs, respectively, of the SOAP operation.

SPPP对SOAP支持的操作将在本文档后面进行规范性定义。每个SOAP操作定义一条请求/输入消息和一条响应/输出消息。然后,每个这样的请求和响应消息都包含一个对象,该对象封装了分别包含SOAP操作的输入和输出的SPPF XML数据类型。

SOAP faults are not used by the SPPP over SOAP. All success and error responses are specified in Section 7.3 of this document. However, if a SOAP fault were to occur, perhaps due to failures in the SOAP message handling layer of a SOAP library, the client application should capture and handle the fault. Specifics on how to handle such SOAP faults, if they should occur, will be specific to the chosen SOAP implementation.

通过SOAP的SPPP不使用SOAP错误。本文件第7.3节规定了所有成功和错误响应。但是,如果发生SOAP故障,可能是由于SOAP库的SOAP消息处理层中的故障,则客户端应用程序应该捕获并处理该故障。关于如何处理此类SOAP错误(如果发生)的详细信息将特定于所选的SOAP实现。

Implementations MUST use SOAP 1.2 [SOAPREF] or higher and MUST support SOAP 1.2. Implementations SHOULD use WSDL 1.1 [WSDLREF] and MUST NOT use earlier versions. Use of WSDL versions greater than 1.1 may introduce interoperability problems with implementations that use 1.1.

实现必须使用SOAP1.2[SOAPREF]或更高版本,并且必须支持SOAP1.2。实现应使用WSDL1.1[WSDLREF],且不得使用早期版本。使用大于1.1的WSDL版本可能会给使用1.1的实现带来互操作性问题。

SPPF is a request/reply framework that allows a client application to submit provisioning data and query requests to a server. The SPPF data structures are designed to be protocol agnostic. Concerns regarding encryption, non-repudiation, and authentication are beyond the scope of this document. For more details, please refer to Section 4 ("Transport Substrate Protocol Requirements") of [RFC7877].

SPPF是一个请求/应答框架,允许客户端应用程序向服务器提交配置数据和查询请求。SPPF数据结构的设计与协议无关。有关加密、不可否认性和身份验证的问题超出了本文档的范围。有关更多详细信息,请参阅[RFC7877]第4节(“传输基板协议要求”)。

As illustrated in the previous diagram, SPPF can be viewed as a set of layers that collectively define the structure of an SPPF request and response. Layers 1 and 2 represent the transport, envelope, and authentication technologies. This document defines layers 3, 4, 5, and 6 for SPPP over SOAP.

如前一张图所示,SPPF可以看作是一组层,它们共同定义了SPPF请求和响应的结构。第1层和第2层表示传输、信封和身份验证技术。本文档为SOAP上的SPPP定义了第3、4、5和6层。

1. Layer 1: The transport protocol layer represents the communication mechanism between the client and server. SPPF can be layered over any substrate protocol that provides a set of basic requirements defined in Section 4 of [RFC7877].

1. 第1层:传输协议层表示客户端和服务器之间的通信机制。SPPF可以在任何基板协议上分层,该协议提供了[RFC7877]第4节中定义的一组基本要求。

2. Layer 2: The message-envelope layer is optional but can provide features that are above the transport technology layer but below the application messaging layer. Technologies such as HTTP and SOAP are examples of message-envelope technologies.

2. 第2层:消息信封层是可选的,但可以提供高于传输技术层但低于应用程序消息层的功能。HTTP和SOAP等技术是消息信封技术的示例。

3. Layers 3, 4, 5, and 6: The operation and message layers provide an envelope-independent and substrate-independent wrapper for the SPPF data model objects that are being acted on (created, modified, and queried).

3. 第3层、第4层、第5层和第6层:操作层和消息层为正在操作(创建、修改和查询)的SPPF数据模型对象提供了一个独立于信封和底层的包装器。

4. HTTP(S) Features and SPPP over SOAP
4. HTTP功能和基于SOAP的SPPP

While SOAP is not tied to HTTP(S), for reasons described in the Introduction, HTTP(S) is a good choice as the substrate protocol for the SPP Protocol SOAP messages. HTTP 1.1 includes the "persistent connection" feature, which allows multiple HTTP request/response pairs to be transported across a single HTTP connection. This is an important performance optimization feature, particularly when the connection is an HTTPS connection where the relatively time-consuming TLS handshake has occurred.

虽然SOAP不与HTTP绑定,但出于引言中所述的原因,HTTP是SPP协议SOAP消息的一个不错的选择。HTTP 1.1包含“持久连接”功能,允许通过单个HTTP连接传输多个HTTP请求/响应对。这是一个重要的性能优化功能,特别是当连接是HTTPS连接时,其中发生了相对耗时的TLS握手。

Implementations compliant with this document MUST use HTTP 1.1 [RFC7230] or higher. Also, implementations SHOULD use persistent connections.

符合本文档的实现必须使用HTTP 1.1[RFC7230]或更高版本。此外,实现应该使用持久连接。

5. Authentication, Integrity, and Confidentiality
5. 身份验证、完整性和机密性

To accomplish authentication, conforming SPPP over SOAP clients and servers MUST use HTTP Digest Authentication as defined in [RFC7235].

为了完成身份验证,SOAP客户端和服务器上的一致性SPPP必须使用[RFC7235]中定义的HTTP摘要身份验证。

To achieve integrity and privacy, conforming SPPP over SOAP clients and servers MUST support TLS as defined in [RFC5246] as the secure transport mechanism. Use of TLS MUST follow the recommendations contained in [RFC7525]

为了实现完整性和隐私性,SOAP客户端和服务器上的一致性SPPP必须支持[RFC5246]中定义的TLS作为安全传输机制。TLS的使用必须遵循[RFC7525]中的建议

6. Language Identification
6. 语言识别

Section 9 of [RFC7877] requires protocols to provide a mechanism to transmit language tags together with human-readable messages. When conforming SPPP SOAP servers use such tagging, the XML "lang" attribute ([W3C.REC-xml-20081126], Section 2.12) MUST be used. Clients MAY use the HTTP "Accept-Language" header field (see Section 5.3.5 of [RFC7231]) in order to indicate their language preference.

[RFC7877]第9节要求协议提供一种机制,将语言标记与人类可读的消息一起传输。当符合标准的SPPP SOAP服务器使用此类标记时,必须使用XML“lang”属性([W3C.REC-XML-20081126],第2.12节)。客户端可以使用HTTP“Accept Language”(接受语言)标题字段(参见[RFC7231]第5.3.5节)来表示其语言偏好。

7. SPPP SOAP Data Structures
7. SPPP SOAP数据结构

SPPP over SOAP uses a set of XML-based data structures for all the supported operations and any parameters to which those operations are applied. As also mentioned earlier in this document, these XML structures are envelope independent and substrate independent. Refer to "Protocol Operations" (Section 8) of this document for a description of all the operations that MUST be supported.

SOAP上的SPPP对所有受支持的操作以及应用这些操作的任何参数使用一组基于XML的数据结构。正如本文档前面提到的,这些XML结构与信封无关,与底层无关。有关必须支持的所有操作的说明,请参阅本文件的“协议操作”(第8节)。

The following sections describe the definitions of all the XML data structures.

以下各节描述了所有XML数据结构的定义。

7.1. Concrete Object Key Types
7.1. 具体对象键类型

Certain operations in SPPF require an object key that uniquely identifies the object(s) on which a given operation needs to be performed. SPPF defines the XML structure of any such object key in an abstract manner and delegates the concrete representation to any conforming substrate protocol. The following subsections define the various types of concrete object key types used in various operations in SPPP over SOAP.

SPPF中的某些操作需要唯一标识需要执行给定操作的对象的对象键。SPPF以抽象的方式定义任何此类对象密钥的XML结构,并将具体表示委托给任何一致的底层协议。以下小节定义了在SPPP over SOAP的各种操作中使用的各种类型的具体对象键类型。

7.1.1. Generic Object Key
7.1.1. 通用对象键

Most objects in SPPP over SOAP are uniquely identified by the attributes in the generic object key (Refer to "Generic Object Key Type", Section 5.2.1 of [RFC7877], for details). The concrete XML representation of ObjKeyType is as below:

SOAP上的SPPP中的大多数对象由通用对象键中的属性唯一标识(有关详细信息,请参阅[RFC7877]第5.2.1节“通用对象键类型”)。ObjKeyType的具体XML表示如下:

      <complexType name="ObjKeyType">
       <complexContent>
        <extension base="sppfb:ObjKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <element name="name" type="sppfb:ObjNameType"/>
          <element name="type" type="sppfs:ObjKeyTypeEnum"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <complexType name="ObjKeyType">
       <complexContent>
        <extension base="sppfb:ObjKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <element name="name" type="sppfb:ObjNameType"/>
          <element name="type" type="sppfs:ObjKeyTypeEnum"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        

The ObjKeyType has the data elements as described below:

ObjKeyType具有如下所述的数据元素:

o rant: The identifier of the Registrant organization that owns the object.

o rant:拥有对象的注册组织的标识符。

o name: The character string that contains the name of the object.

o 名称:包含对象名称的字符串。

o type: The enumeration value that represents the type of SPPF object. For example, both a Destination Group and a SED Group can have the same name "TestObj" and be associated with the same Registrant ID. Hence, to uniquely identify the object that represents a Destination Group with the name "TestObj", the type "DestGrp" must be specified when using this concrete ObjKeyType structure to identify the Destination Group "TestObj".

o 类型:表示SPPF对象类型的枚举值。例如,目标组和SED组都可以具有相同的名称“TestObj”,并与相同的注册者ID关联。因此,要唯一标识表示名称为“TestObj”的目标组的对象,请键入“DestGrp”当使用此具体的ObjKeyType结构来标识目标组“TestObj”时,必须指定。

The object types in SPPP over SOAP MUST adhere to the above definition of generic object key and are defined as an enumeration in the XML data structure as follows:

SPPP over SOAP中的对象类型必须遵守上述通用对象键的定义,并定义为XML数据结构中的枚举,如下所示:

    <simpleType name="ObjKeyTypeEnum">
      <restriction base="token">
        <enumeration value="SedGrp"/>
        <enumeration value="DestGrp"/>
        <enumeration value="SedRec"/>
        <enumeration value="EgrRte"/>
      </restriction>
    </simpleType>
        
    <simpleType name="ObjKeyTypeEnum">
      <restriction base="token">
        <enumeration value="SedGrp"/>
        <enumeration value="DestGrp"/>
        <enumeration value="SedRec"/>
        <enumeration value="EgrRte"/>
      </restriction>
    </simpleType>
        
7.1.2. Public Identifier Object Key
7.1.2. 公共标识符对象密钥

Public Identifier type objects can further be of various sub-types like a Telephone Number (TN), Routing Number (RN), TN Prefix, URI, or TN Range and cannot be cleanly identified with the attributes in the generic ObjKeyType. The definition of PubIdKeyType is as below:

公共标识符类型对象还可以是各种子类型,如电话号码(TN)、路由号码(RN)、TN前缀、URI或TN范围,并且不能用通用ObjKeyType中的属性明确标识。PubIdKeyType的定义如下:

      <complexType name="PubIdKeyType">
       <complexContent>
        <extension base="sppfb:PubIdKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <choice>
           <element name="number"
           type="sppfb:NumberType"/>
           <element name="range"
            type="sppfb:NumberRangeType"/>
           <element name="uri"
            type="anyURI"/>
          </choice>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <complexType name="PubIdKeyType">
       <complexContent>
        <extension base="sppfb:PubIdKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <choice>
           <element name="number"
           type="sppfb:NumberType"/>
           <element name="range"
            type="sppfb:NumberRangeType"/>
           <element name="uri"
            type="anyURI"/>
          </choice>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        

The PubIdKeyType has data elements, as described below:

PubIdKeyType具有数据元素,如下所述:

o rant: The identifier of the Registrant organization that owns the object.

o rant:拥有对象的注册组织的标识符。

o number: An element of type NumberType (refer to Section 12 of [RFC7877]) that contains the value and type of a number.

o 数字:NumberType类型的元素(参见[RFC7877]第12节),包含数字的值和类型。

o range: An element of type NumberRangeType (refer to Section 12 of [RFC7877]) that contains a range of numbers.

o 范围:NumberRangeType类型的元素(参考[RFC7877]第12节),包含一个数字范围。

o uri: A value that represents a Public Identifier.

o uri:表示公共标识符的值。

Any instance of PubIdKeyType MUST contain exactly one element from the following set of elements: "number", "range", "uri".

PubIdKeyType的任何实例都必须包含以下元素集中的一个元素:“number”、“range”、“uri”。

7.1.3. SED Group Offer Key
7.1.3. SED组提供密钥

In addition to the attributes in the generic ObjKeyType, a SED Group Offer object is uniquely identified by the organization ID of the organization to whom a SED Group has been offered. The definition of SedGrpOfferKeyType is as below:

除了通用ObjKeyType中的属性外,SED组提供对象由SED组提供给的组织的组织ID唯一标识。SedGrpOfferKeyType的定义如下:

      <complexType name="SedGrpOfferKeyType">
       <complexContent>
        <extension base="sppfb:SedGrpOfferKeyType">
         <sequence>
          <element name="sedGrpKey" type="sppfs:ObjKeyType"/>
          <element name="offeredTo" type="sppfb:OrgIdType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <complexType name="SedGrpOfferKeyType">
       <complexContent>
        <extension base="sppfb:SedGrpOfferKeyType">
         <sequence>
          <element name="sedGrpKey" type="sppfs:ObjKeyType"/>
          <element name="offeredTo" type="sppfb:OrgIdType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        

The SedGrpOfferKeyType has the data elements as described below:

SedGrpOfferKeyType具有如下所述的数据元素:

o sedGrpKey: Identifies the SED Group that was offered.

o sedGrpKey:标识提供的SED组。

o offeredTo: The organization ID of the organization that was offered the SED Group object identified by the sedGrpKey.

o offeredTo:提供sedGrpKey标识的SED组对象的组织的组织ID。

7.2. Operation Request and Response Structures
7.2. 操作请求和响应结构

An SPPF client interacts with an SPPF server by sending one or more requests to the server and by receiving corresponding responses from the server. The basic set of operations that an SPPF client can submit to an SPPF server and the semantics of those operations are defined in "Framework Operations", Section 7 of [RFC7877]. The following subsections describe the XML data structures that are used for each of those types of operations for an SPPP over SOAP implementation.

SPPF客户端通过向服务器发送一个或多个请求并从服务器接收相应的响应来与SPPF服务器交互。SPPF客户端可以提交给SPPF服务器的基本操作集以及这些操作的语义在[RFC7877]第7节“框架操作”中定义。以下小节描述了用于SPPP over SOAP实现的每种操作类型的XML数据结构。

7.2.1. Add Operation Structure
7.2.1. 添加操作结构

In order to add (or modify) an object in the Registry, an authorized entity can send the spppAddRequest to the Registry.

为了在注册表中添加(或修改)对象,授权实体可以向注册表发送请求。

An SPPP over SOAP Add request is wrapped within the <spppAddRequest> element while an SPPP over SOAP Add response is wrapped within an <spppAddResponse> element. The following sub-sections describe the <spppAddRequest> and <spppAddResponse> elements. Refer to Section 10 for an example of an Add operation on each type of SPPF object.

SPPP over SOAP Add请求被包装在<spppAddRequest>元素中,而SPPP over SOAP Add响应被包装在<spppAddResponse>元素中。以下小节描述了<spppAddRequest>和<spppAddResponse>元素。有关每种类型的SPPF对象的添加操作示例,请参阅第10节。

7.2.1.1. Add Request
7.2.1.1. 添加请求

An SPPP over SOAP Add request definition is contained within the generic <spppAddRequest> element.

SPPP over SOAP添加请求定义包含在generic<spppAddRequest>元素中。

      <element name="spppAddRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
          type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
          type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="obj" type="sppfb:BasicObjType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppAddRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
          type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
          type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="obj" type="sppfb:BasicObjType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppAddRequest> element are described as follows:

<spppAddRequest>元素中的数据元素描述如下:

o clientTransId: Zero or one client-generated transaction ID that, within the context of the SPPF client, identifies this request. This value can be used at the discretion of the SPPF client to track, log, or correlate requests and their responses. The SPPF server MUST echo back this value to the client in the corresponding response to the incoming request. The SPPF server will not check this value for uniqueness.

o clientTransId:零个或一个客户端生成的事务ID,在SPPF客户端的上下文中标识此请求。该值可由SPPF客户端自行决定用于跟踪、记录或关联请求及其响应。SPPF服务器必须在对传入请求的相应响应中将此值回显到客户端。SPPF服务器不会检查此值的唯一性。

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o obj: One or more elements of abstract type BasicObjType (defined in [RFC7877]). Each element contains all the attributes of an SPPF object that the client is requesting the SPPF server to add. Refer to Section 3.1 of [RFC7877] for the XML structure of all concrete types, for various SPPF objects, that extend from abstract BasicObjType and hence are eligible to be passed into this element. The elements are processed by the SPPF server in the order in which they are included in the request. With respect to the handling of error conditions, conforming SPPP SOAP servers MUST stop processing BasicObjType elements in the request at the

o obj:抽象类型BasicObjType(在[RFC7877]中定义)的一个或多个元素。每个元素都包含客户端请求SPPF服务器添加的SPPF对象的所有属性。请参阅[RFC7877]的第3.1节,了解从抽象BasicObjType扩展而来的各种SPPF对象的所有具体类型的XML结构,因此有资格传递到此元素中。SPPF服务器按照请求中包含元素的顺序处理元素。关于错误条件的处理,符合SPPP标准的SOAP服务器必须停止处理请求中的BasicObjType元素

first error and roll back any BasicObjType elements that had already been processed for that add request ("stop and roll back").

第一个错误并回滚已为该添加请求处理的任何BasicObjType元素(“停止并回滚”)。

7.2.1.2. Add Response
7.2.1.2. 添加响应

An SPPP over SOAP add response object is contained within the generic <spppAddResponse> element. This response structure is used for all types of SPPF objects that are provisioned by the SPPF client.

SPPP over SOAP添加响应对象包含在generic<spppAddResponse>元素中。此响应结构用于SPPF客户端提供的所有类型的SPPF对象。

     <element name="spppAddResponse">
       <complexType>
         <sequence>
           <element name="clientTransId" type="sppfb:TransIdType"
            minOccurs="0"/>
           <element name="serverTransId" type="sppfb:TransIdType"/>
           <element name="overallResult" type="sppfs:ResultCodeType"/>
           <element name="detailResult" type="sppfs:ObjResultCodeType"
           minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
       </complexType>
     </element>
        
     <element name="spppAddResponse">
       <complexType>
         <sequence>
           <element name="clientTransId" type="sppfb:TransIdType"
            minOccurs="0"/>
           <element name="serverTransId" type="sppfb:TransIdType"/>
           <element name="overallResult" type="sppfs:ResultCodeType"/>
           <element name="detailResult" type="sppfs:ObjResultCodeType"
           minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
       </complexType>
     </element>
        
     <complexType name="ResultCodeType">
       <sequence>
          <element name="code" type="int"/>
          <element name="msg" type="string"/>
       </sequence>
     </complexType>
        
     <complexType name="ResultCodeType">
       <sequence>
          <element name="code" type="int"/>
          <element name="msg" type="string"/>
       </sequence>
     </complexType>
        
      <complexType name="ObjResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="obj" type="sppfb:BasicObjType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <complexType name="ObjResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="obj" type="sppfb:BasicObjType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        

An <spppAddResponse> contains the elements necessary for the SPPF client to precisely determine the overall result of the request, and if an error occurs, it provides information about the specific object(s) that caused the error.

<spppAddResponse>包含SPPF客户端精确确定请求的总体结果所需的元素,如果发生错误,它将提供有关导致错误的特定对象的信息。

The data elements within the SPPP over SOAP Add response are described as follows:

SPPP over SOAP Add响应中的数据元素描述如下:

o clientTransId: Zero or one client transaction ID. This value is simply an echo of the client transaction ID that the SPPF client passed into the SPPF update request. When included in the request, the SPPF server MUST return it in the corresponding response message.

o clientTransId:零或一个客户端事务ID。此值只是SPPF客户端传递到SPPF更新请求的客户端事务ID的回显。当包含在请求中时,SPPF服务器必须在相应的响应消息中返回该请求。

o serverTransId: Exactly one server transaction ID that identifies this request for tracking purposes. This value MUST be unique for a given SPPF server.

o serverTransId:一个服务器事务ID,用于标识此请求以进行跟踪。对于给定的SPPF服务器,此值必须是唯一的。

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o detailResult: An optional response code, response message, and BasicObjType (as defined in [RFC7877]) triplet. This element will be present only if an object-level error has occurred. It indicates the error condition and the exact request object that contributed to the error. The response code will reflect the exact error. See Section 7.3 for further details.

o detailResult:可选的响应代码、响应消息和BasicObjType(定义见[RFC7877])三元组。仅当发生对象级错误时,此元素才会出现。它指示错误条件和导致错误的确切请求对象。响应代码将反映准确的错误。详见第7.3节。

7.2.2. Delete Operation Structure
7.2.2. 删除操作结构

In order to remove an object from the Registry, an authorized entity can send the spppDelRequest into the Registry. An SPPP over SOAP Delete request is wrapped within the <spppDelRequest> element while an SPPP over SOAP Delete response is wrapped within the generic <spppDelResponse> element. The following subsections describe the <spppDelRequest> and <spppDelResponse> elements. Refer to Section 10 for an example of the Delete operation on each type of SPPF object.

为了从注册表中删除对象,授权实体可以将spppDelRequest发送到注册表中。SPPP-over-SOAP删除请求包装在<spppDelRequest>元素中,而SPPP-over-SOAP删除响应包装在generic<spppDelResponse>元素中。以下小节描述了<spppDelRequest>和<spppDelResponse>元素。有关每种类型的SPPF对象的删除操作示例,请参阅第10节。

7.2.2.1. Delete Request
7.2.2.1. 删除请求

An SPPP over SOAP Delete request definition is contained within the generic <spppDelRequest> element.

SPPP over SOAP删除请求定义包含在generic<spppDelRequest>元素中。

      <element name="spppDelRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        <element name="objKey" type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppDelRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        <element name="objKey" type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppDelRequest> element are described as follows:

<spppDelRequest>元素中的数据元素描述如下:

o clientTransId: Zero or one client-generated transaction ID that, within the context of the SPPF client, identifies this request. This value can be used at the discretion of the SPPF client to track, log, or correlate requests and their responses. The SPPF server MUST echo back this value to the client in the corresponding response to the incoming request. SPPF server will not check this value for uniqueness.

o clientTransId:零个或一个客户端生成的事务ID,在SPPF客户端的上下文中标识此请求。该值可由SPPF客户端自行决定用于跟踪、记录或关联请求及其响应。SPPF服务器必须在对传入请求的相应响应中将此值回显到客户端。SPPF服务器不会检查此值的唯一性。

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o objKey: One or more elements of abstract type ObjKeyType (as defined in [RFC7877]). Each element contains attributes that uniquely identify the object that the client is requesting the server to delete. Refer to Section 7.1 for a description of all concrete object key types, for various SPPF objects, which are eligible to be passed into this element. The elements are processed by the SPPF server in the order in which they are included in the request. With respect to the handling of error conditions, conforming SPPP SOAP servers MUST stop processing ObjKeyType elements in the request at the first error and roll back any ObjKeyType elements that had already been processed for that Delete request ("stop and roll back").

o objKey:抽象类型ObjKeyType的一个或多个元素(定义见[RFC7877])。每个元素都包含唯一标识客户端请求服务器删除的对象的属性。请参阅第7.1节,了解所有具体对象密钥类型的说明,这些密钥类型适用于各种SPPF对象,这些SPPF对象有资格传递到此元素中。SPPF服务器按照请求中包含元素的顺序处理元素。关于错误条件的处理,一致性SPPP SOAP服务器必须在第一个错误时停止处理请求中的ObjKeyType元素,并回滚已经为该删除请求处理过的任何ObjKeyType元素(“停止并回滚”)。

7.2.2.2. Delete Response
7.2.2.2. 删除响应

An SPPP over SOAP delete response object is contained within the generic <sppDeleteResponse> element. This response structure is used for a Delete request on all types of SPPF objects that are provisioned by the SPPF client.

SOAP上的SPPP删除响应对象包含在泛型<sppDeleteResponse>元素中。此响应结构用于对SPPF客户端提供的所有类型的SPPF对象执行删除请求。

   <element name="spppDelResponse">
    <complexType>
     <sequence>
      <element name="clientTransId" type="sppfb:TransIdType"
               minOccurs="0"/>
      <element name="serverTransId" type="sppfb:TransIdType"/>
      <element name="overallResult" type="sppfs:ResultCodeType"/>
      <element name="detailResult" type="sppfs:ObjKeyResultCodeType"
               minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
        
   <element name="spppDelResponse">
    <complexType>
     <sequence>
      <element name="clientTransId" type="sppfb:TransIdType"
               minOccurs="0"/>
      <element name="serverTransId" type="sppfb:TransIdType"/>
      <element name="overallResult" type="sppfs:ResultCodeType"/>
      <element name="detailResult" type="sppfs:ObjKeyResultCodeType"
               minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
        
   <complexType name="ResultCodeType">
    <sequence>
     <element name="code" type="int"/>
     <element name="msg" type="string"/>
    </sequence>
   </complexType>
        
   <complexType name="ResultCodeType">
    <sequence>
     <element name="code" type="int"/>
     <element name="msg" type="string"/>
    </sequence>
   </complexType>
        
   <complexType name="ObjKeyResultCodeType">
    <complexContent>
     <extension base="sppfs:ResultCodeType">
      <sequence>
       <element name="objKey" type="sppfb:ObjKeyType"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
        
   <complexType name="ObjKeyResultCodeType">
    <complexContent>
     <extension base="sppfs:ResultCodeType">
      <sequence>
       <element name="objKey" type="sppfb:ObjKeyType"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
        

An <spppDelResponse> contains the elements necessary for the SPPF client to precisely determine the overall result of the request, and if an error occurs, it provides information about the specific object key(s) that caused the error.

<spppDelResponse>包含SPPF客户端精确确定请求总体结果所需的元素,如果发生错误,它将提供有关导致错误的特定对象键的信息。

The data elements within the SPPP over SOAP Delete response are described as follows:

SPPP over SOAP Delete响应中的数据元素描述如下:

o clientTransId: Zero or one client transaction ID. This value is simply an echo of the client transaction ID that the SPPF client passed into the SPPF update request. When included in the request, the SPPF server MUST return it in the corresponding response message.

o clientTransId:零或一个客户端事务ID。此值只是SPPF客户端传递到SPPF更新请求的客户端事务ID的回显。当包含在请求中时,SPPF服务器必须在相应的响应消息中返回该请求。

o serverTransId: Exactly one server transaction ID that identifies this request for tracking purposes. This value MUST be unique for a given SPPF server.

o serverTransId:一个服务器事务ID,用于标识此请求以进行跟踪。对于给定的SPPF服务器,此值必须是唯一的。

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o detailResult: An optional response code, response message, and ObjKeyType (as defined in [RFC7877]) triplet. This element will be present only if a specific object key level error has occurred. It indicates the error condition and the exact request object key that contributed to the error. The response code will reflect the exact error. See Section 7.3 for further details.

o detailResult:可选的响应代码、响应消息和ObjKeyType(定义见[RFC7877])三元组。仅当发生特定对象键级别错误时,此元素才会出现。它指示错误条件和导致错误的确切请求对象键。响应代码将反映准确的错误。详见第7.3节。

7.2.3. Accept Operation Structure
7.2.3. 接受运营结构

In SPPF, a SED Group Offer can be accepted or rejected by, or on behalf of, the Registrant to whom the SED Group has been offered (refer to Section 3.1 of [RFC7877] for a description of the SED Group Offer object). The Accept operation is used to accept such SED Group Offers by, or on behalf of, the Registrant. The request structure for an SPPP over SOAP Accept operation is wrapped within the <spppAcceptRequest> element while an SPPP over SOAP Accept response is wrapped within the generic <spppAcceptResponse> element. The following subsections describe the <spppAcceptRequest> and <spppAcceptResponse> elements. Refer to Section 10 for an example of the Accept operation on a SED Group Offer.

在SPPF中,SED集团要约可由接受SED集团要约的注册人或其代表接受或拒绝(有关SED集团要约对象的说明,请参阅[RFC7877]第3.1节)。接受操作用于接受注册人或其代表提供的此类SED集团报价。SPPP-over-SOAP-Accept操作的请求结构包装在<spppaceptrequest>元素中,而SPPP-over-SOAP-Accept响应包装在generic<spppacepceptresponse>元素中。以下小节描述<spppAcceptRequest>和<spppAcceptResponse>元素。有关SED集团要约的接受操作示例,请参阅第10节。

7.2.3.1. Accept Request Structure
7.2.3.1. 接受请求结构

An SPPP over SOAP Accept request definition is contained within the generic <sppAcceptRequest> element.

SPPP over SOAP接受请求定义包含在generic<sppAcceptRequest>元素中。

      <element name="spppAcceptRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppAcceptRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppAcceptRequest> element are described as follows:

<spppaceptrequest>元素中的数据元素描述如下:

o clientTransId: Zero or one client-generated transaction ID that, within the context of the SPPF client, identifies this request. This value can be used at the discretion of the SPPF client to track, log, or correlate requests and their responses. The SPPF server MUST echo back this value to the client in the corresponding response to the incoming request. The SPPF server will not check this value for uniqueness.

o clientTransId:零个或一个客户端生成的事务ID,在SPPF客户端的上下文中标识此请求。该值可由SPPF客户端自行决定用于跟踪、记录或关联请求及其响应。SPPF服务器必须在对传入请求的相应响应中将此值回显到客户端。SPPF服务器不会检查此值的唯一性。

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o sedGrpOfferKey: One or more elements of type SedGrpOfferKeyType (as defined in this document). Each element contains attributes that uniquely identify a SED Group Offer that the client is requesting the server to accept. The elements are processed by the SPPF server in the order in which they are included in the request. With respect to the handling of error conditions, conforming SPPP SOAP servers MUST stop processing SedGrpOfferKeyType elements in the request at the first error and roll back any SedGrpOfferKeyType elements that had already been processed for that Accept request ("stop and roll back").

o sedGrpOfferKey:SedGrpOfferKeyType类型的一个或多个元素(定义见本文档)。每个元素都包含唯一标识客户机请求服务器接受的SED组报价的属性。SPPF服务器按照请求中包含元素的顺序处理元素。关于错误条件的处理,一致性SPPP SOAP服务器必须在第一个错误时停止处理请求中的SedGrpOfferKeyType元素,并回滚已为该接受请求处理的任何SedGrpOfferKeyType元素(“停止并回滚”)。

7.2.3.2. Accept Response
7.2.3.2. 接受回应

An SPPP over SOAP accept response structure is contained within the generic <sppAcceptResponse> element. This response structure is used for an Accept request on a SED Group Offer.

SPPP over SOAP accept响应结构包含在泛型<sppAcceptResponse>元素中。此响应结构用于接受SED组报价的请求。

   <element name="spppAcceptResponse">
    <complexType>
     <sequence>
      <element name="clientTransId" type="sppfb:TransIdType"
               minOccurs="0"/>
      <element name="serverTransId" type="sppfb:TransIdType"/>
      <element name="overallResult" type="sppfs:ResultCodeType"/>
      <element name="detailResult"
               type="sppfs:SedGrpOfferKeyResultCodeType"
               minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
        
   <element name="spppAcceptResponse">
    <complexType>
     <sequence>
      <element name="clientTransId" type="sppfb:TransIdType"
               minOccurs="0"/>
      <element name="serverTransId" type="sppfb:TransIdType"/>
      <element name="overallResult" type="sppfs:ResultCodeType"/>
      <element name="detailResult"
               type="sppfs:SedGrpOfferKeyResultCodeType"
               minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
        
   <complexType name="ResultCodeType">
    <sequence>
     <element name="code" type="int"/>
     <element name="msg" type="string"/>
    </sequence>
   </complexType>
        
   <complexType name="ResultCodeType">
    <sequence>
     <element name="code" type="int"/>
     <element name="msg" type="string"/>
    </sequence>
   </complexType>
        
   <complexType name="SedGrpOfferKeyResultCodeType">
    <complexContent>
     <extension base="sppfs:ResultCodeType">
      <sequence>
       <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
        
   <complexType name="SedGrpOfferKeyResultCodeType">
    <complexContent>
     <extension base="sppfs:ResultCodeType">
      <sequence>
       <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
        

An <spppAcceptResponse> contains the elements necessary for the SPPF client to precisely determine the overall result of the request, and if an error occurs, it provides information about the specific SED Group Offer key(s) that caused the error.

<spppAcceptResponse>包含SPPF客户端精确确定请求总体结果所需的元素,如果发生错误,它将提供有关导致错误的特定SED组提供密钥的信息。

The data elements within the SPPP over SOAP Accept response are described as follows:

SPPP over SOAP Accept响应中的数据元素描述如下:

o clientTransId: Zero or one client transaction ID. This value is simply an echo of the client transaction ID that the SPPF client passed into the SPPF update request. When included in the request, the SPPF server MUST return it in the corresponding response message.

o clientTransId:零或一个客户端事务ID。此值只是SPPF客户端传递到SPPF更新请求的客户端事务ID的回显。当包含在请求中时,SPPF服务器必须在相应的响应消息中返回该请求。

o serverTransId: Exactly one server transaction ID that identifies this request for tracking purposes. This value MUST be unique for a given SPPF server.

o serverTransId:一个服务器事务ID,用于标识此请求以进行跟踪。对于给定的SPPF服务器,此值必须是唯一的。

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o detailResult: An optional response code, response message, and SedGrpOfferKeyType (as defined in this document) triplet. This element will be present only if any specific SED Group Offer key level error has occurred. It indicates the error condition and the exact request SED Group Offer key that contributed to the error. The response code will reflect the exact error. See Section 7.3 for further details.

o detailResult:可选的响应代码、响应消息和SedGrpOfferKeyType(定义见本文档)三元组。仅当发生任何特定的SED组提供密钥级别错误时,此元素才会出现。它指示错误情况以及导致错误的确切请求SED组提供密钥。响应代码将反映准确的错误。详见第7.3节。

7.2.4. Reject Operation Structure
7.2.4. 拒绝操作结构

In SPPF, a SED Group Offer can be accepted or rejected by, or on behalf of, the Registrant to whom the SED Group has been offered (refer to "Framework Data Model Objects", Section 6 of [RFC7877] for a description of the SED Group Offer object). The Reject operation is used to reject such SED Group Offers by, or on behalf of, the Registrant. The request structure for an SPPP over SOAP Reject operation is wrapped within the <spppRejectRequest> element while an SPPP over SOAP Reject response is wrapped within the generic <spppRejecResponse> element. The following subsections describe the <spppRejectRequest> and <spppRejecResponse> elements. Refer to Section 10 for an example of the Reject operation on a SED Group Offer.

在SPPF中,SED集团要约可由SED集团被要约的注册人或其代表接受或拒绝(有关SED集团要约对象的说明,请参阅[RFC7877]第6节“框架数据模型对象”)。拒绝操作用于拒绝注册人或其代表提供的此类SED集团报价。SPPP over SOAP拒绝操作的请求结构包装在<spppRejectRequest>元素中,而SPPP over SOAP拒绝响应包装在通用<SPPPrejeResponse>元素中。以下小节描述了<spppRejectRequest>和<SPPPrejeResponse>元素。有关SED集团报价的拒绝操作示例,请参阅第10节。

7.2.4.1. Reject Request
7.2.4.1. 拒绝请求

An SPPP over SOAP Reject request definition is contained within the generic <spppRejectRequest> element.

SPPP over SOAP拒绝请求定义包含在泛型<spppRejectRequest>元素中。

      <element name="spppRejectRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppRejectRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppRejectRequest> element are described as follows:

<spppRejectRequest>元素中的数据元素描述如下:

o clientTransId: Zero or one client-generated transaction ID that, within the context of the SPPF client, identifies this request. This value can be used at the discretion of the SPPF client to track, log, or correlate requests and their responses. The SPPF server MUST echo back this value to the client in the corresponding response to the incoming request. The SPPF server will not check this value for uniqueness.

o clientTransId:零个或一个客户端生成的事务ID,在SPPF客户端的上下文中标识此请求。该值可由SPPF客户端自行决定用于跟踪、记录或关联请求及其响应。SPPF服务器必须在对传入请求的相应响应中将此值回显到客户端。SPPF服务器不会检查此值的唯一性。

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o sedGrpOfferKey: One or more elements of type SedGrpOfferKeyType (as defined in this document). Each element contains attributes that uniquely identify a SED Group Offer that the client is requesting the server to reject. The elements are processed by the SPPF server in the order in which they are included in the request. With respect to the handling of error conditions, conforming SPPF servers MUST stop processing SedGrpOfferKeyType elements in the request at the first error and roll back any SedGrpOfferKeyType elements that had already been processed for that Reject request ("stop and roll back").

o sedGrpOfferKey:SedGrpOfferKeyType类型的一个或多个元素(定义见本文档)。每个元素都包含唯一标识客户机请求服务器拒绝的SED组提供的属性。SPPF服务器按照请求中包含元素的顺序处理元素。关于错误条件的处理,一致性SPPF服务器必须在第一个错误时停止处理请求中的SedGrpOfferKeyType元素,并回滚已针对该拒绝请求处理的任何SedGrpOfferKeyType元素(“停止并回滚”)。

7.2.4.2. Reject Response
7.2.4.2. 拒绝响应

An SPPP over SOAP reject response structure is contained within the generic <sppRejectResponse> element. This response structure is used for a Reject request on a SED Group Offer.

SPPP-over-SOAP拒绝响应结构包含在generic<sppRejectResponse>元素中。此响应结构用于拒绝SED组报价的请求。

   <element name="spppRejectResponse">
    <complexType>
     <sequence>
      <element name="clientTransId" type="sppfb:TransIdType"
               minOccurs="0"/>
      <element name="serverTransId" type="sppfb:TransIdType"/>
      <element name="overallResult" type="sppfs:ResultCodeType"/>
      <element name="detailResult"
               type="sppfs:SedGrpOfferKeyResultCodeType"
               minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
        
   <element name="spppRejectResponse">
    <complexType>
     <sequence>
      <element name="clientTransId" type="sppfb:TransIdType"
               minOccurs="0"/>
      <element name="serverTransId" type="sppfb:TransIdType"/>
      <element name="overallResult" type="sppfs:ResultCodeType"/>
      <element name="detailResult"
               type="sppfs:SedGrpOfferKeyResultCodeType"
               minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
        
   <complexType name="ResultCodeType">
    <sequence>
     <element name="code" type="int"/>
     <element name="msg" type="string"/>
    </sequence>
   </complexType>
        
   <complexType name="ResultCodeType">
    <sequence>
     <element name="code" type="int"/>
     <element name="msg" type="string"/>
    </sequence>
   </complexType>
        
   <complexType name="SedGrpOfferKeyResultCodeType">
    <complexContent>
     <extension base="sppfs:ResultCodeType">
      <sequence>
       <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
        
   <complexType name="SedGrpOfferKeyResultCodeType">
    <complexContent>
     <extension base="sppfs:ResultCodeType">
      <sequence>
       <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
        

An <spppRejectResponse> contains the elements necessary for the SPPF client to precisely determine the overall result of the request, and if an error occurs, it provides information about the specific SED Group Offer key(s) that caused the error.

<spppRejectResponse>包含SPPF客户端精确确定请求总体结果所需的元素,如果发生错误,它将提供有关导致错误的特定SED组提供密钥的信息。

The data elements within the SPPP over SOAP Reject response are described as follows:

SPPP over SOAP拒绝响应中的数据元素描述如下:

o clientTransId: Zero or one client transaction ID. This value is simply an echo of the client transaction ID that the SPPF client passed into the SPPF update request. When included in the request, the SPPF server MUST return it in the corresponding response message.

o clientTransId:零或一个客户端事务ID。此值只是SPPF客户端传递到SPPF更新请求的客户端事务ID的回显。当包含在请求中时,SPPF服务器必须在相应的响应消息中返回该请求。

o serverTransId: Exactly one server transaction ID that identifies this request for tracking purposes. This value MUST be unique for a given SPPF server.

o serverTransId:一个服务器事务ID,用于标识此请求以进行跟踪。对于给定的SPPF服务器,此值必须是唯一的。

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o detailResult: An optional response code, response message, and SedGrpOfferKeyType (as defined in this document) triplet. This element will be present only if any specific SED Group Offer key level error has occurred. It indicates the error condition and the exact request SED Group Offer key that contributed to the error. The response code will reflect the exact error. See Section 7.3 for further details.

o detailResult:可选的响应代码、响应消息和SedGrpOfferKeyType(定义见本文档)三元组。仅当发生任何特定的SED组提供密钥级别错误时,此元素才会出现。它指示错误情况以及导致错误的确切请求SED组提供密钥。响应代码将反映准确的错误。详见第7.3节。

7.2.5. Batch Operation Structure
7.2.5. 批处理操作结构

An SPPP over SOAP Batch request XML structure allows the SPPF client to send any of the Add, Del, Accept, or Reject operations together in one single request. This gives an SPPF client the flexibility to use one single request structure to perform more than operations (verbs). The batch request structure is wrapped within the <spppBatchRequest> element while an SPPF Batch response is wrapped within the <spppBatchResponse> element. The following subsections describe the <spppBatchRequest> and <spppBatchResponse> elements. Refer to Section 10 for an example of a Batch operation.

SPPP over SOAP批处理请求XML结构允许SPPF客户端在一个请求中同时发送任何添加、删除、接受或拒绝操作。这使SPPF客户端能够灵活地使用一个请求结构来执行多个操作(动词)。批处理请求结构包装在<spppBatchRequest>元素中,而SPPF批处理响应包装在<spppBatchResponse>元素中。以下小节描述了<spppBatchRequest>和<spppBatchResponse>元素。有关批处理操作的示例,请参阅第10节。

7.2.5.1. Batch Request Structure
7.2.5.1. 批处理请求结构

An SPPP over SOAP Batch request definition is contained within the generic <spppBatchRequest> element.

SPPP over SOAP批处理请求定义包含在generic<spppBatchRequest>元素中。

       <element name="spppBatchRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
          <choice minOccurs="1" maxOccurs="unbounded">
           <element name="addObj" type="sppfb:BasicObjType"/>
           <element name="delObj" type="sppfb:ObjKeyType"/>
           <element name="acceptSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
           <element name="rejectSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
        
       <element name="spppBatchRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
          <choice minOccurs="1" maxOccurs="unbounded">
           <element name="addObj" type="sppfb:BasicObjType"/>
           <element name="delObj" type="sppfb:ObjKeyType"/>
           <element name="acceptSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
           <element name="rejectSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <sppBatchRequest> element are described as follows:

<sppBatchRequest>元素中的数据元素描述如下:

o clientTransId: Zero or one client-generated transaction ID that, within the context of the SPPF client, identifies this request. This value can be used at the discretion of the SPPF client to track, log, or correlate requests and their responses. The SPPF server MUST echo back this value to the client in the corresponding response to the incoming request. The SPPF server will not check this value for uniqueness.

o clientTransId:零个或一个客户端生成的事务ID,在SPPF客户端的上下文中标识此请求。该值可由SPPF客户端自行决定用于跟踪、记录或关联请求及其响应。SPPF服务器必须在对传入请求的相应响应中将此值回显到客户端。SPPF服务器不会检查此值的唯一性。

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o addObj: One or more elements of abstract type BasicObjType where each element identifies an object that needs to be added.

o addObj:抽象类型BasicObjType的一个或多个元素,其中每个元素标识需要添加的对象。

o delObj: One or more elements of abstract type ObjKeyType where each element identifies a key for the object that needs to be deleted .

o delObj:抽象类型ObjKeyType的一个或多个元素,其中每个元素为需要删除的对象标识一个键。

o acceptSedGrpOffer: One or more elements of type SedGrpOfferKeyType where each element identifies a SED Group Offer that needs to be accepted.

o acceptSedGrpOffer:SedGrpOfferKeyType类型的一个或多个元素,其中每个元素标识需要接受的SED集团报价。

o rejectSedGrpOffer: One or more elements of type SedGrpOfferKeyType where each element identifies a SED Group Offer that needs to be rejected.

o rejectSedGrpOffer:SedGrpOfferKeyType类型的一个或多个元素,其中每个元素标识需要拒绝的SED集团报价。

With respect to the handling of error conditions, conforming SPPP SOAP servers MUST stop processing elements in the request at the first error and roll back any elements that had already been processed for that Batch request ("stop and roll back").

关于错误条件的处理,一致性SPPP SOAP服务器必须在第一个错误时停止处理请求中的元素,并回滚已经为该批处理请求处理过的任何元素(“停止并回滚”)。

7.2.5.2. Batch Response
7.2.5.2. 批量响应

An SPPP over SOAP batch response structure is contained within the generic <sppBatchResponse> element. This response structure is used for a Batch request that contains many different types of SPPF operations.

SPPP-over-SOAP批处理响应结构包含在generic<sppBatchResponse>元素中。此响应结构用于包含许多不同类型的SPPF操作的批处理请求。

     <element name="spppBatchResponse">
       <complexType>
         <sequence>
           <element name="clientTransId" type="sppfb:TransIdType"
            minOccurs="0"/>
           <element name="serverTransId" type="sppfb:TransIdType"/>
           <element name="overallResult" type="sppfs:ResultCodeType"/>
           <choice minOccurs="0" maxOccurs="unbounded">
              <element name="addResult"
              type="sppfs:ObjResultCodeType"/>
              <element name="delResult"
              type="sppfs:ObjKeyResultCodeType"/>
              <element name="acceptResult"
              type="sppfs:SedGrpOfferKeyResultCodeType"/>
              <element name="rejectResult"
              type="sppfs:SedGrpOfferKeyResultCodeType"/>
            </choice>
         </sequence>
       </complexType>
     </element>
        
     <element name="spppBatchResponse">
       <complexType>
         <sequence>
           <element name="clientTransId" type="sppfb:TransIdType"
            minOccurs="0"/>
           <element name="serverTransId" type="sppfb:TransIdType"/>
           <element name="overallResult" type="sppfs:ResultCodeType"/>
           <choice minOccurs="0" maxOccurs="unbounded">
              <element name="addResult"
              type="sppfs:ObjResultCodeType"/>
              <element name="delResult"
              type="sppfs:ObjKeyResultCodeType"/>
              <element name="acceptResult"
              type="sppfs:SedGrpOfferKeyResultCodeType"/>
              <element name="rejectResult"
              type="sppfs:SedGrpOfferKeyResultCodeType"/>
            </choice>
         </sequence>
       </complexType>
     </element>
        

An <spppBatchResponse> contains the elements necessary for an SPPF client to precisely determine the overall result of various operations in the request, and if an error occurs, it provides information about the specific objects or keys in the request that caused the error.

<SPPPPatchResponse>包含SPPF客户端精确确定请求中各种操作的总体结果所需的元素,如果发生错误,它将提供有关导致错误的请求中特定对象或键的信息。

The data elements within the SPPP over SOAP Batch response are described as follows:

SPPP over SOAP批处理响应中的数据元素描述如下:

o clientTransId: Zero or one client transaction ID. This value is simply an echo of the client transaction ID that the SPPF client passed into the SPPF update request. When included in the request, the SPPF server MUST return it in the corresponding response message.

o clientTransId:零或一个客户端事务ID。此值只是SPPF客户端传递到SPPF更新请求的客户端事务ID的回显。当包含在请求中时,SPPF服务器必须在相应的响应消息中返回该请求。

o serverTransId: Exactly one server transaction ID that identifies this request for tracking purposes. This value MUST be unique for a given SPPF server.

o serverTransId:一个服务器事务ID,用于标识此请求以进行跟踪。对于给定的SPPF服务器,此值必须是唯一的。

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o addResult: One or more elements of type ObjResultCodeType where each element identifies the result code, result message, and the specific object to which the result relates.

o addResult:ObjResultCodeType类型的一个或多个元素,其中每个元素标识结果代码、结果消息以及与结果相关的特定对象。

o delResult: One or more elements of type ObjKeyResultCodeType where each element identifies the result code, result message, and the specific object key to which the result relates.

o delResult:ObjKeyResultCodeType类型的一个或多个元素,其中每个元素标识结果代码、结果消息以及与结果相关的特定对象键。

o acceptResult: One or more elements of type SedGrpOfferKeyResultCodeType where each element identifies the result code, result message, and the specific SED Group Offer key to which the result relates.

o acceptResult:SedGrpOfferKeyResultCodeType类型的一个或多个元素,其中每个元素标识结果代码、结果消息以及与结果相关的特定SED组提供密钥。

o rejectResult: One or more elements of type SedGrpOfferKeyResultCodeType where each element identifies the result code, result message, and the specific SED Group Offer key to which the result relates.

o rejectResult:SedGrpOfferKeyResultCodeType类型的一个或多个元素,其中每个元素标识结果代码、结果消息以及与结果相关的特定SED组提供键。

7.2.6. Get Operation Structure
7.2.6. 获取操作结构

In order to query the details of an object from the Registry, an authorized entity can send the spppGetRequest to the Registry with a GetRqstType XML data structure containing one or more object keys that uniquely identify the object whose details are being queried. The following subsections describe the <spppGetRequest> and <spppGetResponse> elements. Refer to Section 10 for an example of the SPPP over SOAP Get operation on each type of SPPF object.

为了从注册表中查询对象的详细信息,授权实体可以使用包含一个或多个对象键的GetRqstType XML数据结构将spppGetRequest发送到注册表,该对象键唯一标识要查询其详细信息的对象。以下小节描述了<spppGetRequest>和<spppGetResponse>元素。关于每种类型的SPPF对象上的SPPP over SOAP Get操作的示例,请参阅第10节。

7.2.6.1. Get Request
7.2.6.1. 获取请求

The request structure for an SPPP over SOAP Get operation is contained within the generic <spppGetRequest> element:

SPPP over SOAP Get操作的请求结构包含在generic<spppGetRequest>元素中:

      <element name="spppGetRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppGetRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppGetRequest> element are described as follows:

<spppGetRequest>元素中的数据元素描述如下:

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o objKey: One or more elements of abstract type ObjKeyType (as defined in [RFC7877]). Each element contains attributes that uniquely identify the object that the client is requesting the server to query. Refer to Section 7.1 of this document for a description of all concrete object key types, for various SPPF objects, which are eligible to be passed into this element.

o objKey:抽象类型ObjKeyType的一个或多个元素(定义见[RFC7877])。每个元素都包含唯一标识客户端请求服务器查询的对象的属性。请参阅本文件第7.1节,了解所有具体对象密钥类型的说明,这些密钥类型适用于各种SPPF对象,可以传递到此元素中。

7.2.6.2. Get Response
7.2.6.2. 得到回应

The SPPP over SOAP Get response is wrapped within the generic <spppGetResponse> element, as described in Section 7.2.8.

如第7.2.8节所述,SPPP over SOAP Get响应被包装在通用的<spppGetResponse>元素中。

7.2.7. Get SED Group Offers Operation Structure
7.2.7. Get SED集团提供运营结构

In addition to the ability to query the details of one or more SED Group Offers using a SED Group Offer key in the spppGetRequest, this operation also provides an additional, more flexible, structure to query for SED Group Offer objects. This additional structure is contained within the <getSedGrpOffersRequest> element while the response is wrapped within the generic <spppGetResponse> element. The following subsections describe the <getSedGrpOffersRequest> and <spppGetResponse> elements.

除了能够使用spppGetRequest中的SED Group Offer键查询一个或多个SED Group Offer的详细信息外,此操作还提供了一个额外的、更灵活的结构来查询SED Group Offer对象。此附加结构包含在<getSedGrpOffersRequest>元素中,而响应则封装在generic<spppGetResponse>元素中。以下小节描述了<getSedGrpOffersRequest>和<spppGetResponse>元素。

7.2.7.1. Get SED Group Offers Request
7.2.7.1. 获取SED组报价请求

Using the details passed into this structure, the server will attempt to find SED Group Offer objects that satisfy all the criteria passed into the request. If no criteria are passed in, then the SPPF server will return the list of SED Group Offer objects that belong to the Registrant. If there are no matching SED Group Offers found, then an empty result set will be returned.

使用传递到此结构中的详细信息,服务器将尝试查找满足传递到请求中的所有条件的SED Group Offer对象。如果未传入任何标准,则SPPF服务器将返回属于注册人的SED Group Offer对象列表。如果没有找到匹配的SED组优惠,则将返回一个空结果集。

       <element name="getSedGrpOffersRequest">
       <complexType>
        <sequence>
         <element name="minorVer" type="sppfb:MinorVerType"
         minOccurs="0"/>
        <element name="offeredBy" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="offeredTo" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="status" type="sppfb:SedGrpOfferStatusType"
         minOccurs="0"/>
        <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"
        minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
       <element name="getSedGrpOffersRequest">
       <complexType>
        <sequence>
         <element name="minorVer" type="sppfb:MinorVerType"
         minOccurs="0"/>
        <element name="offeredBy" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="offeredTo" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="status" type="sppfb:SedGrpOfferStatusType"
         minOccurs="0"/>
        <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"
        minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <getSedGrpOffersRequest> element are described as follows:

<getSedGrpOffersRequest>元素中的数据元素描述如下:

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

o offeredBy: Zero or more organization IDs. Only offers that are offered to the organization IDs in this list should be included in the result set. The result set is also subject to other query criteria in the request.

o 提供者:零个或多个组织ID。结果集中只应包括向此列表中的组织ID提供的优惠。结果集还受请求中其他查询条件的约束。

o offeredTo: Zero or more organization IDs. Only offers that are offered by the organization IDs in this list should be included in the result set. The result set is also subject to other query criteria in the request.

o 提供给:零个或多个组织ID。结果集中只应包括由此列表中的组织ID提供的报价。结果集还受请求中其他查询条件的约束。

o status: The status of the offer, offered or accepted. Only offers in the specified status should be included in the result set. If this element is not present, then the status of the offer should not be considered in the query. The result set is also subject to other query criteria in the request.

o 状态:报价的状态,已报价或已接受。结果集中只应包括指定状态的报价。如果此元素不存在,则不应在查询中考虑报价的状态。结果集还受请求中其他查询条件的约束。

o sedGrpOfferKey: Zero or more SED Group Offer keys. Only offers having one of these keys should be included in the result set. The result set is also subject to other query criteria in the request.

o sedGrpOfferKey:零个或多个SED组提供密钥。结果集中只应包括具有其中一个键的报价。结果集还受请求中其他查询条件的约束。

7.2.7.2. Get SED Group Offers Response
7.2.7.2. 获取SED组提供的响应

The spppGetResponse element is described in Section 7.2.8.

第7.2.8节描述了spppGetResponse元素。

7.2.8. Generic Query Response
7.2.8. 通用查询响应

An SPPP over SOAP query response object is contained within the generic <spppGetResponse> element.

SPPP over SOAP查询响应对象包含在generic<spppGetResponse>元素中。

      <element name="spppGetResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="resultObj"
         type="sppfb:BasicObjType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppGetResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="resultObj"
         type="sppfb:BasicObjType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
        

An <spppGetResponse> contains the elements necessary for the SPPF client to precisely determine the overall result of the query and details of any SPPF objects that matched the criteria in the request.

<spppGetResponse>包含SPPF客户端精确确定查询总体结果所需的元素,以及与请求中的条件匹配的任何SPPF对象的详细信息。

The data elements within the SPPP over SOAP query response are described as follows:

SPPP over SOAP查询响应中的数据元素描述如下:

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o resultObj: The set of zero or more objects that matched the query criteria. If no objects matched the query criteria, then the result object(s) MUST be empty and the overallResult value MUST indicate success (if no matches are found for the query criteria, the response is considered a success).

o resultObj:匹配查询条件的零个或多个对象的集合。如果没有与查询条件匹配的对象,则结果对象必须为空,且总体结果值必须指示成功(如果未找到与查询条件匹配的对象,则响应被视为成功)。

7.2.9. Get Server Details Operation Structure
7.2.9. 获取服务器详细信息操作结构

In order to query certain details of the SPPF server, such as the SPPF server's status and the major/minor version supported by the server, the Server Details operation structure SHOULD be used. This structure is contained within the <spppServerStatusRequest> element whereas an SPPF server status response is wrapped within the <spppServerStatusResponse> element. The following subsections describe the <spppServerStatusRequest> and <spppServerStatusResponse> elements.

为了查询SPPF服务器的某些详细信息,例如SPPF服务器的状态以及服务器支持的主要/次要版本,应使用服务器详细信息操作结构。此结构包含在<spppServerStatusRequest>元素中,而SPPF服务器状态响应包装在<spppServerStatusResponse>元素中。以下小节描述<spppServerStatusRequest>和<spppServerStatusResponse>元素。

7.2.9.1. Get Server Details Request
7.2.9.1. 获取服务器详细信息请求

An SPPP over SOAP server details request structure is represented in the <spppServerStatusRequest> element as follows:

SPPP over SOAP服务器详细信息请求结构在<spppServerStatusRequest>元素中表示如下:

      <element name="spppServerStatusRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppServerStatusRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppServerStatusRequest> element are described as follows:

<spppServerStatusRequest>元素中的数据元素描述如下:

o minorVer: Zero or one minor version identifier, as defined in Section 7.4.

o minorVer:第7.4节中定义的零或一个次要版本标识符。

7.2.9.2. Get Server Details Response
7.2.9.2. 获取服务器详细信息响应

An SPPP over SOAP server details response structure is contained within the generic <spppServerStatusResponse> element.

SOAP服务器详细信息响应结构包含在generic<spppServerStatusResponse>元素中。

      <element name="spppServerStatusResponse">
       <complexType>
        <sequence>
         <element name="overallResult" type="sppfs:ResultCodeType"/>
         <element name="svcMenu" type="sppfb:SvcMenuType"/>
        </sequence>
       </complexType>
      </element>
        
      <element name="spppServerStatusResponse">
       <complexType>
        <sequence>
         <element name="overallResult" type="sppfs:ResultCodeType"/>
         <element name="svcMenu" type="sppfb:SvcMenuType"/>
        </sequence>
       </complexType>
      </element>
        

The data elements within the <spppServerStatusResponse> element are described as follows:

<spppServerStatusResponse>元素中的数据元素描述如下:

o overallResult: Exactly one response code and message pair that explicitly identifies the result of the request. See Section 7.3 for further details.

o 总体结果:只有一个响应代码和消息对明确标识请求的结果。详见第7.3节。

o svcMenu: Exactly one element of type SvcMenuType that, in turn, contains the elements to return the server status, the major and minor versions of SPPP over SOAP supported by the SPPF server (refer to Section 12 of [RFC7877] for the definition of SvcMenuType).

o svcMenu:SvcMenuType类型的一个元素正好包含返回服务器状态的元素,以及SPPF服务器支持的SPPP over SOAP的主要和次要版本(有关SvcMenuType的定义,请参阅[RFC7877]的第12节)。

7.3. Response Codes and Messages
7.3. 响应代码和消息

This section contains the listing of response codes and their corresponding human-readable text. These response codes are in conformance with the response types defined in Section 5.3 of [RFC7877].

本节包含响应代码及其相应的人类可读文本的列表。这些响应代码符合[RFC7877]第5.3节中定义的响应类型。

The response code numbering scheme generally adheres to the theory formalized in Section 4.2.1 of [RFC5321]:

响应代码编号方案通常遵循[RFC5321]第4.2.1节中规定的理论:

o The first digit of the response code can only be 1 or 2: 1 = a positive result, and 2 = a negative result.

o 响应代码的第一位数字只能是1或2:1=正结果,2=负结果。

o The second digit of the response code indicates the category: 0 = Protocol Syntax, 1 = Implementation Specific Business Rule, 2 = Security, and 3 = Server System.

o 响应代码的第二位数字表示类别:0=协议语法,1=特定于实现的业务规则,2=安全性,3=服务器系统。

o The third and fourth digits of the response code indicate the individual message event within the category defined by the first two digits.

o 响应代码的第三位和第四位表示前两位定义的类别内的单个消息事件。

The response codes are also categorized as to whether they are overall response codes that may only be returned in the overallResult data element in SPPF responses or object-level response codes that may only be returned in the detailResult element of the SPPF responses.

响应代码还根据以下分类:它们是可能仅在SPPF响应的overallResult数据元素中返回的总体响应代码,还是可能仅在SPPF响应的detailResult元素中返回的对象级响应代码。

   +--------+--------------------------+-------------------------------+
   | Result | Result Message           | Overall or Object Level       |
   | Code   |                          |                               |
   +--------+--------------------------+-------------------------------+
   | 1000   | Request succeeded        | Overall Response Code         |
   | 2000   | Request syntax invalid   | Overall Response Code         |
   | 2001   | Request too large        | Overall Response Code         |
   |        | MaxSupported:[Maximum    |                               |
   |        | requests supported]      |                               |
   | 2002   | Version not supported    | Overall Response Code         |
   | 2100   | Command invalid          | Overall Response Code         |
   | 2300   | System temporarily       | Overall Response Code         |
   |        | unavailable              |                               |
   | 2301   | Unexpected internal      | Overall Response Code         |
   |        | system or server error   |                               |
   | 2101   | Attribute value invalid  | Object-Level Response Code    |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   | 2102   | Object does not exist    | Object-Level Response Code    |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   | 2103   | Object status or         | Object-Level Response Code    |
   |        | ownership does not allow |                               |
   |        | for operation            |                               |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   +--------+--------------------------+-------------------------------+
        
   +--------+--------------------------+-------------------------------+
   | Result | Result Message           | Overall or Object Level       |
   | Code   |                          |                               |
   +--------+--------------------------+-------------------------------+
   | 1000   | Request succeeded        | Overall Response Code         |
   | 2000   | Request syntax invalid   | Overall Response Code         |
   | 2001   | Request too large        | Overall Response Code         |
   |        | MaxSupported:[Maximum    |                               |
   |        | requests supported]      |                               |
   | 2002   | Version not supported    | Overall Response Code         |
   | 2100   | Command invalid          | Overall Response Code         |
   | 2300   | System temporarily       | Overall Response Code         |
   |        | unavailable              |                               |
   | 2301   | Unexpected internal      | Overall Response Code         |
   |        | system or server error   |                               |
   | 2101   | Attribute value invalid  | Object-Level Response Code    |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   | 2102   | Object does not exist    | Object-Level Response Code    |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   | 2103   | Object status or         | Object-Level Response Code    |
   |        | ownership does not allow |                               |
   |        | for operation            |                               |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   +--------+--------------------------+-------------------------------+
        

Table 1: Response Code Numbering Scheme and Messages

表1:响应代码编号方案和消息

The response message for response code 2001 is "parameterized" with the following parameter: "[Maximum requests supported]". When the request is too large, this parameter MUST be used to indicate the maximum number of requests supported by the server in a single protocol operation.

响应代码2001的响应消息使用以下参数“参数化”:“[支持的最大请求]”。当请求太大时,必须使用此参数指示服务器在单个协议操作中支持的最大请求数。

Response code 2000 SHOULD be used when the XML Schema validation of requests fails.

当请求的XML模式验证失败时,应使用响应代码2000。

Each of the object-level response messages are "parameterized" with the following parameters: "AttributeName" and "AttributeValue".

每个对象级响应消息都使用以下参数“参数化”:“AttributeName”和“AttributeValue”。

For example, if an SPPF client sends a request to delete a Destination Group with a name "TestDG", and it does not already exist, then the error message returned should be: "Attribute value invalid. AttrName:dgName AttrVal:TestDG".

例如,如果SPPF客户端发送一个请求以删除一个名为“TestDG”的目标组,但该组不存在,则返回的错误消息应该是:“属性值无效。AttrName:dgName AttrVal:TestDG”。

The use of these parameters MUST adhere to the rules defined in Section 5.3 of [RFC7877].

这些参数的使用必须遵守[RFC7877]第5.3节中定义的规则。

7.4. Minor Version Identifier
7.4. 次要版本标识符

The minor version identifier element is defined as follows:

次要版本标识符元素定义如下:

o minorVer: Zero or one minor version identifier, indicating the minor version of the SPPP over SOAP API that the client is attempting to use. This is used in conjunction with the major version identifier in the XML Namespace to identify the version of SPPP over SOAP that the client is using. If the element is not present, the server assumes that the client is using the latest minor version of SPPP over SOAP supported by the SPPF server for the given major version. The versions of SPPP over SOAP supported by a given SPPF server can be retrieved by the client using this same spppServerStatusRequest without passing in the minorVer element.

o minorVer:零或一个次要版本标识符,指示客户端试图使用的SPPP over SOAP API的次要版本。这与XML命名空间中的主版本标识符结合使用,以标识客户端正在使用的基于SOAP的SPPP版本。如果元素不存在,服务器将假定客户端正在使用SPPF服务器为给定主版本支持的最新的SPPP over SOAP次要版本。客户端可以使用相同的spppServerStatusRequest检索给定SPPF服务器支持的SPPP over SOAP版本,而无需传入minorVer元素。

8. Protocol Operations
8. 协议操作

Refer to Section 7 of [RFC7877] for a description of all SPPF operations and any necessary semantics that MUST be adhered to in order to conform with SPPF.

请参阅[RFC7877]第7节,了解所有SPPF操作的说明以及为符合SPPF而必须遵守的任何必要语义。

9. SPPP over SOAP WSDL Definition
9. SOAPWSDL定义上的SPPP

The SPPP over SOAP WSDL and data types are defined below. The WSDL design approach is commonly referred to as "Generic WSDL". It is generic in the sense that there is not a specific WSDL operation defined for each object type that is supported by the SPPF protocol. There is a single WSDL structure for each type of SPPF operation. Each such WSDL structure contains exactly one input structure and one output structure that wraps any data elements that are part of the incoming request and the outgoing response, respectively. The spppSOAPBinding in the WSDL defines the binding style as "document" and the encoding as "literal". It is this combination of "wrapped" input and output data structures, "document" binding style, and "literal" encoding that characterize the Document Literal Wrapped style of WSDL specifications.

SOAPWSDL上的SPPP和数据类型定义如下。WSDL设计方法通常被称为“通用WSDL”。它是通用的,因为没有为SPPF协议支持的每个对象类型定义特定的WSDL操作。每种类型的SPPF操作都有一个WSDL结构。每个这样的WSDL结构只包含一个输入结构和一个输出结构,分别封装作为传入请求和传出响应一部分的任何数据元素。WSDL中的spppsappbinding将绑定样式定义为“document”,编码定义为“literal”。正是这种“包装”输入和输出数据结构、“文档”绑定样式和“文字”编码的组合,描述了WSDL规范的文档文字包装样式。

Notes: The following WSDL has been formatted (e.g., tabs, spaces) to meet IETF requirements. Deployments MUST replace "REPLACE_WITH_ACTUAL_URL" in the WSDL below with the URI of the SPPF server instance.

注:以下WSDL已格式化(例如,制表符、空格)以满足IETF要求。部署必须将下面WSDL中的“替换为实际URL”替换为SPPF服务器实例的URI。

   <?xml version="1.0" encoding="UTF-8"?>
   <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:sppfb="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
   targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
    <wsdl:types>
     <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
     targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
      <annotation>
       <documentation>
        ---- Import base schema ----
       </documentation>
      </annotation>
      <import namespace="urn:ietf:params:xml:ns:sppf:base:1"
      schemaLocation="sppfbase.xsd"/>
      <annotation>
       <documentation>
        ---- Key type(s) extended
        from base schema. ----
       </documentation>
      </annotation>
      <complexType name="ObjKeyType">
       <complexContent>
        <extension base="sppfb:ObjKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <element name="name" type="sppfb:ObjNameType"/>
          <element name="type" type="sppfs:ObjKeyTypeEnum"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
    <simpleType name="ObjKeyTypeEnum">
      <restriction base="token">
        <enumeration value="SedGrp"/>
        <enumeration value="DestGrp"/>
        <enumeration value="SedRec"/>
        <enumeration value="EgrRte"/>
      </restriction>
    </simpleType>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:sppfb="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
   targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
    <wsdl:types>
     <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
     targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
      <annotation>
       <documentation>
        ---- Import base schema ----
       </documentation>
      </annotation>
      <import namespace="urn:ietf:params:xml:ns:sppf:base:1"
      schemaLocation="sppfbase.xsd"/>
      <annotation>
       <documentation>
        ---- Key type(s) extended
        from base schema. ----
       </documentation>
      </annotation>
      <complexType name="ObjKeyType">
       <complexContent>
        <extension base="sppfb:ObjKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <element name="name" type="sppfb:ObjNameType"/>
          <element name="type" type="sppfs:ObjKeyTypeEnum"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
    <simpleType name="ObjKeyTypeEnum">
      <restriction base="token">
        <enumeration value="SedGrp"/>
        <enumeration value="DestGrp"/>
        <enumeration value="SedRec"/>
        <enumeration value="EgrRte"/>
      </restriction>
    </simpleType>
        
      <complexType name="SedGrpOfferKeyType">
       <complexContent>
        <extension base="sppfb:SedGrpOfferKeyType">
        
      <complexType name="SedGrpOfferKeyType">
       <complexContent>
        <extension base="sppfb:SedGrpOfferKeyType">
        
         <sequence>
          <element name="sedGrpKey"
          type="sppfs:ObjKeyType"/>
          <element name="offeredTo"
          type="sppfb:OrgIdType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
         <sequence>
          <element name="sedGrpKey"
          type="sppfs:ObjKeyType"/>
          <element name="offeredTo"
          type="sppfb:OrgIdType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <complexType name="PubIdKeyType">
       <complexContent>
        <extension base="sppfb:PubIdKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <choice>
           <element name="number"
           type="sppfb:NumberType"/>
           <element name="range"
           type="sppfb:NumberRangeType"/>
          </choice>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <complexType name="PubIdKeyType">
       <complexContent>
        <extension base="sppfb:PubIdKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <choice>
           <element name="number"
           type="sppfb:NumberType"/>
           <element name="range"
           type="sppfb:NumberRangeType"/>
          </choice>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
        
      <annotation>
       <documentation>
        ---- Generic Request and
        Response Definitions ----
       </documentation>
      </annotation>
      <element name="spppAddRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="obj" type="sppfb:BasicObjType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppDelRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
        
      <annotation>
       <documentation>
        ---- Generic Request and
        Response Definitions ----
       </documentation>
      </annotation>
      <element name="spppAddRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="obj" type="sppfb:BasicObjType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppDelRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
        
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAcceptRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppRejectRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppGetRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppBatchRequest">
       <complexType>
        <sequence>
        
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAcceptRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppRejectRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppGetRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppBatchRequest">
       <complexType>
        <sequence>
        
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
          <choice minOccurs="1" maxOccurs="unbounded">
           <element name="addObj" type="sppfb:BasicObjType"/>
           <element name="delObj" type="sppfb:ObjKeyType"/>
           <element name="acceptSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
           <element name="rejectSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
      <element name="spppServerStatusRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        </sequence>
       </complexType>
      </element>
      <element name="getSedGrpOffersRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        <element name="offeredBy"
        type="sppfb:OrgIdType" minOccurs="0"
        maxOccurs="unbounded"/>
        <element name="offeredTo" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="status"
        type="sppfb:SedGrpOfferStatusType" minOccurs="0"/>
        <element name="sedGrpOfferKey"
        type="sppfs:SedGrpOfferKeyType"
        minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAddResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
        
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
          <choice minOccurs="1" maxOccurs="unbounded">
           <element name="addObj" type="sppfb:BasicObjType"/>
           <element name="delObj" type="sppfb:ObjKeyType"/>
           <element name="acceptSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
           <element name="rejectSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
      <element name="spppServerStatusRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        </sequence>
       </complexType>
      </element>
      <element name="getSedGrpOffersRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        <element name="offeredBy"
        type="sppfb:OrgIdType" minOccurs="0"
        maxOccurs="unbounded"/>
        <element name="offeredTo" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="status"
        type="sppfb:SedGrpOfferStatusType" minOccurs="0"/>
        <element name="sedGrpOfferKey"
        type="sppfs:SedGrpOfferKeyType"
        minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAddResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
        
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:ObjResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppDelResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:ObjKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAcceptResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:SedGrpOfferKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppRejectResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
        
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:ObjResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppDelResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:ObjKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAcceptResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:SedGrpOfferKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppRejectResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
        
         type="sppfs:SedGrpOfferKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
       <element name="spppBatchResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
          <choice minOccurs="0" maxOccurs="unbounded">
           <element name="addResult"
                    type="sppfs:ObjResultCodeType"/>
           <element name="delResult"
                    type="sppfs:ObjKeyResultCodeType"/>
           <element name="acceptResult"
                    type="sppfs:SedGrpOfferKeyResultCodeType"/>
           <element name="rejectResult"
                  type="sppfs:SedGrpOfferKeyResultCodeType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
      <element name="spppGetResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="resultObj"
         type="sppfb:BasicObjType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppServerStatusResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="svcMenu"
         type="sppfb:SvcMenuType"/>
        </sequence>
       </complexType>
      </element>
        
         type="sppfs:SedGrpOfferKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
       <element name="spppBatchResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
          <choice minOccurs="0" maxOccurs="unbounded">
           <element name="addResult"
                    type="sppfs:ObjResultCodeType"/>
           <element name="delResult"
                    type="sppfs:ObjKeyResultCodeType"/>
           <element name="acceptResult"
                    type="sppfs:SedGrpOfferKeyResultCodeType"/>
           <element name="rejectResult"
                  type="sppfs:SedGrpOfferKeyResultCodeType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
      <element name="spppGetResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="resultObj"
         type="sppfb:BasicObjType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppServerStatusResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="svcMenu"
         type="sppfb:SvcMenuType"/>
        </sequence>
       </complexType>
      </element>
        
      <annotation>
       <documentation>
        ---- Operation Result Type
        Definitions ----
       </documentation>
      </annotation>
      <complexType name="ResultCodeType">
       <sequence>
        <element name="code" type="sppfs:ResultCodeValType"/>
        <element name="msg" type="sppfs:MsgType"/>
       </sequence>
      </complexType>
        
      <annotation>
       <documentation>
        ---- Operation Result Type
        Definitions ----
       </documentation>
      </annotation>
      <complexType name="ResultCodeType">
       <sequence>
        <element name="code" type="sppfs:ResultCodeValType"/>
        <element name="msg" type="sppfs:MsgType"/>
       </sequence>
      </complexType>
        
      <simpleType name="ResultCodeValType">
        <restriction base="unsignedShort">
          <enumeration value="1000"/>
          <enumeration value="2000"/>
          <enumeration value="2001"/>
          <enumeration value="2002"/>
          <enumeration value="2100"/>
          <enumeration value="2101"/>
          <enumeration value="2102"/>
          <enumeration value="2103"/>
          <enumeration value="2300"/>
          <enumeration value="2301"/>
        </restriction>
      </simpleType>
        
      <simpleType name="ResultCodeValType">
        <restriction base="unsignedShort">
          <enumeration value="1000"/>
          <enumeration value="2000"/>
          <enumeration value="2001"/>
          <enumeration value="2002"/>
          <enumeration value="2100"/>
          <enumeration value="2101"/>
          <enumeration value="2102"/>
          <enumeration value="2103"/>
          <enumeration value="2300"/>
          <enumeration value="2301"/>
        </restriction>
      </simpleType>
        
      <simpleType name="MsgType">
        <restriction base="token">
         <minLength value="3"/>
         <maxLength value="255"/>
        </restriction>
       </simpleType>
        
      <simpleType name="MsgType">
        <restriction base="token">
         <minLength value="3"/>
         <maxLength value="255"/>
        </restriction>
       </simpleType>
        
      <complexType name="ObjResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="obj" type="sppfb:BasicObjType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
      <complexType name="ObjKeyResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
        
      <complexType name="ObjResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="obj" type="sppfb:BasicObjType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
      <complexType name="ObjKeyResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
        
          <element name="objKey" type="sppfb:ObjKeyType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
         <complexType name="SedGrpOfferKeyResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="sedGrpOfferKey"
          type="sppfs:SedGrpOfferKeyType"/>
         </sequence>
        </extension>
       </complexContent>
       </complexType>
     </xsd:schema>
    </wsdl:types>
    <wsdl:message name="spppAddRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppAddRequest"/>
    </wsdl:message>
    <wsdl:message name="spppDelRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppDelRequest"/>
    </wsdl:message>
    <wsdl:message name="spppAcceptRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppAcceptRequest"/>
    </wsdl:message>
    <wsdl:message name="spppRejectRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppRejectRequest"/>
    </wsdl:message>
    <wsdl:message name="spppBatchRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppBatchRequest"/>
    </wsdl:message>
    <wsdl:message name="spppGetRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppGetRequest"/>
    </wsdl:message>
    <wsdl:message name="spppGetSedGrpOffersRequestMsg">
     <wsdl:part name="rqst" element="sppfs:getSedGrpOffersRequest"/>
    </wsdl:message>
    <wsdl:message name="spppAddResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppAddResponse"/>
    </wsdl:message>
     <wsdl:message name="spppDelResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppDelResponse"/>
    </wsdl:message>
     <wsdl:message name="spppAcceptResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppAcceptResponse"/>
    </wsdl:message>
     <wsdl:message name="spppRejectResponseMsg">
        
          <element name="objKey" type="sppfb:ObjKeyType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
         <complexType name="SedGrpOfferKeyResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="sedGrpOfferKey"
          type="sppfs:SedGrpOfferKeyType"/>
         </sequence>
        </extension>
       </complexContent>
       </complexType>
     </xsd:schema>
    </wsdl:types>
    <wsdl:message name="spppAddRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppAddRequest"/>
    </wsdl:message>
    <wsdl:message name="spppDelRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppDelRequest"/>
    </wsdl:message>
    <wsdl:message name="spppAcceptRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppAcceptRequest"/>
    </wsdl:message>
    <wsdl:message name="spppRejectRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppRejectRequest"/>
    </wsdl:message>
    <wsdl:message name="spppBatchRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppBatchRequest"/>
    </wsdl:message>
    <wsdl:message name="spppGetRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppGetRequest"/>
    </wsdl:message>
    <wsdl:message name="spppGetSedGrpOffersRequestMsg">
     <wsdl:part name="rqst" element="sppfs:getSedGrpOffersRequest"/>
    </wsdl:message>
    <wsdl:message name="spppAddResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppAddResponse"/>
    </wsdl:message>
     <wsdl:message name="spppDelResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppDelResponse"/>
    </wsdl:message>
     <wsdl:message name="spppAcceptResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppAcceptResponse"/>
    </wsdl:message>
     <wsdl:message name="spppRejectResponseMsg">
        
     <wsdl:part name="rspns" element="sppfs:spppRejectResponse"/>
    </wsdl:message>
     <wsdl:message name="spppBatchResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppBatchResponse"/>
    </wsdl:message>
    <wsdl:message name="spppGetResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppGetResponse"/>
    </wsdl:message>
    <wsdl:message name="spppServerStatusRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppServerStatusRequest"/>
    </wsdl:message>
    <wsdl:message name="spppServerStatusResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppServerStatusResponse"/>
    </wsdl:message>
    <wsdl:portType name="spppPortType">
     <wsdl:operation name="submitAddRqst">
      <wsdl:input message="sppfs:spppAddRequestMsg"/>
      <wsdl:output message="sppfs:spppAddResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitDelRqst">
      <wsdl:input message="sppfs:spppDelRequestMsg"/>
      <wsdl:output message="sppfs:spppDelResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitAcceptRqst">
      <wsdl:input message="sppfs:spppAcceptRequestMsg"/>
      <wsdl:output message="sppfs:spppAcceptResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitRejectRqst">
      <wsdl:input message="sppfs:spppRejectRequestMsg"/>
      <wsdl:output message="sppfs:spppRejectResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitBatchRqst">
      <wsdl:input message="sppfs:spppBatchRequestMsg"/>
      <wsdl:output message="sppfs:spppBatchResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitGetRqst">
      <wsdl:input message="sppfs:spppGetRequestMsg"/>
      <wsdl:output message="sppfs:spppGetResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitGetSedGrpOffersRqst">
      <wsdl:input message="sppfs:spppGetSedGrpOffersRequestMsg"/>
      <wsdl:output message="sppfs:spppGetResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitServerStatusRqst">
      <wsdl:input message="sppfs:spppServerStatusRequestMsg"/>
      <wsdl:output message="sppfs:spppServerStatusResponseMsg"/>
     </wsdl:operation>
    </wsdl:portType>
        
     <wsdl:part name="rspns" element="sppfs:spppRejectResponse"/>
    </wsdl:message>
     <wsdl:message name="spppBatchResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppBatchResponse"/>
    </wsdl:message>
    <wsdl:message name="spppGetResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppGetResponse"/>
    </wsdl:message>
    <wsdl:message name="spppServerStatusRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppServerStatusRequest"/>
    </wsdl:message>
    <wsdl:message name="spppServerStatusResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppServerStatusResponse"/>
    </wsdl:message>
    <wsdl:portType name="spppPortType">
     <wsdl:operation name="submitAddRqst">
      <wsdl:input message="sppfs:spppAddRequestMsg"/>
      <wsdl:output message="sppfs:spppAddResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitDelRqst">
      <wsdl:input message="sppfs:spppDelRequestMsg"/>
      <wsdl:output message="sppfs:spppDelResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitAcceptRqst">
      <wsdl:input message="sppfs:spppAcceptRequestMsg"/>
      <wsdl:output message="sppfs:spppAcceptResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitRejectRqst">
      <wsdl:input message="sppfs:spppRejectRequestMsg"/>
      <wsdl:output message="sppfs:spppRejectResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitBatchRqst">
      <wsdl:input message="sppfs:spppBatchRequestMsg"/>
      <wsdl:output message="sppfs:spppBatchResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitGetRqst">
      <wsdl:input message="sppfs:spppGetRequestMsg"/>
      <wsdl:output message="sppfs:spppGetResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitGetSedGrpOffersRqst">
      <wsdl:input message="sppfs:spppGetSedGrpOffersRequestMsg"/>
      <wsdl:output message="sppfs:spppGetResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitServerStatusRqst">
      <wsdl:input message="sppfs:spppServerStatusRequestMsg"/>
      <wsdl:output message="sppfs:spppServerStatusResponseMsg"/>
     </wsdl:operation>
    </wsdl:portType>
        
    <wsdl:binding name="spppSoapBinding" type="sppfs:spppPortType">
     <soap:binding style="document"
     transport="http://schemas.xmlsoap.org/soap/http"/>
     <wsdl:operation name="submitAddRqst">
      <soap:operation soapAction="submitAddRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitDelRqst">
      <soap:operation soapAction="submitDelRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitAcceptRqst">
      <soap:operation soapAction="submitAcceptRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitRejectRqst">
      <soap:operation soapAction="submitRejectRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitBatchRqst">
      <soap:operation soapAction="submitBatchRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
        
    <wsdl:binding name="spppSoapBinding" type="sppfs:spppPortType">
     <soap:binding style="document"
     transport="http://schemas.xmlsoap.org/soap/http"/>
     <wsdl:operation name="submitAddRqst">
      <soap:operation soapAction="submitAddRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitDelRqst">
      <soap:operation soapAction="submitDelRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitAcceptRqst">
      <soap:operation soapAction="submitAcceptRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitRejectRqst">
      <soap:operation soapAction="submitRejectRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitBatchRqst">
      <soap:operation soapAction="submitBatchRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
        
     <wsdl:operation name="submitGetRqst">
      <soap:operation soapAction="submitGetRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitGetSedGrpOffersRqst">
      <soap:operation soapAction="submitGetSedGrpOffersRqst"
      style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitServerStatusRqst">
      <soap:operation soapAction="submitServerStatusRqst"
      style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="spppService">
     <wsdl:port name="spppPort" binding="sppfs:spppSoapBinding">
      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
     </wsdl:port>
    </wsdl:service>
   </wsdl:definitions>
        
     <wsdl:operation name="submitGetRqst">
      <soap:operation soapAction="submitGetRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitGetSedGrpOffersRqst">
      <soap:operation soapAction="submitGetSedGrpOffersRqst"
      style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitServerStatusRqst">
      <soap:operation soapAction="submitServerStatusRqst"
      style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="spppService">
     <wsdl:port name="spppPort" binding="sppfs:spppSoapBinding">
      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
     </wsdl:port>
    </wsdl:service>
   </wsdl:definitions>
        

Figure 2: WSDL

图2:WSDL

10. SPPP over SOAP Examples
10. SOAP上的SPPP示例

This section shows an XML message exchange between two SIP Service Providers (SSPs) and a Registry. The messages in this section are valid XML instances that conform to the SPPP over SOAP schema version within this document. This section also relies on the XML data structures defined in the SPPF specification [RFC7877], which should also be referenced to understand XML object types embedded in these example messages.

本节显示两个SIP服务提供商(SSP)和一个注册表之间的XML消息交换。本节中的消息是符合本文档中SPPP over SOAP模式版本的有效XML实例。本节还依赖于SPPF规范[RFC7877]中定义的XML数据结构,在理解这些示例消息中嵌入的XML对象类型时也应参考这些数据结构。

In this sample use-case scenario, SSP1 and SSP2 provision resource data in the Registry and use SPPF constructs to selectively share the SED Groups. In the figure below, SSP2 has two ingress Signaling Path Border Element (SBE) instances that are associated with the Public Identities with which SSP2 has the retail relationship. Also, the two SBE instances for SSP1 are used to show how to use SPPF to associate route preferences for the destination Ingress Routes and exercise greater control on outbound traffic to the peer's ingress SBEs.

在这个示例用例场景中,SSP1和SSP2在注册表中提供资源数据,并使用SPPF构造有选择地共享SED组。在下图中,SSP2具有两个入口信令路径边界元素(SBE)实例,它们与SSP2具有零售关系的公共标识相关联。此外,SSP1的两个SBE实例用于展示如何使用SPPF将目的地入口路由的路由首选项关联起来,并对对等方入口SBE的出站流量实施更大的控制。

      ---------------+                      +------------------
                     |                      |
                 +------+               +------+
                 | sbe1 |               | sbe2 |
                 +------+               +------+
       SSP1          |                      |           SSP2
                 +------+               +------+
                 | sbe3 |               | sbe4 |
                 +------+               +------+
      iana-en:111    |                      |     iana-en:222
      ---------------+                      +------------------
              |                                     |
              |                                     |
              | SPPF   +------------------+   SPPF  |
              +------->|     Registry     |<--------+
                       +------------------+
        
      ---------------+                      +------------------
                     |                      |
                 +------+               +------+
                 | sbe1 |               | sbe2 |
                 +------+               +------+
       SSP1          |                      |           SSP2
                 +------+               +------+
                 | sbe3 |               | sbe4 |
                 +------+               +------+
      iana-en:111    |                      |     iana-en:222
      ---------------+                      +------------------
              |                                     |
              |                                     |
              | SPPF   +------------------+   SPPF  |
              +------->|     Registry     |<--------+
                       +------------------+
        

Example Use-Case Infrastructure

示例用例基础设施

10.1. Add Destination Group
10.1. 添加目标组

SSP2 adds a Destination Group to the Registry for later use. The SSP2 SPPF client sets a unique transaction identifier "txn_1479" for tracking purposes. The name of the Destination Group is set to DEST_GRP_SSP2_1.

SSP2将目标组添加到注册表以供以后使用。SSP2 SPPF客户端设置一个唯一的事务标识符“txn_1479”用于跟踪。目标组的名称设置为DEST_GRP_SSP2_1。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:DestGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:DestGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry processes the request and returns a favorable response confirming successful creation of the named Destination Group. In addition to returning a unique server transaction identifier, the Registry returns the matching client transaction identifier from the request message back to the SPPF client.

注册表处理该请求并返回一个有利的响应,确认已成功创建命名的目标组。除了返回唯一的服务器事务标识符外,注册表还将请求消息中匹配的客户端事务标识符返回给SPPF客户端。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
   xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
   xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.2. Add SED Records
10.2. 添加SED记录

SSP2 adds SED Records in the form of Ingress Routes to the Registry.

SSP2以入口路由的形式将SED记录添加到注册表。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
      <!--1 or more repetitions:-->
      <obj xsi:type="urn1:NAPTRType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedName>SED_SSP2_SBE2</urn1:sedName>
       <urn1:isInSvc>true</urn1:isInSvc>
       <urn1:order>10</urn1:order>
       <urn1:flags>u</urn1:flags>
       <urn1:svcs>E2U+sip</urn1:svcs>
       <urn1:regx>
        <urn1:ere>^(.*)$</urn1:ere>
        <urn1:repl>sip:\1@sbe2.ssp2.example.com</urn1:repl>
       </urn1:regx>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
      <!--1 or more repetitions:-->
      <obj xsi:type="urn1:NAPTRType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedName>SED_SSP2_SBE2</urn1:sedName>
       <urn1:isInSvc>true</urn1:isInSvc>
       <urn1:order>10</urn1:order>
       <urn1:flags>u</urn1:flags>
       <urn1:svcs>E2U+sip</urn1:svcs>
       <urn1:regx>
        <urn1:ere>^(.*)$</urn1:ere>
        <urn1:repl>sip:\1@sbe2.ssp2.example.com</urn1:repl>
       </urn1:regx>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry returns a success response.

注册表返回一个成功响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
   xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
   xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.3. Add SED Records -- URIType
10.3. 添加SED记录--URIType

SSP2 adds another SED Record to the Registry and makes use of URIType.

SSP2将另一个SED记录添加到注册表并使用URIType。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:URIType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedName>SED_SSP2_SBE4</urn1:sedName>
       <urn1:isInSvc>true</urn1:isInSvc>
       <urn1:ere>^(.*)$</urn1:ere>
       <urn1:uri>sip:\1;npdi@sbe4.ssp2.example.com</urn1:uri>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:URIType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedName>SED_SSP2_SBE4</urn1:sedName>
       <urn1:isInSvc>true</urn1:isInSvc>
       <urn1:ere>^(.*)$</urn1:ere>
       <urn1:uri>sip:\1;npdi@sbe4.ssp2.example.com</urn1:uri>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry returns a success response.

注册表返回一个成功响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.4. Add SED Group
10.4. 添加SED组

SSP2 creates the grouping of SED Records (e.g., Ingress Routes) and chooses a higher precedence for SED_SSP2_SBE2 by setting a lower number for the "priority" attribute, a protocol agnostic precedence indicator.

SSP2创建SED记录分组(例如,入口路由),并通过为“优先级”属性(协议不可知的优先级指示符)设置较低的数字,为SED_SSP2_SBE2选择较高的优先级。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:SedGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpName>SED_GRP_SSP2_1</urn1:sedGrpName>
       <urn1:sedRecRef>
        <urn1:sedKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE2</name>
         <type>SedRec</type>
        </urn1:sedKey>
        <urn1:priority>100</urn1:priority>
       </urn1:sedRecRef>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:isInSvc>true</urn1:isInSvc>
       <urn1:priority>10</urn1:priority>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:SedGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpName>SED_GRP_SSP2_1</urn1:sedGrpName>
       <urn1:sedRecRef>
        <urn1:sedKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE2</name>
         <type>SedRec</type>
        </urn1:sedKey>
        <urn1:priority>100</urn1:priority>
       </urn1:sedRecRef>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:isInSvc>true</urn1:isInSvc>
       <urn1:priority>10</urn1:priority>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

To confirm successful processing of this request, the Registry returns a well-known result code "1000" to the SSP2 client.

要确认成功处理此请求,注册表将向SSP2客户端返回一个众所周知的结果代码“1000”。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.5. Add Public Identifier -- Successful COR Claim
10.5. 添加公共标识符--成功的COR声明

SSP2 activates a TN Public Identifier by associating it with a valid Destination Group. Further, SSP2 puts forth a claim that it is the carrier-of-record (COR) for the TN.

SSP2通过将TN公共标识符与有效的目标组关联来激活TN公共标识符。此外,SSP2提出其是TN的记录载体(COR)的主张。

   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:TNType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:tn>+12025556666</urn1:tn>
       <urn1:corInfo>
        <urn1:corClaim>true</urn1:corClaim>
       </urn1:corInfo>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
   xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:TNType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:tn>+12025556666</urn1:tn>
       <urn1:corInfo>
        <urn1:corClaim>true</urn1:corClaim>
       </urn1:corInfo>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

Assuming that the Registry has access to TN authority data and it performs the required checks to verify that SSP2 is in fact the SP of record for the given TN, the request is processed successfully. In the response message, the Registry sets the value of <cor> to "true" in order to confirm the SSP2 claim as the carrier-of-record, and the <corDate> reflects the time when the carrier-of-record claim is processed.

假设注册表可以访问TN授权数据,并执行所需检查以验证SSP2实际上是给定TN的记录SP,则请求将成功处理。在响应消息中,注册表将<cor>的值设置为“true”,以确认SSP2声明为记录载体,并且<corDate>反映处理记录载体声明的时间。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
      <detailResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
       <obj xsi:type="ns2:TNType">
        <ns2:rant>iana-en:222</ns2:rant>
        <ns2:rar>iana-en:223</ns2:rar>
        <ns2:cDate>2010-05-30T09:30:10Z</ns2:cDate>
        <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
        <ns2:tn>+12025556666</ns2:tn>
        <ns2:corInfo>
         <ns2:corClaim>true</ns2:corClaim>
         <ns2:cor>true</ns2:cor>
         <ns2:corDate>2010-05-30T09:30:11Z</ns2:corDate>
        </ns2:corInfo>
       </obj>
      </detailResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
      <detailResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
       <obj xsi:type="ns2:TNType">
        <ns2:rant>iana-en:222</ns2:rant>
        <ns2:rar>iana-en:223</ns2:rar>
        <ns2:cDate>2010-05-30T09:30:10Z</ns2:cDate>
        <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
        <ns2:tn>+12025556666</ns2:tn>
        <ns2:corInfo>
         <ns2:corClaim>true</ns2:corClaim>
         <ns2:cor>true</ns2:cor>
         <ns2:corDate>2010-05-30T09:30:11Z</ns2:corDate>
        </ns2:corInfo>
       </obj>
      </detailResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.6. Add LRN
10.6. 添加LRN

If another entity that SSP2 shares SED (e.g., routes) with has access to Number Portability data, it may choose to perform route lookups by RN. Therefore, SSP2 associates an RN to a Destination Group in order to facilitate Ingress Route discovery.

如果SSP2共享SED(例如路由)的另一个实体可以访问号码可移植性数据,则它可以选择通过RN执行路由查找。因此,SSP2将RN与目的地组相关联以促进入口路由发现。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:RNType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:rn>2025550000</urn1:rn>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:RNType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:rn>2025550000</urn1:rn>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response to the SPPF client.

注册表成功完成请求并向SPPF客户端返回有利响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.7. Add TN Range
10.7. 添加TN范围

Next, SSP2 activates a block of ten thousand TNs and associates it to a Destination Group.

接下来,SSP2激活一万个TN块并将其与目标组关联。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:TNRType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:range>
        <urn1:startTn>+12026660000</urn1:startTn>
        <urn1:endTn>+12026669999</urn1:endTn>
       </urn1:range>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:TNRType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:range>
        <urn1:startTn>+12026660000</urn1:startTn>
        <urn1:endTn>+12026669999</urn1:endTn>
       </urn1:range>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.8. Add TN Prefix
10.8. 添加TN前缀

Next, SSP2 activates a block of ten thousand TNs by using the TNPType structure and identifying a TN prefix.

接下来,SSP2通过使用TNPType结构和识别TN前缀来激活一万TN的块。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:TNPType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:tnPrefix>+1202777</urn1:tnPrefix>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:TNPType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
       <urn1:tnPrefix>+1202777</urn1:tnPrefix>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.9. Enable Peering -- SED Group Offer
10.9. 启用对等--SED组提供

In order for SSP1 to complete session establishment for a destination TN where the target subscriber has a retail relationship with SSP2, it first requires an asynchronous bidirectional handshake to show mutual consent. To start the process, SSP2 initiates the peering handshake by offering SSP1 access to its SED Group.

为了使SSP1完成目标订户与SSP2具有零售关系的目的地TN的会话建立,它首先需要异步双向握手以表示相互同意。为了启动该过程,SSP2通过向其SED组提供SSP1访问来启动对等握手。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:SedGrpOfferType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpOfferKey xsi:type="urn:SedGrpOfferKeyType">
        <sedGrpKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_GRP_SSP2_1</name>
         <type>SedGrp</type>
        </sedGrpKey>
        <offeredTo>iana-en:111</offeredTo>
       </urn1:sedGrpOfferKey>
       <urn1:status>offered</urn1:status>
       <urn1:offerDateTime>
         2006-05-04T18:13:51.0Z
       </urn1:offerDateTime>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:SedGrpOfferType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpOfferKey xsi:type="urn:SedGrpOfferKeyType">
        <sedGrpKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_GRP_SSP2_1</name>
         <type>SedGrp</type>
        </sedGrpKey>
        <offeredTo>iana-en:111</offeredTo>
       </urn1:sedGrpOfferKey>
       <urn1:status>offered</urn1:status>
       <urn1:offerDateTime>
         2006-05-04T18:13:51.0Z
       </urn1:offerDateTime>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and confirms that the SSP1 will now have the opportunity to weigh in on the offer and either accept or reject it. The Registry may employ out-of-band notification mechanisms for quicker updates to SSP1 so they can act faster, though this topic is beyond the scope of this document.

注册中心成功地完成了请求,并确认SSP1现在将有机会参与报价并接受或拒绝报价。注册表可能会使用带外通知机制来更快地更新SSP1,因此它们可以更快地执行操作,尽管本主题超出了本文档的范围。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.10. Enable Peering -- SED Group Offer Accept
10.10. 启用对等--SED组提供接受

SSP1 responds to the offer from SSP2 and agrees to have visibility to SSP2 SED (e.g., Ingress Routes).

SSP1响应SSP2的报价,并同意了解SSP2 SED(如入口路线)。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAcceptRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <sedGrpOfferKey>
       <sedGrpKey>
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:111</offeredTo>
      </sedGrpOfferKey>
     </urn:spppAcceptRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAcceptRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <sedGrpOfferKey>
       <sedGrpKey>
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:111</offeredTo>
      </sedGrpOfferKey>
     </urn:spppAcceptRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry confirms that the request has been processed successfully. From this point forward, if SSP1 looks up a Public Identifier through the query resolution server, where the Public Identifier is part of the Destination Group by way of "SED_GRP_SSP2_1" SED association, SSP2 ingress SBE information will be shared with SSP1.

注册表确认请求已成功处理。从这一点开始,如果SSP1通过查询解析服务器查找公共标识符,其中公共标识符通过“SED_GRP_SSP2_1”SED关联是目标组的一部分,则SSP2入口SBE信息将与SSP1共享。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAcceptResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12350</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAcceptResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAcceptResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12350</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAcceptResponse>
    </S:Body>
   </S:Envelope>
        
10.11. Add Egress Route
10.11. 添加出口路线

SSP1 wants to prioritize all outbound traffic to the Ingress Route associated with the "SED_GRP_SSP2_1" SED Group record, through "sbe1.ssp1.example.com".

SSP1希望通过“sbe1.SSP1.example.com”对与“SED_GRP_SSP2_1”SED组记录关联的入口路由的所有出站流量进行优先级排序。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:EgrRteType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:egrRteName>EGR_RTE_01</urn1:egrRteName>
       <urn1:pref>50</urn1:pref>
       <urn1:regxRewriteRule>
        <urn1:ere>^(.*@)(.*)$</urn1:ere>
        <urn1:repl>\1\2?route=sbe1.ssp1.example.com</urn1:repl>
       </urn1:regxRewriteRule>
       <urn1:ingrSedGrp xsi:type="urn:ObjKeyType">
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </urn1:ingrSedGrp>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppAddRequest>
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <obj xsi:type="urn1:EgrRteType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:egrRteName>EGR_RTE_01</urn1:egrRteName>
       <urn1:pref>50</urn1:pref>
       <urn1:regxRewriteRule>
        <urn1:ere>^(.*@)(.*)$</urn1:ere>
        <urn1:repl>\1\2?route=sbe1.ssp1.example.com</urn1:repl>
       </urn1:regxRewriteRule>
       <urn1:ingrSedGrp xsi:type="urn:ObjKeyType">
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </urn1:ingrSedGrp>
      </obj>
     </urn:spppAddRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

Since peering has already been established, the request to add the Egress Route has been successfully completed.

由于已建立对等,添加出口路由的请求已成功完成。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppAddResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12345</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppAddResponse>
    </S:Body>
   </S:Envelope>
        
10.12. Remove Peering -- SED Group Offer Reject
10.12. 删除对等--SED组提供拒绝

Earlier, SSP1 had accepted having visibility to SSP2 SED. SSP1 now decides to no longer maintain this visibility; hence, it rejects the SED Group Offer.

早些时候,SSP1接受了对SSP2 SED的可见性。SSP1现在决定不再保持这种可见性;因此,它拒绝了SED集团的提议。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppRejectRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <sedGrpOfferKey>
       <sedGrpKey>
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:111</offeredTo>
      </sedGrpOfferKey>
     </urn:spppRejectRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppRejectRequest>
      <!--Optional:-->
      <clientTransId>txn_1479</clientTransId>
       <!--1 or more repetitions:-->
      <sedGrpOfferKey>
       <sedGrpKey>
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:111</offeredTo>
      </sedGrpOfferKey>
     </urn:spppRejectRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry confirms that the request has been processed successfully. From this point forward, if SSP1 looks up a Public Identifier through the query resolution server, where the Public Identifier is part of the Destination Group by way of "SED_GRP_SSP2_1" SED association, SSP2 ingress SBE information will not be shared with SSP1; hence, an SSP2 ingress SBE will not be returned in the query response.

注册表确认请求已成功处理。从这一点开始,如果SSP1通过查询解析服务器查找公共标识符,其中公共标识符是通过“SED_GRP_SSP2_1”SED关联的目的地组的一部分,则SSP2入口SBE信息将不会与SSP1共享;因此,查询响应中将不会返回SSP2入口SBE。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppRejectResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12350</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppRejectResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppRejectResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <clientTransId>txn_1479</clientTransId>
      <serverTransId>tx_12350</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppRejectResponse>
    </S:Body>
   </S:Envelope>
        
10.13. Get Destination Group
10.13. 获取目标组

SSP2 uses the spppGetRequest operation to tally the last provisioned record for Destination Group DEST_GRP_SSP2_1.

SSP2使用spppGetRequest操作对目标组DEST_GRP_SSP2_1的最后一条配置记录进行计数。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>DEST_GRP_SSP2_1</name>
       <type>DestGrp</type>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>DEST_GRP_SSP2_1</name>
       <type>DestGrp</type>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:DestGrpType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:DestGrpType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
10.14. Get Public Identifier
10.14. 获取公共标识符

SSP2 obtains the last provisioned record associated with a given TN.

SSP2获取与给定TN关联的最后一个配置的记录。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:PubIdKeyType">
       <rant>iana-en:222</rant>
       <number>
        <urn1:value>+12025556666</urn1:value>
        <urn1:type>TN</urn1:type>
       </number>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:PubIdKeyType">
       <rant>iana-en:222</rant>
       <number>
        <urn1:value>+12025556666</urn1:value>
        <urn1:type>TN</urn1:type>
       </number>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:TNType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
       <ns2:tn>+12025556666</ns2:tn>
       <ns2:corInfo>
        <ns2:corClaim>true</ns2:corClaim>
        <ns2:cor>true</ns2:cor>
        <ns2:corDate>2010-05-30T09:30:10Z</ns2:corDate>
       </ns2:corInfo>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:TNType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
       <ns2:tn>+12025556666</ns2:tn>
       <ns2:corInfo>
        <ns2:corClaim>true</ns2:corClaim>
        <ns2:cor>true</ns2:cor>
        <ns2:corDate>2010-05-30T09:30:10Z</ns2:corDate>
       </ns2:corInfo>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
10.15. Get SED Group Request
10.15. 获取SED组请求

SSP2 obtains the last provisioned record for the SED Group SED_GRP_SSP2_1.

SSP2获取SED组SED_GRP_SSP2_1的最后一个配置记录。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>SED_GRP_SSP2_1</name>
       <type>SedGrp</type>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>SED_GRP_SSP2_1</name>
       <type>SedGrp</type>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:SedGrpType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:sedGrpName>SED_GRP_SSP2_1</ns2:sedGrpName>
       <ns2:sedRecRef>
        <ns2:sedKey xsi:type="ns3:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE2</name>
         <type>SedRec</type>
        </ns2:sedKey>
        <ns2:priority>100</ns2:priority>
       </ns2:sedRecRef>
       <ns2:sedRecRef>
        <ns2:sedKey xsi:type="ns3:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE4</name>
         <type>SedRec</type>
        </ns2:sedKey>
        <ns2:priority>101</ns2:priority>
       </ns2:sedRecRef>
       <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
       <ns2:isInSvc>true</ns2:isInSvc>
       <ns2:priority>10</ns2:priority>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:SedGrpType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:sedGrpName>SED_GRP_SSP2_1</ns2:sedGrpName>
       <ns2:sedRecRef>
        <ns2:sedKey xsi:type="ns3:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE2</name>
         <type>SedRec</type>
        </ns2:sedKey>
        <ns2:priority>100</ns2:priority>
       </ns2:sedRecRef>
       <ns2:sedRecRef>
        <ns2:sedKey xsi:type="ns3:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE4</name>
         <type>SedRec</type>
        </ns2:sedKey>
        <ns2:priority>101</ns2:priority>
       </ns2:sedRecRef>
       <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
       <ns2:isInSvc>true</ns2:isInSvc>
       <ns2:priority>10</ns2:priority>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
10.16. Get SED Group Offers Request
10.16. 获取SED组报价请求

SSP2 fetches the last provisioned SED Group Offer to the <peeringOrg> SSP1.

SSP2将最后一次配置的SED组提供获取到<peeringOrg>SSP1。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:getSedGrpOffersRequest>
      <offeredTo>iana-en:111</offeredTo>
     </urn:getSedGrpOffersRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:getSedGrpOffersRequest>
      <offeredTo>iana-en:111</offeredTo>
     </urn:getSedGrpOffersRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry processes the request successfully and returns a favorable response.

注册表成功地处理请求并返回有利的响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:SedGrpOfferType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:sedGrpOfferKey
        xsi:type="ns3:SedGrpOfferKeyType">
        <sedGrpKey>
         <rant>iana-en:222</rant>
         <name>SED_GRP_SSP2_1</name>
         <type>SedGrp</type>
        </sedGrpKey>
        <offeredTo>iana-en:111</offeredTo>
       </ns2:sedGrpOfferKey>
       <ns2:status>offered</ns2:status>
       <ns2:offerDateTime>
        2006-05-04T18:13:51.0Z
       </ns2:offerDateTime>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:SedGrpOfferType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:sedGrpOfferKey
        xsi:type="ns3:SedGrpOfferKeyType">
        <sedGrpKey>
         <rant>iana-en:222</rant>
         <name>SED_GRP_SSP2_1</name>
         <type>SedGrp</type>
        </sedGrpKey>
        <offeredTo>iana-en:111</offeredTo>
       </ns2:sedGrpOfferKey>
       <ns2:status>offered</ns2:status>
       <ns2:offerDateTime>
        2006-05-04T18:13:51.0Z
       </ns2:offerDateTime>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
10.17. Get Egress Route
10.17. 走出口路线

SSP1 wants to verify the last provisioned record for the Egress Route called EGR_RTE_01.

SSP1希望验证名为EGR_RTE_01的出口路线的最后配置记录。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:111</rant>
       <name>EGR_RTE_01</name>
       <type>EgrRte</type>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppGetRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:111</rant>
       <name>EGR_RTE_01</name>
       <type>EgrRte</type>
      </objKey>
     </urn:spppGetRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:EgrRteType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:egrRteName>EGR_RTE_01</ns2:egrRteName>
       <ns2:pref>50</ns2:pref>
       <ns2:regxRewriteRule>
        <ns2:ere>^(.*)$</ns2:ere>
        <ns2:repl>sip:\1@sbe1.ssp1.example.com</ns2:repl>
       </ns2:regxRewriteRule>
       <ns2:ingrSedGrp xsi:type="ns3:ObjKeyType">
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedRec</type>
       </ns2:ingrSedGrp>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <S:Body>
     <ns3:spppGetResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <overallResult>
       <code>1000</code>
       <msg>success</msg>
      </overallResult>
      <resultObj xsi:type="ns2:EgrRteType">
       <ns2:rant>iana-en:222</ns2:rant>
       <ns2:rar>iana-en:223</ns2:rar>
       <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
       <ns2:egrRteName>EGR_RTE_01</ns2:egrRteName>
       <ns2:pref>50</ns2:pref>
       <ns2:regxRewriteRule>
        <ns2:ere>^(.*)$</ns2:ere>
        <ns2:repl>sip:\1@sbe1.ssp1.example.com</ns2:repl>
       </ns2:regxRewriteRule>
       <ns2:ingrSedGrp xsi:type="ns3:ObjKeyType">
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedRec</type>
       </ns2:ingrSedGrp>
      </resultObj>
     </ns3:spppGetResponse>
    </S:Body>
   </S:Envelope>
        
10.18. Delete Destination Group
10.18. 删除目标组

SSP2 initiates a request to delete the Destination Group DEST_GRP_SSP2_1.

SSP2启动删除目标组DEST_GRP_SSP2_1的请求。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
       <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>DEST_GRP_SSP2_1</name>
       <type>DestGrp</type>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
       <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>DEST_GRP_SSP2_1</name>
       <type>DestGrp</type>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
10.19. Delete Public Identifier
10.19. 删除公共标识符

SSP2 chooses to deactivate the TN and remove it from the Registry.

SSP2选择停用TN并将其从注册表中删除。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:PubIdKeyType">
       <rant>iana-en:222</rant>
       <number>
        <urn1:value>+12025556666</urn1:value>
        <urn1:type>TN</urn1:type>
       </number>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:PubIdKeyType">
       <rant>iana-en:222</rant>
       <number>
        <urn1:value>+12025556666</urn1:value>
        <urn1:type>TN</urn1:type>
       </number>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
10.20. Delete SED Group Request
10.20. 删除SED组请求

SSP2 removes the SED Group called SED_GRP_SSP2_1.

SSP2删除名为SED_GRP_SSP2_1的SED组。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
       <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>SED_GRP_SSP2_1</name>
       <type>SedGrp</type>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
       <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>SED_GRP_SSP2_1</name>
       <type>SedGrp</type>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
10.21. Delete SED Group Offers Request
10.21. 删除SED组报价请求

SSP2 no longer wants to share SED Group SED_GRP_SSP2_1 with SSP1.

SSP2不再希望与SSP1共享SED组SED_GRP_SSP2_1。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
       <!--1 or more repetitions:-->
      <objKey xsi:type="urn:SedGrpOfferKeyType">
       <sedGrpKey>
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:111</offeredTo>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
       <!--1 or more repetitions:-->
      <objKey xsi:type="urn:SedGrpOfferKeyType">
       <sedGrpKey>
        <rant>iana-en:222</rant>
        <name>SED_GRP_SSP2_1</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:111</offeredTo>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response. Restoring this resource sharing will require a new SED Group Offer from SSP2 to SSP1 followed by a successful SED Group Accept request from SSP1.

注册表成功完成请求并返回良好响应。要恢复此资源共享,需要从SSP2向SSP1发送新的SED组要约,然后从SSP1发送成功的SED组接受请求。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
10.22. Delete Egress Route
10.22. 删除出口路由

SSP1 decides to remove the Egress Route with the label EGR_RTE_01.

SSP1决定移除带有标签EGR_RTE_01的出口路线。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:111</rant>
       <name>EGR_RTE_01</name>
       <type>EgrRte</type>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppDelRequest>
      <!--1 or more repetitions:-->
      <objKey xsi:type="urn:ObjKeyType">
       <rant>iana-en:111</rant>
       <name>EGR_RTE_01</name>
       <type>EgrRte</type>
      </objKey>
     </urn:spppDelRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppDelResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppDelResponse>
    </S:Body>
   </S:Envelope>
        
10.23. Batch Request
10.23. 批量请求

Following is an example of how some of the operations mentioned in previous sections MAY be performed by an SPPF client as a batch in one single SPPP over SOAP request.

下面是一个示例,说明了SPPF客户机如何在单个SPPP over SOAP请求中作为批处理执行前面几节中提到的一些操作。

In the sample request below, SSP1 wants to accept a SED Group Offer from SSP3, add a Destination Group, add a Naming Authority Pointer (NAPTR) SED Record, add a SED Group, add a SED Group Offer, delete a previously provisioned TN type Public Identifier, delete a previously provisioned SED Group, and reject a SED Group Offer from SSP4.

在下面的示例请求中,SSP1希望接受来自SSP3的SED组提供、添加目标组、添加命名机构指针(NAPTR)SED记录、添加SED组、添加SED组提供、删除先前提供的TN类型公共标识符、删除先前提供的SED组以及拒绝来自SSP4的SED组提供。

   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppBatchRequest>
      <clientTransId>txn_1467</clientTransId>
      <minorVer>1</minorVer>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
    xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
     <urn:spppBatchRequest>
      <clientTransId>txn_1467</clientTransId>
      <minorVer>1</minorVer>
        
      <acceptSedGrpOffer>
       <sedGrpKey>
        <rant>iana-en:225</rant>
        <name>SED_SSP3_SBE1_Offered</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:222</offeredTo>
      </acceptSedGrpOffer>
        
      <acceptSedGrpOffer>
       <sedGrpKey>
        <rant>iana-en:225</rant>
        <name>SED_SSP3_SBE1_Offered</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:222</offeredTo>
      </acceptSedGrpOffer>
        
      <addObj xsi:type="urn1:DestGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
      </addObj>
        
      <addObj xsi:type="urn1:DestGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
      </addObj>
        
      <addObj xsi:type="urn1:NAPTRType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedName>SED_SSP2_SBE2</urn1:sedName>
       <urn1:order>10</urn1:order>
       <urn1:flags>u</urn1:flags>
       <urn1:svcs>E2U+sip</urn1:svcs>
        
      <addObj xsi:type="urn1:NAPTRType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedName>SED_SSP2_SBE2</urn1:sedName>
       <urn1:order>10</urn1:order>
       <urn1:flags>u</urn1:flags>
       <urn1:svcs>E2U+sip</urn1:svcs>
        
       <urn1:regx>
        <urn1:ere>^(.*)$</urn1:ere>
        <urn1:repl>sip:\1@sbe2.ssp2.example.com</urn1:repl>
       </urn1:regx>
      </addObj>
        
       <urn1:regx>
        <urn1:ere>^(.*)$</urn1:ere>
        <urn1:repl>sip:\1@sbe2.ssp2.example.com</urn1:repl>
       </urn1:regx>
      </addObj>
        
      <addObj xsi:type="urn1:SedGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpName>SED_GRP_SSP2_1</urn1:sedGrpName>
       <urn1:sedRecRef>
        <urn1:sedKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE2</name>
         <type>SedRec</type>
        </urn1:sedKey>
       <urn1:priority>100</urn1:priority>
       </urn1:sedRecRef>
        <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
        <urn1:isInSvc>true</urn1:isInSvc>
        <urn1:priority>10</urn1:priority>
      </addObj>
        
      <addObj xsi:type="urn1:SedGrpType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpName>SED_GRP_SSP2_1</urn1:sedGrpName>
       <urn1:sedRecRef>
        <urn1:sedKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_SSP2_SBE2</name>
         <type>SedRec</type>
        </urn1:sedKey>
       <urn1:priority>100</urn1:priority>
       </urn1:sedRecRef>
        <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
        <urn1:isInSvc>true</urn1:isInSvc>
        <urn1:priority>10</urn1:priority>
      </addObj>
        
      <addObj xsi:type="urn1:SedGrpOfferType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpOfferKey xsi:type="urn:SedGrpOfferKeyType">
        <sedGrpKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_GRP_SSP2_1</name>
         <type>SedGrp</type>
        </sedGrpKey>
        <offeredTo>iana-en:111</offeredTo>
       </urn1:sedGrpOfferKey>
       <urn1:status>offered</urn1:status>
       <urn1:offerDateTime>
        2006-05-04T18:13:51.0Z
       </urn1:offerDateTime>
      </addObj>
        
      <addObj xsi:type="urn1:SedGrpOfferType">
       <urn1:rant>iana-en:222</urn1:rant>
       <urn1:rar>iana-en:223</urn1:rar>
       <urn1:sedGrpOfferKey xsi:type="urn:SedGrpOfferKeyType">
        <sedGrpKey xsi:type="urn:ObjKeyType">
         <rant>iana-en:222</rant>
         <name>SED_GRP_SSP2_1</name>
         <type>SedGrp</type>
        </sedGrpKey>
        <offeredTo>iana-en:111</offeredTo>
       </urn1:sedGrpOfferKey>
       <urn1:status>offered</urn1:status>
       <urn1:offerDateTime>
        2006-05-04T18:13:51.0Z
       </urn1:offerDateTime>
      </addObj>
        
      <delObj xsi:type="urn:PubIdKeyType">
       <rant>iana-en:222</rant>
       <number>
        <urn1:value>+12025556666</urn1:value>
        <urn1:type>TN</urn1:type>
       </number>
      </delObj>
        
      <delObj xsi:type="urn:PubIdKeyType">
       <rant>iana-en:222</rant>
       <number>
        <urn1:value>+12025556666</urn1:value>
        <urn1:type>TN</urn1:type>
       </number>
      </delObj>
        
      <delObj xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>SED_GRP_SSP2_Previous</name>
       <type>SedGrp</type>
      </delObj>
        
      <delObj xsi:type="urn:ObjKeyType">
       <rant>iana-en:222</rant>
       <name>SED_GRP_SSP2_Previous</name>
       <type>SedGrp</type>
      </delObj>
        
      <rejectSedGrpOffer>
       <sedGrpKey>
        <rant>iana-en:226</rant>
        <name>SED_SSP4_SBE1_Offered</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:222</offeredTo>
      </rejectSedGrpOffer>
        
      <rejectSedGrpOffer>
       <sedGrpKey>
        <rant>iana-en:226</rant>
        <name>SED_SSP4_SBE1_Offered</name>
        <type>SedGrp</type>
       </sedGrpKey>
       <offeredTo>iana-en:222</offeredTo>
      </rejectSedGrpOffer>
        
     </urn:spppBatchRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        
     </urn:spppBatchRequest>
    </soapenv:Body>
   </soapenv:Envelope>
        

The Registry completes the request successfully and returns a favorable response.

注册表成功完成请求并返回良好响应。

   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppBatchResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppBatchResponse>
    </S:Body>
   </S:Envelope>
        
   <?xml version="1.0" encoding="UTF-8"?>
   <S:Envelope
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
     <ns3:spppBatchResponse
      xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
      xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
      <serverTransId>tx_12354</serverTransId>
      <overallResult>
       <code>1000</code>
       <msg>Request Succeeded.</msg>
      </overallResult>
     </ns3:spppBatchResponse>
    </S:Body>
   </S:Envelope>
        
11. Security Considerations
11. 安全考虑

The base security considerations of SPPP outlined in Section 9 of [RFC7877] also apply to SPPP over SOAP implementations. Additionally, the following must be considered:

[RFC7877]第9节中概述的SPPP的基本安全注意事项也适用于SPPP over SOAP实现。此外,必须考虑以下因素:

SPPP over SOAP is used to query and update session peering data and addresses, so the ability to access this protocol should be limited to users and systems that are authorized to query and update this data. Because this data is sent in both directions, it may not be sufficient for just the client or user to be authenticated with the server. The identity of the server should also be authenticated by the client, which is often accomplished using the TLS certificate exchange and validation described in [RFC2818].

SOAP上的SPPP用于查询和更新会话对等数据和地址,因此访问此协议的能力应限于有权查询和更新此数据的用户和系统。由于此数据是双向发送的,因此仅对客户端或用户使用服务器进行身份验证可能是不够的。服务器的身份也应该由客户端进行身份验证,这通常是通过使用[RFC2818]中描述的TLS证书交换和验证来完成的。

11.1. Vulnerabilities
11.1. 弱点

Section 5 describes the use of HTTP and TLS as the underlying substrate protocols for SPPP over SOAP. These underlying protocols may have various vulnerabilities, and these may be inherited by SPPP over SOAP. SPPP over SOAP itself may have vulnerabilities because an authorization model is not explicitly specified in this document.

第5节描述了HTTP和TLS作为SPPP over SOAP的底层底层协议的使用。这些底层协议可能有各种漏洞,这些漏洞可能由SPPP通过SOAP继承。SOAP上的SPPP本身可能存在漏洞,因为本文档中未明确指定授权模型。

During a TLS handshake, TLS servers can optionally request a certificate from a TLS client; that option is not a requirement for this protocol. This presents a denial-of-service risk in which unauthenticated clients can consume server CPU resources by creating TLS sessions. The risk is increased if the server supports client-initiated renegotiation. This risk can be mitigated by disabling client-initiated renegotiation on the server and by ensuring that other means (such as firewall access control lists) are used to restrict unauthenticated client access to servers.

在TLS握手期间,TLS服务器可以选择性地从TLS客户端请求证书;该选项不是本协议的要求。这带来了拒绝服务风险,未经身份验证的客户端可以通过创建TLS会话来消耗服务器CPU资源。如果服务器支持客户端发起的重新协商,则风险会增加。通过在服务器上禁用客户端发起的重新协商,并确保使用其他手段(如防火墙访问控制列表)限制未经验证的客户端对服务器的访问,可以降低此风险。

In conjunction with the above, it is important that SPPP over SOAP implementations implement an authorization model that considers the source of each query or update request and determines whether it is reasonable to authorize that source to perform that specific query or update.

结合以上内容,SPPP over SOAP实现实现一个授权模型非常重要,该模型考虑每个查询或更新请求的源,并确定授权该源执行特定查询或更新是否合理。

12. IANA Considerations
12. IANA考虑

This document uses URNs to describe XML Namespaces and XML Schemas. According to [RFC3688], IANA has performed the following URN assignment:

本文档使用URN来描述XML名称空间和XML模式。根据[RFC3688],IANA执行了以下URN分配:

      URN: urn:ietf:params:xml:ns:sppf:soap:1
        
      URN: urn:ietf:params:xml:ns:sppf:soap:1
        

Registrant Contact: IESG

注册联系人:IESG

XML: See Section 9 of [RFC7878]

XML:见[RFC7878]第9节

13. References
13. 工具书类
13.1. Normative References
13.1. 规范性引用文件

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997年3月<http://www.rfc-editor.org/info/rfc2119>.

[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, <http://www.rfc-editor.org/info/rfc3688>.

[RFC3688]Mealling,M.,“IETF XML注册表”,BCP 81,RFC 3688,DOI 10.17487/RFC3688,2004年1月<http://www.rfc-editor.org/info/rfc3688>.

[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008, <http://www.rfc-editor.org/info/rfc5246>.

[RFC5246]Dierks,T.和E.Rescorla,“传输层安全(TLS)协议版本1.2”,RFC 5246,DOI 10.17487/RFC5246,2008年8月<http://www.rfc-editor.org/info/rfc5246>.

[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing", RFC 7230, DOI 10.17487/RFC7230, June 2014, <http://www.rfc-editor.org/info/rfc7230>.

[RFC7230]Fielding,R.,Ed.和J.Reschke,Ed.,“超文本传输协议(HTTP/1.1):消息语法和路由”,RFC 7230,DOI 10.17487/RFC7230,2014年6月<http://www.rfc-editor.org/info/rfc7230>.

[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, DOI 10.17487/RFC7231, June 2014, <http://www.rfc-editor.org/info/rfc7231>.

[RFC7231]Fielding,R.,Ed.和J.Reschke,Ed.,“超文本传输协议(HTTP/1.1):语义和内容”,RFC 7231,DOI 10.17487/RFC72312014年6月<http://www.rfc-editor.org/info/rfc7231>.

[RFC7235] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Authentication", RFC 7235, DOI 10.17487/RFC7235, June 2014, <http://www.rfc-editor.org/info/rfc7235>.

[RFC7235]Fielding,R.,Ed.和J.Reschke,Ed.,“超文本传输协议(HTTP/1.1):认证”,RFC 7235,DOI 10.17487/RFC7235,2014年6月<http://www.rfc-editor.org/info/rfc7235>.

[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, "Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 2015, <http://www.rfc-editor.org/info/rfc7525>.

[RFC7525]Sheffer,Y.,Holz,R.,和P.Saint Andre,“安全使用传输层安全性(TLS)和数据报传输层安全性(DTLS)的建议”,BCP 195,RFC 7525,DOI 10.17487/RFC7525,2015年5月<http://www.rfc-editor.org/info/rfc7525>.

[RFC7877] Cartwright, K., Bhatia, V., Ali, S., and D. Schwartz, "Session Peering Provisioning Framework (SPPF)", RFC 7877, DOI 10.17487/RFC7877, August 2016, <http://www.rfc-editor.org/info/rfc7877>.

[RFC7877]Cartwright,K.,Bhatia,V.,Ali,S.,和D.Schwartz,“会话对等资源调配框架(SPPF)”,RFC 7877,DOI 10.17487/RFC7877,2016年8月<http://www.rfc-editor.org/info/rfc7877>.

[SOAPREF] Gudgin, M., Hadley, M., Moreau, J., and H. Nielsen, "SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)", W3C Recommendation REC-SOAP12-part1-20070427, April 2007, <http://www.w3.org/TR/soap12-part1/>.

[SOAPREF]Gudgin,M.,Hadley,M.,Moreau,J.,和H.Nielsen,“SOAP版本1.2第1部分:消息传递框架(第二版)”,W3C建议REC-SOAP12-part1-20070427,2007年4月<http://www.w3.org/TR/soap12-part1/>.

13.2. Informative References
13.2. 资料性引用

[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, DOI 10.17487/RFC2818, May 2000, <http://www.rfc-editor.org/info/rfc2818>.

[RFC2818]Rescorla,E.,“TLS上的HTTP”,RFC 2818,DOI 10.17487/RFC2818,2000年5月<http://www.rfc-editor.org/info/rfc2818>.

[RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, DOI 10.17487/RFC5321, October 2008, <http://www.rfc-editor.org/info/rfc5321>.

[RFC5321]Klensin,J.,“简单邮件传输协议”,RFC 5321DOI 10.17487/RFC5321,2008年10月<http://www.rfc-editor.org/info/rfc5321>.

[W3C.REC-xml-20081126] Sperberg-McQueen, C., Yergeau, F., Bray, T., Maler, E., and J. Paoli, "Extensible Markup Language (XML) 1.0 (Fifth Edition)", W3C Recommendation REC-xml-20081126, November 2008, <http://www.w3.org/TR/2008/REC-xml-20081126>.

[W3C.REC-xml-20081126]Sperberg McQueen,C.,Yergeau,F.,Bray,T.,Maler,E.,和J.Paoli,“可扩展标记语言(xml)1.0(第五版)”,W3C建议REC-xml-20081126,2008年11月<http://www.w3.org/TR/2008/REC-xml-20081126>.

[WSDLREF] Christensen, E., Curbera, F., Meredith, G., and S. Weerawarana, "Web Services Description Language (WSDL) 1.1", W3C Note NOTE-wsdl-20010315, March 2001, <http://www.w3.org/TR/2001/NOTE-wsdl-20010315>.

[WSDLREF]Christensen,E.,Curbera,F.,Meredith,G.,和S.Weerawarana,“Web服务描述语言(WSDL)1.1”,W3C Note Note-WSDL-20010315,2001年3月<http://www.w3.org/TR/2001/NOTE-wsdl-20010315>.

Acknowledgements

致谢

This document is a result of various discussions held with the IETF DRINKS working group, specifically the protocol design team, with contributions from the following individuals, in alphabetical order: Syed Ali, Vikas Bhatia, Kenneth Cartwright, Sumanth Channabasappa, Lisa Dusseault, Deborah A. Guyton, Scott Hollenbeck, Otmar Lendl, Manjul Maharishi, Mickael Marrache, Alexander Mayrhofer, Samuel Melloul, Jean-Francois Mule, Peter Saint-Andre, David Schwartz, and Richard Shockey.

本文件是与IETF饮料工作组,特别是协议设计团队进行的各种讨论的结果,由以下个人按字母顺序提供意见:Syed Ali、Vikas Bhatia、Kenneth Cartwright、Sumanth Channabasapa、Lisa Dusseault、Deborah a.Guyton、Scott Hollenbeck、Otmar Lendl、,Manjul Maharishi、Mickeel Marrache、Alexander Mayrhofer、Samuel Melloul、Jean-Francois Mule、Peter Saint Andre、David Schwartz和Richard Shockey。

Authors' Addresses

作者地址

Kenneth Cartwright TNS 10740 Parkridge Boulevard Reston, VA 20191 United States

肯尼思·卡特赖特TNS 10740美国弗吉尼亚州莱斯顿帕克里奇大道,邮编:20191

   Email: kcartwright@tnsi.com
        
   Email: kcartwright@tnsi.com
        

Vikas Bhatia TNS 10740 Parkridge Boulevard Reston, VA 20191 United States

美国弗吉尼亚州莱斯顿帕克里奇大道10740号维卡斯·巴蒂亚TNS 20191

   Email: vbhatia@tnsi.com
        
   Email: vbhatia@tnsi.com
        

Jean-Francois Mule Apple Inc. 1 Infinite Loop Cupertino, CA 95014 United States

Jean-Francois Mule Apple Inc.美国加利福尼亚州库珀蒂诺市1号无限环苹果公司,邮编95014

   Email: jfmule@apple.com
        
   Email: jfmule@apple.com
        

Alexander Mayrhofer nic.at GmbH Karlsplatz 1/2/9 Wien A-1010 Austria

Alexander Mayrhofer nic.at股份有限公司卡尔斯普拉茨1/2/9维也纳A-1010奥地利

   Email: alexander.mayrhofer@nic.at
        
   Email: alexander.mayrhofer@nic.at