cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
772
Views
20
Helpful
6
Replies

Getting too few devices back from RisPort70, not sure why?

merrifieldrw
Beginner
Beginner

Greetings Cisco Community,

I am trying to make an app that uses the RisPort70 API to get registration status of all 8821 phones on my system. I am able to use the AXL API to get a list of the 8821 device names, and use that to make a SelectCMDeviceExt call to the RisPort70 API. There are around 300 phones of this type on the system. But when I make the request, I only get about results for about 5-20 devices, depending on how I list my phones. No error message or anything. This is way under the 1000 device limit, so I'm not sure what the issue is.

Here is my XML (with a bunch more device names omitted in the ...):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.cisco.com/ast/soap">
<soapenv:Header/>
<soapenv:Body>
<soap:selectCmDeviceExt>
<soap:StateInfo/>
<soap:CmSelectionCriteria>
<soap:MaxReturnedDevices>1000</soap:MaxReturnedDevices>
<soap:DeviceClass>Any</soap:DeviceClass>
<soap:Model>36216</soap:Model>
<soap:Status>Any</soap:Status>
<soap:NodeName/>
<soap:SelectBy>Name</soap:SelectBy>
<soap:SelectItems>
<soap:item>
<soap:Item>SEP14169DBFD652</soap:Item>
</soap:item>
<soap:item>
<soap:Item>SEPC4B9CDB5ABCA</soap:Item>
</soap:item>
...
<soap:item>
<soap:Item>SEPC4B9CDB5BCD4</soap:Item>
</soap:item>
<soap:item>
<soap:Item>SEP009AD2F10EB6</soap:Item>
</soap:item>
</soap:SelectItems>
<soap:Protocol>Any</soap:Protocol>
<soap:DownloadStatus>Any</soap:DownloadStatus>
</soap:CmSelectionCriteria>
</soap:selectCmDeviceExt>
</soapenv:Body>
</soapenv:Envelope>

 

1 Accepted Solution

Accepted Solutions

merrifieldrw
Beginner
Beginner

I could never get it to work as expected, but I found a work-around. I split my list of phones into chunks of 10, and I get all the data back.

View solution in original post

6 Replies 6

dstaudt
Cisco Employee
Cisco Employee

RIS will only report registration status for devices that are actively registered, or have registered (and subsequently unregistered) in the past (I believe these are purged after some time, maybe 24 hrs, and are certainly purged on a CUCM restart.)  So, if the missing devices are ones that are in the database but not being reported by Risport, then the assumption should be that they are not registered.  If this is contrary to your observations - e.g. if missing devices are in fact registered - then we may need to dig in a bit further to investigate, and I would recommend opening a DevNet developer support ticket: Support 

Thanks for the reply!

 

There are quite a few more active devices than that. I can list the phones from my wireless controller, and there are about 200 on the network right now, which matches what I see in the CUCM web interface. Interestingly, if I set 'NodeName' to my subscriber (as opposed to not setting the field to query all cluster members) , I got 92 devices back. Better, but still way off from where it should be. 

 

Maybe something wrong with the RIS data collector service?

 

Regards,

 

Ross

dstaudt
Cisco Employee
Cisco Employee
  • Is there only a single subscriber?  Only devices registered to the specific node would be reported if you queried by specific node...
  • It would be interesting to see what you get back from SelectCmDevice (vs. SelectCmDeviceExt, which removes duplicate device entries across nodes) to see if any more/fewer devices are returned
  • It would be interesting to see what you get after restarting the 'Cisco RIS Data Collector' on all nodes, and/or restarting all nodes fully (of course this is highly disruptive, but if it's a test lab..?)
  • Might be worth checking/correcting CUCM database replication status
  • My understanding is that ultimately the RIS service is the same data service behind both Risport and the CUCM web admin UI, so getting different results doesn't sound right

If none of the above turn up anything actionable, might be time to open a ticket...

  • Is there only a single subscriber?  Only devices registered to the specific node would be reported if you queried by specific node...
    There  is one publisher, and one subscriber. Most phones are registered to the subscriber, but a handful register to the publisher. There are also IM&P servers in the cluster too.

  • It would be interesting to see what you get back from SelectCmDevice (vs. SelectCmDeviceExt, which removes duplicate device entries across nodes) to see if any more/fewer devices are returned
    Pretty much the exact same behavior between SelectCmDevice and SelectCmDeviceExt. 

  • It would be interesting to see what you get after restarting the 'Cisco RIS Data Collector' on all nodes, and/or restarting all nodes fully (of course this is highly disruptive, but if it's a test lab..?)
    I actually tried that since my last post (restarted it on cucm pub and sub). It actually made it worse; whether selecting the subscriber, publisher or all nodes, I now only get 4 or 5 devices back. An interesting quirk here is that in the XML response body 'TotalDevicesFound' element shows only 4 or 5, but down in the state info section, it has it's own 'TotalItemsFound' which shows the proper amounts of phones per server (i.e. 40 on pub, 228 on sub). 

    Unfortunately, this is not a lab device; it is a production system for a hospital (so it need to be up pretty much 24/7). I can reboot it during a patch window, but that will be in mid January.

  • Might be worth checking/correcting CUCM database replication status
    I'll take a look at that. However, the system otherwise seems to be operating fine.

  • My understanding is that ultimately the RIS service is the same data service behind both Risport and the CUCM web admin UI, so getting different results doesn't sound right
    Yes, that may be my only option for solving this. 


Once again, thank you for your assistance.

 

Regards,

 

Ross

merrifieldrw
Beginner
Beginner

I could never get it to work as expected, but I found a work-around. I split my list of phones into chunks of 10, and I get all the data back.

Glad you found a workaround, though it's a bit worrisome that the original root issue may still remain...a few more thoughts in case you can share your observations:

* Does the issue occur when you do a wildcard '*' search instead of providing specific device names?

* Similarly, if you specify the wildcard '255' for <model> (while still providing specific device names) what do you see?

* The Risport responses use HTTP 1.1 chunked encoding, curious to know if you are using a well-known library for handling the requests (which should handled chunked encoding for you transparently), or, if you're doing something more low-level, possibly you are only receiving/reading the first chunk..?

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: