CUCM の AXL Web サービスに対して SOAP を使用すると、多数のクエリ コールが発生します。
getLine getDeviceProfile getUser
等々。
WDSL は次のことを示します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/8.5">
<soapenv:Header/>
<soapenv:Body>
<ns:getDeviceProfile sequence="?">
<!--You have a CHOICE of the next 2 items at this level-->
<name>?</name>
<uuid>?</uuid>
<!--Optional:-->
<returnedTags ctiid="?" uuid="?">
<!--Optional:-->
<name>?</name>
<!--Optional:-->
<description>?</description>
<!--Optional:-->
<product>?</product>
<!--Optional:-->
<model>?</model>
<!--Optional:-->
<class>?</class>
<!--Optional:-->
<protocol>?</protocol>
<!--Optional:-->
<protocolSide>?</protocolSide>
<!--Optional:-->
<userHoldMohAudioSourceId>?</userHoldMohAudioSourceId>
<!--Optional:-->
<vendorConfig>
<!--You may enter ANY elements at this point-->
</vendorConfig>
<!--Optional:-->
<versionStamp>?</versionStamp>
<!--Optional:-->
<traceFlag>?</traceFlag>
<!--Optional:-->
<mlppDomainId>?</mlppDomainId>
<!--Optional:-->
<mlppIndicationStatus>?</mlppIndicationStatus>
<!--Optional:-->
<preemption>?</preemption>
<!--Optional:-->
<lines>
<!--You have a CHOICE of the next 2 items at this level-->
<!--Zero or more repetitions:-->
<line uuid="?" ctiid="?">
<!--Optional:-->
<index>?</index>
<!--Optional:-->
<label>?</label>
<!--Optional:-->
<asciiLabel>?</asciiLabel>
<!--Optional:-->
<display>?</display>
<!--Optional:-->
<dirn uuid="?">
<!--Optional:-->
<pattern>?</pattern>
<!--Optional:-->
<routePartitionName uuid="?">?</routePartitionName>
</dirn>
<!--Optional:-->
<ringSetting>?</ringSetting>
<!--Optional:-->
<consecutiveRingSetting>?</consecutiveRingSetting>
<!--Optional:-->
<ringSettingIdlePickupAlert>?</ringSettingIdlePickupAlert>
<!--Optional:-->
<ringSettingActivePickupAlert>?</ringSettingActivePickupAlert>
<!--Optional:-->
<displayAscii>?</displayAscii>
<!--Optional:-->
<e164Mask>?</e164Mask>
<!--Optional:-->
<dialPlanWizardId>?</dialPlanWizardId>
<!--Optional:-->
<mwlPolicy>?</mwlPolicy>
<!--Optional:-->
<maxNumCalls>?</maxNumCalls>
<!--Optional:-->
<busyTrigger>?</busyTrigger>
<!--Optional:-->
<callInfoDisplay>
<!--Optional:-->
<callerName>?</callerName>
<!--Optional:-->
<callerNumber>?</callerNumber>
<!--Optional:-->
<redirectedNumber>?</redirectedNumber>
<!--Optional:-->
<dialedNumber>?</dialedNumber>
</callInfoDisplay>
<!--Optional:-->
<recordingProfileName uuid="?">?</recordingProfileName>
<!--Optional:-->
<monitoringCssName uuid="?">?</monitoringCssName>
<!--Optional:-->
<recordingFlag>?</recordingFlag>
<!--Optional:-->
<audibleMwi>?</audibleMwi>
<!--Optional:-->
<speedDial>?</speedDial>
<!--Optional:-->
<partitionUsage>?</partitionUsage>
<!--Optional:-->
<associatedEndusers>
<!--Zero or more repetitions:-->
<enduser>
<!--Optional:-->
<userId>?</userId>
</enduser>
</associatedEndusers>
<!--Optional:-->
<missedCallLogging>?</missedCallLogging>
</line>
<!--Zero or more repetitions:-->
<lineIdentifier>
<!--Optional:-->
<directoryNumber>?</directoryNumber>
<!--Optional:-->
<routePartitionName>?</routePartitionName>
</lineIdentifier>
</lines>
<!--Optional:-->
<numberOfButtons>?</numberOfButtons>
<!--Optional:-->
<phoneTemplateName uuid="?">?</phoneTemplateName>
<!--Optional:-->
<speeddials>
<!--Zero or more repetitions:-->
<speeddial>
<!--Optional:-->
<dirn>?</dirn>
<!--Optional:-->
<label>?</label>
<!--Optional:-->
<asciiLabel>?</asciiLabel>
<!--Optional:-->
<index>?</index>
</speeddial>
</speeddials>
<!--Optional:-->
<busyLampFields>
<!--Zero or more repetitions:-->
<busyLampField>
<!--Optional:-->
<blfDest>?</blfDest>
<!--You have a CHOICE of the next 1 items at this level-->
<!--Optional:-->
<blfDirn>?</blfDirn>
<!--Optional:-->
<routePartition>?</routePartition>
<!--Optional:-->
<label>?</label>
<!--Optional:-->
<asciiLabel>?</asciiLabel>
<!--Optional:-->
<associatedBlfSdFeatures>
<!--Zero or more repetitions:-->
<feature>?</feature>
</associatedBlfSdFeatures>
<!--Optional:-->
<index>?</index>
</busyLampField>
</busyLampFields>
<!--Optional:-->
<blfDirectedCallParks>
<!--Zero or more repetitions:-->
<blfDirectedCallPark>
<!--Optional:-->
<label>?</label>
<!--You have a CHOICE of the next 2 items at this level-->
<!--Optional:-->
<directedCallParkId>?</directedCallParkId>
<!--Optional:-->
<directedCallParkDnAndPartition>
<!--Optional:-->
<dnPattern>?</dnPattern>
<!--Optional:-->
<routePartitionName uuid="?">?</routePartitionName>
</directedCallParkDnAndPartition>
<!--Optional:-->
<labelAscii>?</labelAscii>
<!--Optional:-->
<index>?</index>
</blfDirectedCallPark>
</blfDirectedCallParks>
<!--Optional:-->
<addOnModules>
<!--0 to 2 repetitions:-->
<addOnModule uuid="?">
<!--Optional:-->
<loadInformation special="?">?</loadInformation>
<!--Optional:-->
<model>?</model>
<!--Optional:-->
<index>?</index>
</addOnModule>
</addOnModules>
<!--Optional:-->
<userlocale>?</userlocale>
<!--Optional:-->
<defaultProfileName>?</defaultProfileName>
<!--Optional:-->
<currentProfileName uuid="?">?</currentProfileName>
<!--Optional:-->
<loginTime>?</loginTime>
<!--Optional:-->
<loginDuration>?</loginDuration>
<!--Optional:-->
<singleButtonBarge>?</singleButtonBarge>
<!--Optional:-->
<joinAcrossLines>?</joinAcrossLines>
<!--Optional:-->
<loginUserId uuid="?">?</loginUserId>
<!--Optional:-->
<ignorePresentationIndicators>?</ignorePresentationIndicators>
<!--Optional:-->
<dndOption>?</dndOption>
<!--Optional:-->
<dndRingSetting>?</dndRingSetting>
<!--Optional:-->
<dndStatus>?</dndStatus>
<!--Optional:-->
<emccCallingSearchSpace uuid="?">?</emccCallingSearchSpace>
<!--Optional:-->
<alwaysUsePrimeLine>?</alwaysUsePrimeLine>
<!--Optional:-->
<alwaysUsePrimeLineForVoiceMessage>?</alwaysUsePrimeLineForVoiceMessage>
<!--Optional:-->
<softkeyTemplateName uuid="?">?</softkeyTemplateName>
<!--Optional:-->
<callInfoPrivacyStatus>?</callInfoPrivacyStatus>
<!--Optional:-->
<currentConfig>
<!--Optional:-->
<userHoldMohAudioSourceId>?</userHoldMohAudioSourceId>
<!--Optional:-->
<phoneTemplateName uuid="?">?</phoneTemplateName>
<!--Optional:-->
<mlppDomainId>?</mlppDomainId>
<!--Optional:-->
<mlppIndicationStatus>?</mlppIndicationStatus>
<!--Optional:-->
<preemption>?</preemption>
<!--Optional:-->
<softkeyTemplateName uuid="?">?</softkeyTemplateName>
<!--Optional:-->
<ignorePresentationIndicators>?</ignorePresentationIndicators>
<!--Optional:-->
<singleButtonBarge>?</singleButtonBarge>
<!--Optional:-->
<joinAcrossLines>?</joinAcrossLines>
<!--Optional:-->
<callInfoPrivacyStatus>?</callInfoPrivacyStatus>
<!--Optional:-->
<dndStatus>?</dndStatus>
<!--Optional:-->
<dndRingSetting>?</dndRingSetting>
<!--Optional:-->
<dndOption>?</dndOption>
<!--Optional:-->
<alwaysUsePrimeLine>?</alwaysUsePrimeLine>
<!--Optional:-->
<alwaysUsePrimeLineForVoiceMessage>?</alwaysUsePrimeLineForVoiceMessage>
<!--Optional:-->
<emccCallingSearchSpaceName uuid="?">?</emccCallingSearchSpaceName>
<!--Optional:-->
<deviceName>?</deviceName>
<!--Optional:-->
<model>?</model>
<!--Optional:-->
<product>?</product>
<!--Optional:-->
<deviceProtocol>?</deviceProtocol>
<!--Optional:-->
<class>?</class>
<!--Optional:-->
<addressMode>?</addressMode>
<!--Optional:-->
<allowAutoConfig>?</allowAutoConfig>
<!--Optional:-->
<remoteSrstOption>?</remoteSrstOption>
<!--Optional:-->
<remoteSrstIp>?</remoteSrstIp>
<!--Optional:-->
<remoteSrstPort>?</remoteSrstPort>
<!--Optional:-->
<remoteSipSrstIp>?</remoteSipSrstIp>
<!--Optional:-->
<remoteSipSrstPort>?</remoteSipSrstPort>
<!--Optional:-->
<geolocationInfo>?</geolocationInfo>
</currentConfig>
<!--Optional:-->
<services>
<!--Zero or more repetitions:-->
<service uuid="?">
<!--Optional:-->
<telecasterServiceName uuid="?">?</telecasterServiceName>
<!--Optional:-->
<name>?</name>
<!--Optional:-->
<url>?</url>
<!--Optional:-->
<urlButtonIndex>?</urlButtonIndex>
<!--Optional:-->
<urlLabel>?</urlLabel>
<!--Optional:-->
<urlLabelAscii>?</urlLabelAscii>
<!--Optional:-->
<serviceNameAscii>?</serviceNameAscii>
<!--Optional:-->
<phoneService>?</phoneService>
<!--Optional:-->
<phoneServiceCategory>?</phoneServiceCategory>
<!--Optional:-->
<vendor>?</vendor>
<!--Optional:-->
<version>?</version>
<!--Optional:-->
<priority>?</priority>
</service>
</services>
<!--Optional:-->
<featureControlPolicy uuid="?">?</featureControlPolicy>
</returnedTags>
</ns:getDeviceProfile>
</soapenv:Body>
</soapenv:Envelope>
<returnedTags>
サブツリーが返されるものを制御するようになりました。私は以前にいくつかの呼び出しを行っていて、すべての値を取得していました (これが私が望むものです)。その後、行っていくつかの変更を加えました (何がわからない)。突然、要求したものだけを取得し始めました。
私にとって重要なのは、AXL に、参照されているオブジェクトにあるすべてのデータを、リクエストで明示的にリストする代わりに返すためのトリックは何ですか?
つまり、次のような単純なクエリが必要です。
<soapenv:Envelope xmlns:ns="http://www.cisco.com/AXL/API/8.5" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns:getLine sequence="?">
<uuid>{02CF73CE-140E-AD9A-9E0E-B56134636D71}</uuid>
<returnedTags uuid="?"/>
</ns:getLine>
</soapenv:Body>
</soapenv:Envelope>
そして、Line に入力されたすべてのデータを取得します。しかし、空の<returnedTags/>
タグを含めただけでは、何も返されません。必要な属性を表示するために空のノードをリストすると、それらの明示的な属性が返されます。では、返されるすべての属性を取得するには何を送信すればよいでしょうか?