cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
417
Views
0
Helpful
2
Replies

Empty tags in getPhone response

stephan.steiner
Spotlight
Spotlight

Hi

A lot of AXL object have tags that consist of a name and a uuid (e.g <sipProfileName uuid="">your location</sipProfileName >).

for quite a few of those tags, but also simple strings, I tend to get empty strings back from CUCM, but the tag is still there. Assuming that the tag is optional (as the above sipProfileName is), I wonder why CUCM wouldn't simply not return the tag at all. After all, if we're thinking about the matching updatePhone.

I'm struggling a bit to place those properly. Going back to sipProfile, shouldn't there not be any sipProfile tag if there's no sip profile? And conversely, if it's a simple string value that allows free text entry (like description.. but there's plenty more if we go do the directory number), should't we have

not present = nothing entered

empty tag = empty string entered

tag with value = a value entered.

If we think update, we want to keep the amount of data transmitted low, so only send what is necessary. If we do a full get, and we have a lot of those values that are empty, but not left out even though they are optional, unless I add some advanced filtering logic in my code, I'll end up sending an update with a lot of tags that I don't have to send.

What's Cisco's design for when a tag is not returned to a get versus returning an empty tag?

2 Replies 2

npetrele
Cisco Employee
Cisco Employee

Are you talking about the returned tags?  If there are tags you don't want returned, then just specify the tags you want in the returnedTags section, and leave out the tags you don't want to see.  For example:

<returnedTags>

            <name/>

            <description/>

            <product/>

            <model/>

            <class/>

            <protocol/>

</returnedTags>

If you leave out a <returnedTags> section, AXL returns everything. 

It returns the uuids because you can use those in other AXL functions, and the uuid can buy you performance over other types of search criteria. 

Here's an example xml

<phone ctiid="16" uuid="{EF744836-EA62-2732-B3F7-83E7027E99A9}"><name>UPCSTEINERST</name><description>Jabber Windows STEINERST</description><product>Cisco Unified Client Services Framework</product><model>Cisco Unified Client Services Framework</model><class>Phone</class><protocol>SIP</protocol><protocolSide>User</protocolSide><callingSearchSpaceName uuid="{BC3B6B1C-ADF4-2B1D-F723-4A927AAFFE89}">CSS_UNRESTRICTED</callingSearchSpaceName><devicePoolName uuid="{1B1B9EB6-7803-11D3-BDF0-00108302EAD1}">Default</devicePoolName><commonDeviceConfigName/><commonPhoneConfigName uuid="{AC243D17-98B4-4118-8FEB-5FF2E1B781AC}">Standard Common Phone Profile</commonPhoneConfigName><networkLocation>Use System Default</networkLocation><locationName uuid="{29C5C1C4-8871-4D1E-8394-0B9181E8C54D}">Hub_None</locationName><mediaResourceListName/><networkHoldMohAudioSourceId /><userHoldMohAudioSourceId /><automatedAlternateRoutingCssName/><aarNeighborhoodName/><loadInformation special="false"/><vendorConfig><videoCapability>0</videoCapability><desktopClient><ciscoSupportField>configurationfile=jabber-config201_72.xml</ciscoSupportField></desktopClient></vendorConfig><versionStamp>{1420722485-D4068AE4-3E65-4DBD-897F-2A1DE6D0156A}</versionStamp><traceFlag>false</traceFlag><mlppDomainId /><mlppIndicationStatus>Off</mlppIndicationStatus><preemption>Disabled</preemption><useTrustedRelayPoint>Default</useTrustedRelayPoint><retryVideoCallAsAudio>true</retryVideoCallAsAudio><securityProfileName uuid="{C6085E14-A32C-4C5E-A3D1-8DAF60D81594}">Cisco Unified Client Services Framework - Standard SIP Non-Secure Profile</securityProfileName><sipProfileName uuid="{FCBC7581-4D8D-48F3-917E-00B09FB39213}">Standard SIP Profile</sipProfileName><cgpnTransformationCssName/><useDevicePoolCgpnTransformCss>true</useDevicePoolCgpnTransformCss><geoLocationName/><geoLocationFilterName/><sendGeoLocation>false</sendGeoLocation><lines><line uuid="{D0D535D2-E5C0-D684-D56C-00B6BB8C4385}"><index>1</index><label/><display/><dirn uuid="{4694AB3D-D9E4-E315-E79A-D345AA05B186}"><pattern>7881</pattern><routePartitionName uuid="{A7E05A3F-FD1C-FD94-45DE-DF11D5BBDFD2}">P_INTERNAL</routePartitionName></dirn><ringSetting>Ring</ringSetting><consecutiveRingSetting>Use System Default</consecutiveRingSetting><ringSettingIdlePickupAlert /><ringSettingActivePickupAlert /><displayAscii/><e164Mask/><dialPlanWizardId /><mwlPolicy>Use System Policy</mwlPolicy><maxNumCalls>6</maxNumCalls><busyTrigger>2</busyTrigger><callInfoDisplay><callerName>true</callerName><callerNumber>false</callerNumber><redirectedNumber>false</redirectedNumber><dialedNumber>true</dialedNumber></callInfoDisplay><recordingProfileName/><monitoringCssName/><recordingFlag>Call Recording Disabled</recordingFlag><audibleMwi>Default</audibleMwi><speedDial /><partitionUsage>General</partitionUsage><associatedEndusers><enduser><userId>lsste</userId></enduser></associatedEndusers><missedCallLogging>true</missedCallLogging><recordingMediaSource>Gateway Preferred</recordingMediaSource></line></lines><numberOfButtons>1</numberOfButtons><phoneTemplateName uuid="{8E1A10FA-A52C-4435-A4EC-540D266C8C37}">Standard Client Services Framework</phoneTemplateName><speeddials/><busyLampFields/><primaryPhoneName/><ringSettingIdleBlfAudibleAlert>Default</ringSettingIdleBlfAudibleAlert><ringSettingBusyBlfAudibleAlert>Default</ringSettingBusyBlfAudibleAlert><blfDirectedCallParks/><addOnModules/><userLocale /><networkLocale /><idleTimeout /><authenticationUrl /><directoryUrl /><idleUrl /><informationUrl /><messagesUrl /><proxyServerUrl /><servicesUrl /><services/><softkeyTemplateName/><loginUserId /><defaultProfileName/><enableExtensionMobility>false</enableExtensionMobility><currentProfileName/><loginTime /><loginDuration /><currentConfig><userHoldMohAudioSourceId /><phoneTemplateName uuid="{8E1A10FA-A52C-4435-A4EC-540D266C8C37}">Standard Client Services Framework</phoneTemplateName><mlppDomainId /><mlppIndicationStatus>Off</mlppIndicationStatus><preemption>Disabled</preemption><softkeyTemplateName/><ignorePresentationIndicators>false</ignorePresentationIndicators><singleButtonBarge>Off</singleButtonBarge><joinAcrossLines>Off</joinAcrossLines><callInfoPrivacyStatus>Default</callInfoPrivacyStatus><dndStatus /><dndRingSetting /><dndOption>Ringer Off</dndOption><alwaysUsePrimeLine>Default</alwaysUsePrimeLine><alwaysUsePrimeLineForVoiceMessage>Default</alwaysUsePrimeLineForVoiceMessage><emccCallingSearchSpaceName xsi:nil="true" uuid="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><deviceName/><model/><product/><deviceProtocol/><class/><addressMode/><allowAutoConfig/><remoteSrstOption/><remoteSrstIp/><remoteSrstPort/><remoteSipSrstIp/><remoteSipSrstPort/><geolocationInfo/><remoteLocationName/></currentConfig><singleButtonBarge>Off</singleButtonBarge><joinAcrossLines>Off</joinAcrossLines><builtInBridgeStatus>Default</builtInBridgeStatus><callInfoPrivacyStatus>Default</callInfoPrivacyStatus><hlogStatus>On</hlogStatus><ownerUserName uuid="e8854125-510c-d08f-79fd-7fc0b78b3c85">lsste</ownerUserName><ignorePresentationIndicators>false</ignorePresentationIndicators><packetCaptureMode>None</packetCaptureMode><packetCaptureDuration>0</packetCaptureDuration><subscribeCallingSearchSpaceName/><rerouteCallingSearchSpaceName/><allowCtiControlFlag>true</allowCtiControlFlag><presenceGroupName uuid="{AD243D17-98B4-4118-8FEB-5FF2E1B781AC}">Standard Presence group</presenceGroupName><unattendedPort>false</unattendedPort><requireDtmfReception>false</requireDtmfReception><rfc2833Disabled>false</rfc2833Disabled><certificateOperation>No Pending Operation</certificateOperation><certificateStatus>None</certificateStatus><upgradeFinishTime /><deviceMobilityMode>Default</deviceMobilityMode><remoteDevice>false</remoteDevice><dndOption>Ringer Off</dndOption><dndRingSetting /><dndStatus>false</dndStatus><isActive>true</isActive><isDualMode>false</isDualMode><mobilityUserIdName/><phoneSuite>Default</phoneSuite><phoneServiceDisplay>Default</phoneServiceDisplay><isProtected>false</isProtected><mtpRequired>false</mtpRequired><mtpPreferedCodec>711ulaw</mtpPreferedCodec><dialRulesName/><sshUserId/><digestUser/><outboundCallRollover>No Rollover</outboundCallRollover><hotlineDevice>false</hotlineDevice><secureInformationUrl /><secureDirectoryUrl /><secureMessageUrl /><secureServicesUrl /><secureAuthenticationUrl /><secureIdleUrl /><alwaysUsePrimeLine>Default</alwaysUsePrimeLine><alwaysUsePrimeLineForVoiceMessage>Default</alwaysUsePrimeLineForVoiceMessage><featureControlPolicy/><deviceTrustMode>Not Trusted</deviceTrustMode><confidentialAccess><confidentialAccessMode /><confidentialAccessLevel>-1</confidentialAccessLevel></confidentialAccess><requireOffPremiseLocation>false</requireOffPremiseLocation><cgpnIngressDN/><useDevicePoolCgpnIngressDN>true</useDevicePoolCgpnIngressDN><msisdn /><enableCallRoutingToRdWhenNoneIsActive>false</enableCallRoutingToRdWhenNoneIsActive><wifiHotspotProfile/><wirelessLanProfileGroup/></phone>

I'd argue that the following tags should not be returned because they contain no value, are optional and hence just waste bandwith

<commonDeviceConfigName>

<mediaResourceListName>

<networkHoldMohAudioSourceId>

and the list goes on. Anything that is empty and optional and not an empty string should be left out.