SOAP RispPort - max query - ccm7

Version 1
    This document was generated from CDN thread

    Created by: Davide Fiumi on 29-07-2010 06:56:13 PM
    HI,
    i developed an xml service to intercom (multicast) form ccm 7
    so, using an admin console and db, I create a lot of phone-groups where i insert phones.
    In this case i create a group with 30 devices.
     
    For avery device I query SOAP/RispPort to get registrationStatus and IpAddress
     
    registrStatus = risPort_QueryByPhoneName("getStatus",rs_ListGroupDevices("DeviceName"), callManagerIP, GIPFonoUser, GIPFonoPwd);
    thePhoneIP = risPort_QueryByPhoneName("getIPAddress",rs_ListGroupDevices("DeviceName"), callManager, GIPFonoUser, GIPFonoPwd);
     
     
    the function that i use is this:
     
    function risPort_QueryByPhoneName(action,phoneName, cm, cmUserID, cmPassword){
    var authstring = text2base64(cmUserID + ":" + cmPassword);
    var xmlDoc = new ActiveXObject("msxml2.DOMDocument.3.0");
    xmlDoc.async = false;
    var xmlhttp = new ActiveXObject("Msxml2.ServerXMLHTTP.3.0");
    xmlhttp.setOption(2, 13056);
    var soaprequest;
    var queryResult;
    var objNodeList,objNode,index;
    soaprequest = '<?xml version=\"1.0\" encoding=\"utf-8\"?>'; 
    soaprequest = soaprequest + '<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:soapenc=\"[url=http://schemas.xmlsoap.org/soap/encoding\">']http://schemas.xmlsoap.org/soap/encoding\">'; 
    soaprequest = soaprequest + '<SOAP-ENV:Header/>'; 
    soaprequest = soaprequest + '<SOAP-ENV:Body>'; 
    soaprequest = soaprequest + '<SelectCmDevice sequence=\"123456\">'; 
    soaprequest = soaprequest + '<CmSelectionCriteria>'; 
    soaprequest = soaprequest + '<Class>Phone</Class>'; 
    soaprequest = soaprequest + '<Model>255</Model>'; 
    soaprequest = soaprequest + '<NodeName>' + cm + '</NodeName>'; 
    soaprequest = soaprequest + '<SelectBy>Name</SelectBy>'; 
    soaprequest = soaprequest + '<MaxReturnedDevices>10</MaxReturnedDevices>';  
    soaprequest = soaprequest + '<SelectItems soapenc:arrayType=\"SelectItems[1]\">';  
    soaprequest = soaprequest + '<Item>' + phoneName + '</Item>'; 
    soaprequest = soaprequest + '</SelectItems>';  
    soaprequest = soaprequest + '</CmSelectionCriteria>'; 
    soaprequest = soaprequest + '</SelectCmDevice>'; 
    soaprequest = soaprequest + '</SOAP-ENV:Body>'; 
    soaprequest = soaprequest + '</SOAP-ENV:Envelope>'; 
    xmlhttp.open("POST", "https://" + cm + ":8443/realtimeservice/services/RisPort", false );
    xmlhttp.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
    xmlhttp.setRequestHeader("Content-Length",soaprequest.length);
    xmlhttp.setRequestHeader("SOAPAction", "http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDevice");
    xmlhttp.setRequestHeader("Authorization", "Basic " + authstring);
    xmlDoc.loadXML(soaprequest);
    xmlhttp.send(xmlDoc);
    xmlDoc.loadXML(xmlhttp.responseText);
                 switch(action){
        
           case"getIPAddress":
           try{
                         queryResult = xmlDoc.selectSingleNode("//IpAddress").text;
             break;
               }
               catch(err){
           queryResult = "";
           break;
               }
         
        case"getStatus":
           try{
                        queryResult =  xmlDoc.selectSingleNode("//Status").text;
         break;
               }
               catch(err){
           queryResult = "";
           break;
               } 
        
        case"getModel":
           try{
                          queryResult = xmlDoc.selectSingleNode("//Model").text;
           break;
               }
               catch(err){
           queryResult = "";
           break;
               } 
         
        case"getDescription":
          try{
                          queryResult = xmlDoc.selectSingleNode("//Description").text;
              break;
               }
               catch(err){
           queryResult = "";
           break;
               }
        
         }
    return queryResult;
    }
     
     
    the problem is that i can't receive response for more then 7 devices
    if i query only ip address i get more responses so i think that there is a limit to max query...
     
    Can you help me?

    Subject: RE: SOAP RispPort - max query - ccm7
    Replied by: David Staudt on 29-07-2010 09:44:07 PM
    True, there is a throttle limit on requests, I believe 15/minute by default.  Note, you can request multiple device names (up to 200) per a single SelectCmDevice request.  

    Subject: RE: SOAP RispPort - max query - ccm7
    Replied by: Davide Fiumi on 30-07-2010 07:16:57 AM
    True, there is a throttle limit on requests, I believe 15/minute by default.  Note, you can request multiple device names (up to 200) per a single SelectCmDevice request.  


    how can i solve my problem?
    i have to get ipaddress and registration status for every device.
    How can I modify my function?

    Subject: RE: SOAP RispPort - max query - ccm7
    Replied by: Srinivas Reddy on 15-01-2011 12:39:56 PM
    Hello,
    Did you get the solution for this, also can you tell me, how i can get the RISService.cs file? and also wsdl file for RisPort?
     
    Thanks for your immediate help!
     


    True, there is a throttle limit on requests, I believe 15/minute by default.  Note, you can request multiple device names (up to 200) per a single SelectCmDevice request.  



    how can i solve my problem?
    i have to get ipaddress and registration status for every device.
    How can I modify my function?