cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1607
Views
15
Helpful
8
Replies

AXL vendorConfig error via Python and Zeep for Webex Kit in CUCM v12.5

Asandovalros
Cisco Employee
Cisco Employee

Hello community, 

I am facing an issue when pushing vendorConfig settings to a Cisco Webex Room Kit in CUCM v.12.5. When trying to push any configuration under this tag, I get the following exception: 

addPhone: Vendor Configuration is not in correct format for the specified product type

I am following the same methodology as in this example for creating the XML tree and pushing it in the vendorConfig tag before invoking addPhone. It worked for other devices such as Jabber.

 

When retrieving the XML of a configured Room Kit, I have the following structure:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:getPhoneResponse xmlns:ns="http://www.cisco.com/AXL/API/12.5">
<return>
<phone ctiid="219" uuid="{31366B7A-55AF-5774-3267-2F98235618C5}">
  <name>SEPAAAAAABCBCBC</name>
  <product>Cisco Webex Room Kit Mini</product>
  <model>Cisco Webex Room Kit Mini</model>
  <class>Phone</class>
  <protocol>SIP</protocol>
   <vendorConfig>
      <webAccess>1</webAccess>
<configurationControl>CUCM+Endpoint</configurationControl>

      ...

 

The phone request body I create and push has the exact same structure:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Body>
   <ns0:addPhone xmlns:ns0="http://www.cisco.com/AXL/API/12.5">
     <phone>
       <name>SEPAAAAAABCBCBD</name>
       <product>Cisco Webex Room Kit Mini</product>
       <class>Phone</class>
       <protocol>SIP</protocol>
       <vendorConfig>
           <webAccess>1</webAccess>
           <configurationControl>CUCM+Endpoint</configurationControl>
           . . . .

I've tested with many of the vendorConfig retrieved values but still have the same issue. Does anybody know if there are configuration dependencies, or any other device-specific guide to follow?

1 Accepted Solution

Accepted Solutions

I was able to reproduce your behaviour.  What did work was instead of using <webAccess>0</webAccess> instead providing <xConfiguration.NetworkServices.HTTP.Mode>HTTP+HTTPS</xConfiguration.NetworkServices.HTTP.Mode>:

 

<vendorConfig>
    <xConfiguration.NetworkServices.HTTP.Mode>HTTPS</xConfiguration.NetworkServices.HTTP.Mode>
    <xPrivate.ConfigurationControl>Unified CM and Endpoint</xPrivate.ConfigurationControl>
</vendorConfig>

When doing that, subsequently retrieving the device I see that <webAccess>0</webAccess> is part of the vendor config - apparently created automatically.  This appears to be maybe some kind of backward compatibility mechanism that 'mirrors' the new setting onto the old setting..?  I'm at a bit of a loss to advise in general, as there is no real source of documentation for the vendor config settings/behaviour...reverse engineering is the order of the day if you need to dabble there.

Note, the current value mapping in the <webAccess> element seems to be:

 

0=HTTP+HTTPS
1=Off
2=HTTPS

View solution in original post

8 Replies 8

npetrele
Cisco Employee
Cisco Employee

As luck would have it, I'm working on a case where someone else is experiencing the same problem.  There is a change in 12.5 that adds security features, and there are additional XML tags to handle that.  This is an example one of the engineers gave me.

 

I find it confusing, myself, since it looks like you need to duplicate a number of settings, one normally, and the other with security prefixes xConfiguration...etc. I'll come back and elaborate once I get a handle on it, but maybe this can send you in the right direction. Let us know.

Screenshot (1676).png

Thank you for reply. However, I see in my sample dump device that not all configurations are duplicated in those xConfiguration tags. For instance, webAccess is my primary focus, and it doesn't have the xConfiguration clone. If I send my request with only that one, I get the same error.

The engineer also sent me this sample (see pic). I don't know if it will help, but you can try it. I assume you'd do something more like this:

 

<vendorConfig>

    <xPrivate.ConfigurationControl/>

    <webAccess>2</webAccess>

...etc....

 

I'm hoping to get information from the engineer that is more clear.  Maybe I'll have something in the next day or two.

 

Screenshot (1649).png

dstaudt
Cisco Employee
Cisco Employee

Looking at your <getPhone> data vs what is sent in <addPhone>, it looks like you have two 'versions' of the configuration control element in the existing device:

<configurationControl>CUCM+Endpoint</configurationControl>
<xPrivate.ConfigurationControl>CUCM+Endpoint</xPrivate.ConfigurationControl>

I'm guessing that the <configurationControl> element is an 'old' version from a previous firmware version, but it's been retained for some reason (maybe backward compatibility, or because anything it doesn't recognize it keeps..?)  When creating a new mini in my v12.5 lab, the latter xPrivate version (only) is present.

Going through your exercise, if I use <xPrivate.ConfigurationControl> it seems to be working...

 

 

 

Thank you for the reply. I see that it is associated to the one above. Indeed the creation of the Webex Mini is working by using the xPrivate.ConfigurationControl tag. However, now I am unable to change the webAccess feature.

Originally, I used "2" for HTTP+HTTPS, but now it doesn't matter which value I put, it is always setup as "Disabled". Even when setting the value as it appears in the webUI ("HTTP+HTTPS"), it is still set as Disabled. 

 
Is there a vendor reference for this value?
 
My pushed XML now looks like this:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Body>
  <ns0:addPhone xmlns:ns0="http://www.cisco.com/AXL/API/12.5">
   <phone>
     <name>SEPAAAAAABBBDDD</name>
     <product>Cisco Webex Room Kit Mini</product>
     <class>Phone</class>
     <protocol>SIP</protocol>
     <protocolSide>User</protocolSide>
     <vendorConfig>
          <webAccess>2</webAccess>
         <xPrivate.ConfigurationControl>CUCM+Endpoint</xPrivate.ConfigurationControl>
    </vendorConfig>

I was able to reproduce your behaviour.  What did work was instead of using <webAccess>0</webAccess> instead providing <xConfiguration.NetworkServices.HTTP.Mode>HTTP+HTTPS</xConfiguration.NetworkServices.HTTP.Mode>:

 

<vendorConfig>
    <xConfiguration.NetworkServices.HTTP.Mode>HTTPS</xConfiguration.NetworkServices.HTTP.Mode>
    <xPrivate.ConfigurationControl>Unified CM and Endpoint</xPrivate.ConfigurationControl>
</vendorConfig>

When doing that, subsequently retrieving the device I see that <webAccess>0</webAccess> is part of the vendor config - apparently created automatically.  This appears to be maybe some kind of backward compatibility mechanism that 'mirrors' the new setting onto the old setting..?  I'm at a bit of a loss to advise in general, as there is no real source of documentation for the vendor config settings/behaviour...reverse engineering is the order of the day if you need to dabble there.

Note, the current value mapping in the <webAccess> element seems to be:

 

0=HTTP+HTTPS
1=Off
2=HTTPS

Thank you! It works!

 

I will mark this one as the solution. The Web Access field disappeared from the new web UI. In its place, we have the network HTTP field that you mention. Documentation reads that it serves the same purpose.

 

768_204_1.25.png 

 

650_310_1.25.png

 

I found out about this field when retrieving the configuration of a dummy Mini setup from scratch in CUCM v12.5. I assume that the new fields are those with the prefix xConfiguration, and the rest are for backwards compatibility.

 

In order to avoid further confusion, are these changes reported somewhere, in some sort of changelog?

Given that this is <vendorConfig>, there is no info in AXL changelog, given that this is an open tag which depends directly on the type of resource to setup.

jdrinkwater
Level 1
Level 1

Hello,

I opened the TAC case (4531) on the same problem. I am not getting real clear answer for this. After upgrading our CUCM server and creating phone for phone types with telepresence are not working anymore. I really don't have any documentation which additional associated fields need to be sent with the new format. New format does not show up in the Enterprise Phone Configuration section from CUCM Admin Web GUI either. 

I was trying the set the following vendorConfig and didn't work. 

<vendorConfig>
<FacilityServiceGroup>
<FacilityServiceType>Helpdesk</FacilityServiceType>
<FacilityServiceName>Live Support</FacilityServiceName>
<FacilityServiceCallType>Video</FacilityServiceCallType>
</FacilityServiceGroup>
</vendorConfig>

It's hard to figure out which additional xConfiguration, xPrivate or any other settings. It seems like a such a big change in maintenance release. It's going to need major change and testing. Any recommendation? Help please!!