cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3758
Views
3
Helpful
11
Replies

AXL and Cisco Support Field access

Hy everybody,

We have a CUCM cluster (11.0.1.10000-10) and I would like to know if is possible to change the value of the “Cisco Support Field” of a device using AXL?

Thanks,

Regards, Fabrice

1 Accepted Solution

Accepted Solutions

Note that <ciscoSupportField> sub-element of the <vendorConfig> element in the getPhone reply - you will also need to include <vendorConfig> with <ciscoSupportField> as a sub-element in the updatePhone request.

Note also that <vendorConfig> can potentially have a large number of additional device-specific configuration fields within it (for example, change several other fields in the Device Specific Configuration settings and retry the getPhone).  If updating an existing device, you will want to:

  • retrieve the contents (if any, could be empty) of <vendorConfig>
  • correctly insert (if not present) or update (if present) the <ciscoSupportField> element within <vendorConfig>
  • then re-submit the complete, updated <vendorConfig> via updatePhone.

View solution in original post

11 Replies 11

dstaudt
Cisco Employee
Cisco Employee

Can you give an example of a device type/model with this field, or the place in the CUCM UI you see it..?

This field is used with the Jabbers devices:

     Cisco Unified Client Service Framework

     Cisco Dual Mode For Android

     Cisco Dual Mode For iPhone

     Cisco Jabber for Tablet

This field can be found in the Desktop Client Settings part of the device configuration page.

lior look
Level 5
Level 5

Please try to get us an example, start with upload a screen-shot of the field that you talking about.

All of the settings in the 'Product Specific Configuration' area for a device are present in the <vendorConfig> element, e.g. in getPhone/updatePhone.  Note, this element is itself a complete XML document and can contain varying multiple elements and subelements depending on the phone model.

The Cisco Support Field is used to specify which specific xml configuration file the jabber device need to use.

Prt_scr_Cisco_spport_Field.jpg

I can read the value of the "Cisco Support Field" attribute:

  <soapenv:Body><ns:getPhoneResponse xmlns:ns="http://www.cisco.com/AXL/API/9.1">

    <return>

    <phone ctiid="49" uuid="{BACF0764-0D63-98EB-996C-64F02E6CC5D8}">

      <name>CSFXYZ</name>

      <description>XYZ</description>

      <product>Cisco Unified Client Services Framework</product>

      <model>Cisco Unified Client Services Framework</model>

  ...

      <vendorConfig>

        <desktopClient>

          <ciscoSupportField>configurationfile=jabber-config-with-phone-full-save-outlook.xml</ciscoSupportField>

        </desktopClient>

      </vendorConfig>

  </phone></return></ns:getPhoneResponse></soapenv:Body></soapenv:Envelope>

But I can't change the value of the field "Cisco Support Field" (the value of the "description" field change corectly):

  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

   xmlns:axl="http://www.cisco.com   /AXL/API/9.1" >

    <SOAP-ENV:Body>

      <axl:updatePhone sequence="1"><name>CSFEMONETP</name>

      <description>TEST upgr</description>

      <desktopClient>

        <ciscoSupportField>

          configurationfile=jabber.xml

        </ciscoSupportField>

      </desktopClient>

    </axl:updatePhone></SOAP-ENV:Body>

  </SOAP-ENV:Envelope>

Thanks for your help,

Note that <ciscoSupportField> sub-element of the <vendorConfig> element in the getPhone reply - you will also need to include <vendorConfig> with <ciscoSupportField> as a sub-element in the updatePhone request.

Note also that <vendorConfig> can potentially have a large number of additional device-specific configuration fields within it (for example, change several other fields in the Device Specific Configuration settings and retry the getPhone).  If updating an existing device, you will want to:

  • retrieve the contents (if any, could be empty) of <vendorConfig>
  • correctly insert (if not present) or update (if present) the <ciscoSupportField> element within <vendorConfig>
  • then re-submit the complete, updated <vendorConfig> via updatePhone.

Thanks you, you were right it was missing the sub-element <vendorConfig>.

I have a second question about the "Cisco Support Field". In wich database table can I find  the "Cisco Support Field" and the relationship with the device is linked?

I could not find it in the Cisco Unified Communications Manager Database Dictionary.

