nerdexam
Cisco

300-835 · Question #40

Refer to the exhibit. Drag and drop the code snippets from the bottom onto the blanks in the script to create a new CSS in Cisco UCM by using AXL with a route partition directory. Some options may…

I notice the exhibit image and code snippet options are missing from your question - the options field shows {} (empty) and there's no visible script with blanks. Without the actual script template and drag-and-drop options, I can't map answers to specific blanks. That said…

Cisco Unified Communications Manager API

Question

Refer to the exhibit. Drag and drop the code snippets from the bottom onto the blanks in the script to create a new CSS in Cisco UCM by using AXL with a route partition directory. Some options may be used more than once. Not all options are used.

Exhibit

300-835 question #40 exhibit

Explanation

I notice the exhibit image and code snippet options are missing from your question - the options field shows {} (empty) and there's no visible script with blanks. Without the actual script template and drag-and-drop options, I can't map answers to specific blanks.

That said, here is a thorough conceptual explanation of the procedure so you understand the reasoning regardless of the specific syntax used:


Overall Goal

Create a Calling Search Space (CSS) in Cisco UCM via AXL, associating it with one or more Route Partitions. AXL (Administrative XML Layer) is a SOAP-based API that lets you automate UCM administration tasks - including creating dial plan objects - instead of using the GUI manually.


Key Concepts

CSS (Calling Search Space)

A CSS defines which route partitions a device or line can reach. It is an ordered list of partitions. When a call is placed, UCM searches those partitions in order for a matching directory number or route pattern.

Route Partition

A logical grouping of directory numbers and route patterns. Partitions control who can be called; CSS controls who can call whom.

AXL

A SOAP/XML API exposed by UCM. You authenticate, build an XML request body, and POST it to the UCM AXL endpoint. The typical Python approach uses the zeep SOAP library or raw requests with XML.


Typical Script Structure (Step-by-Step)

Step 1 - Import libraries

import requests
from requests.auth import HTTPBasicAuth

Why: You need requests to make HTTPS calls and HTTPBasicAuth to authenticate against the AXL API. Skipping this means no HTTP capability.


Step 2 - Define connection parameters

ucm_host = "https://<UCM_IP>:8443"
username = "admin"
password = "password"
axl_url = f"{ucm_host}/axl/"

Why: AXL listens on port 8443. You must target the correct endpoint (/axl/). Wrong port or path = connection refused or 404.


Step 3 - Set AXL headers

headers = {
    "Content-Type": "text/xml",
    "SOAPAction": "CUCM:DB ver=14.0 addCss"
}

Why: AXL is SOAP-based. The Content-Type must be text/xml and SOAPAction tells UCM which AXL operation to invoke. Using the wrong SOAPAction results in an AXL fault response.


Step 4 - Build the SOAP/XML payload

payload = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:ns="http://www.cisco.com/AXL/API/14.0">
  <soapenv:Body>
    <ns:addCss>
      <css>
        <name>My_CSS</name>
        <members>
          <member>
            <routePartitionName>My_Partition</routePartitionName>
            <index>1</index>
          </member>
        </members>
      </css>
    </ns:addCss>
  </soapenv:Body>
</soapenv:Envelope>
"""

Why: This is the actual AXL addCss request. The <name> is the CSS name; <members> lists the partitions assigned to it with their search order (<index>). Missing <index> or wrong namespace = AXL schema validation error.


Step 5 - Send the request

response = requests.post(
    axl_url,
    data=payload,
    headers=headers,
    auth=HTTPBasicAuth(username, password),
    verify=False
)

Why: Posts the SOAP body to UCM. auth= handles Basic Auth. verify=False skips TLS cert validation (common in lab environments - use proper certs in production). Without auth, UCM returns 401.


Step 6 - Check the response

print(response.status_code)
print(response.text)

Why: A 200 with a <return> UUID in the body confirms success. An AXL fault in the response body indicates a problem (e.g., duplicate name, partition doesn't exist). Skipping this step means you won't know if the CSS was actually created.


What Goes Wrong If Steps Are Out of Order

Skipped/Misplaced StepResult
Wrong SOAPAction headerUCM returns an AXL fault - wrong operation
Route partition doesn't exist yetaddCss fails - partitions must exist before referencing them in a CSS
No auth credentialsHTTP 401 Unauthorized
Wrong AXL namespace versionSchema mismatch error
Missing <index> in membersAXL may reject the payload or create CSS with undefined order

Memory Tip

Think of it as "CHPSC": Connect → Headers → Payload → Send → Check.

Always create the Route Partition before the CSS - a CSS is just a container that references partitions. You can't reference what doesn't exist.


If you can share the actual exhibit image or paste the code snippet options, I can map the correct answers to each specific blank in the script.

Topics

#AXL API#CSS creation#Route Partition#Cisco UCM

Community Discussion

No community discussion yet for this question.

Full 300-835 Practice