It's usually best to use AXL to access the vendor config settings, though if you want to use SQL, see this FAQ:

https://developer.cisco.com/site/axl/help/faqs/index.gsp#section-1

Note that whether you use AXL <updatePhone> or <executeSqlUpdate>, the "Cisco Support Field' value you will be reading and writing will be embedded in a 'free-form' piece of XML that you get back from AXL (stored as a 'blob' field in the DB table.)  The elements and values that make up the vendor config field vary by model (though there are many in common across models), and unfortunately there is no available definition/schema of all of the possible values for any particular model/version...

To do some controls , we need to read the value of the "Cisco Field Support " from 16,000 devices.

The best solution would be to do a global " Select .." , otherwise we will need to generate 16,000 AXL queries. Is there a way to generate this "select"?

Thanks for your help,

Note there are two tables that can hold the vendor config XML blobs - devicexml4k and devicexml8k - depending on model type (and potential XML size.)  You might try experimenting with something like:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/10.5">

  <soapenv:Header/>

  <soapenv:Body>

      <ns:executeSQLQuery>

        <sql>select first 10 fkdevice, xml from devicexml4k</sql>

      </ns:executeSQLQuery>

  </soapenv:Body>

</soapenv:Envelope>

----------------------------------

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

  <soapenv:Body>

      <ns:executeSQLQueryResponse xmlns:ns="http://www.cisco.com/AXL/API/10.5">

        <return>

            <row>

              <fkdevice>a48e4942-accf-9f78-c3aa-a7c2215a9dc7</fkdevice>

              <vendorConfig>

                  <disableSpeaker>false</disableSpeaker>

                  <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>

                  <pcPort>0</pcPort>

                  <garp>1</garp>

                  <voiceVlanAccess>0</voiceVlanAccess>

                  <bluetooth>1</bluetooth>

                  <g722CodecSupport>0</g722CodecSupport>

                  <spanToPCPort>0</spanToPCPort>

                  <loggingDisplay>2</loggingDisplay>

                  <recordingTone>0</recordingTone>

                  <recordingToneLocalVolume>100</recordingToneLocalVolume>

                  <recordingToneRemoteVolume>50</recordingToneRemoteVolume>

                  <recordingToneDuration/>

                  <moreKeyReversionTimer>5</moreKeyReversionTimer>

                  <enableCdpSwPort>1</enableCdpSwPort>

                  <enableCdpPcPort>1</enableCdpPcPort>

                  <enableLldpSwPort>1</enableLldpSwPort>

                  <enableLldpPcPort>1</enableLldpPcPort>

                  <lldpAssetId/>

                  <powerPriority>0</powerPriority>

                  <eapAuthentication>0</eapAuthentication>

                  <sshAccess>0</sshAccess>

                  <LineKeyBarge>0</LineKeyBarge>

                  <minimumRingVolume>0</minimumRingVolume>

                  <remoteLog>1</remoteLog>

                  <AutoSaveVolDuringCall>0</AutoSaveVolDuringCall>

              </vendorConfig>

            </row>

            <row>

              <fkdevice>4ad1b45a-14b0-e6e8-3776-063455e08d55</fkdevice>

              <vendorConfig>

                  <disableSpeaker>false</disableSpeaker>

                  <autoSelectLineEnable>0</autoSelectLineEnable>

                  <deviceType>30016</deviceType>

                  <ipDetectionURL>http://example.com</ipDetectionURL>

                  <ldapServers/>

                  <rtpPortRangeFirst/>

                  <rtpPortRangeLast/>

                  <settingsAccess>1</settingsAccess>

                  <verifySoftwareVersions>0</verifySoftwareVersions>

                  <videoCapability>0</videoCapability>

                  <webAccess>0</webAccess>

                  <rtcp>0</rtcp>

                  <moreKeyReversionTimer>5</moreKeyReversionTimer>

                  <autoCallSelect>1</autoCallSelect>

                  <g722CodecSupport>0</g722CodecSupport>

              </vendorConfig>

            </row>

        </return>

      </ns:executeSQLQueryResponse>

  </soapenv:Body>

</soapenv:Envelope>

Your answers helped us to solve our problem.
Thank you for your help and your quick responses.