cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
881
Views
0
Helpful
4
Replies

Gateway service API (wsapi) xcdr keeplive

Chester Rieman
Cisco Employee
Cisco Employee

Hi Folks,

Trying to use WSAPI to gather CDRs from a CUBE. I can get the app registered and it receives CDRs but fails after a time due to an inaccurate ResponseXcdrProbing message my app sends back. I followed the example of the xcc probing response shown in the doc https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cucme/CUCIS_API/CUCIS_API_Guide/CUCISA_MSG.html but I get back a 200 with Unknown XML tag.

Here is the probe response I am sending.

<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n
<soapenv:Envelope xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\">\n
<soapenv:Body>\n<ResponseXcdrProbing xmlns=\"http://www.cisco.com/schema/cisco_xcdr/v1_0\">\n
<msgHeader>\n
{RID}\n
{TID}\n
</msgHeader>\n
<sequence>{SEQ}</sequence>\n
</ResponseXcdrProbing>\n
</soapenv:Body>\n
</soapenv:Envelope>"


Here is the error I get back in the 200 OK
<SOAP:Envelope
xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope"
xmlns:xml="http://www.w3.org/XML/1998/namespace">
<SOAP:Body>
<SOAP:Fault>
<SOAP:Code>
<SOAP:Value>
SOAP:Sender
</SOAP:Value>
<SOAP:Subcode>
<SOAP:Value>
XML PARSER ERROR
</SOAP:Value>
</SOAP:Subcode>
</SOAP:Code>
<SOAP:Reason>
<SOAP:Text
xml:lang="en">
An unknown XML tag has been received
</SOAP:Text>
</SOAP:Reason>
<SOAP:Detail>
<XMLParserError>
<errorXMLDetail>
ResponseXcdrProbing
</errorXMLDetail>
<errorXMLMsg>
<?xml
version="1.0"
encoding="UTF-8"
?>
<soapenv:Envelope
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<ResponseXcdrProbing
xmlns="http://www.cisco.com/schema/cisco_xcdr/v1_0">
<msgHeader>
<registrationID>
123B97C:XCDR:myapp:158
</registrationID>
<transactionID>
125CA18:679
</transactionID>
</msgHeader>
<sequence>
1
</sequence>
</ResponseXcdrProbing>
</soapenv:Body>
</soapenv:Envelope>
</errorXMLMsg>
</XMLParserError>
</SOAP:Detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>

GW debug shows

*Aug 17 18:14:05.079 EDT: //WSAPI//OUTGOING_MESSAGE:: type 3 SolicitXcdrProbing:
*Aug 17 18:14:05.079 EDT: registrationID 1B54074:XCDR:myapp:246
*Aug 17 18:14:05.079 EDT: sequence 8
*Aug 17 18:14:05.079 EDT: interval 120
*Aug 17 18:14:05.079 EDT: failureCount 4
*Aug 17 18:14:05.079 EDT: registered 1
*Aug 17 18:14:05.079 EDT: providerStatus 1
*Aug 17 18:14:05.079 EDT: //WSAPI/XCDR/wsapi_xcdr_encode_outbound_msg:
*Aug 17 18:14:05.079 EDT: //WSAPI/XCDR/wsapi_xcdr_encode_outbound_msg: Exit
*Aug 17 18:14:05.115 EDT: //WSAPI/XCDR/wsapi_xcdr_operation_unknown_namespace:
*Aug 17 18:14:05.123 EDT: //WSAPI/XCDR: magic[0x40BE] state[STEADY] owner[0x3F2ACACC] debFlag[6] sequence[9] failureCount[4] msgStatusHdlr[0x363EC528] timerExpiredHdlr[0x363EC3CC]
*Aug 17 18:14:05.123 EDT: //WSAPI/XCDR/wsapi_prober_response_validate:338: msg send_status[SUCCESS], msg resp_status[FAILED]req_msg_type[3], resp_msg[0x0] sequence[8]
*Aug 17 18:14:05.123 EDT: //WSAPI/ /wsapi_prober_response_validate: Prober resp invalid

I could not find a good example of ResponseXcdrProbing but there was an example of ResponseXccProbing in the doc which is what I went by, apparently there is a difference between XccProbing and XcdrProbing responses. If anyone has a working example of ResponseXcdrProbing, I would love to see what it looks like.

Thanks!

4 Replies 4

dstaudt
Cisco Employee
Cisco Employee

Can you try <ResponseXcdrProbings> with an 's' on the end (for extra confusion?)

Attaching a copy of the WSDLs I found - not sure if the matching version is available on the box itself..?

Thanks David, I wondered about the wsdl - I did find a copy in another community, would be nice if we could get it via the normal method.

Anyway - No joy 

*Aug 24 15:29:32.869 EDT: //WSAPI/INFRA/4/0/wsapi_https_recv: xml_parser_msg_parse fail, reason 7
*Aug 24 15:29:32.869 EDT: //WSAPI/INFRA/4/0/wsapi_response_xml_fault:
*Aug 24 15:29:32.869 EDT: //WSAPI/XCDR/wsapi_xcdr_operation_unknown_namespace:
*Aug 24 15:29:32.869 EDT: //WSAPI/INFRA/4/0/wsapi_response_xml_fault: Exit
*Aug 24 15:29:32.869 EDT: wsapi_https_data_write: <?xml version="1.0" encoding="UTF-8"?><SOAP:Envelope xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope" xmlns:xml="http://www.w3.org/XML/1998/namespace"><SOAP:Body><SOAP:Fault><SOAP:Code><SOAP:Value>SOAP:Sender</SOAP:Value><SOAP:Subcode><SOAP:Value>XML PARSER ERROR</SOAP:Value></SOAP:Subcode></SOAP:Code><SOAP:Reason><SOAP:Text xml:lang="en">An unknown XML tag has been received</SOAP:Text></SOAP:Reason><SOAP:Detail><XMLParserError><errorXMLDetail>ResponseXcdrProbings</errorXMLDetail><errorXMLMsg><?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<ResponseXcdrProbings xmlns="http://www.cisco.com/schema/cisco_xcdr/v1_0">
<msgHeader>
<registrationID>2B190:XCDR:myapp:2</registrationID>
<transactionID>65B34:8</transactionID>
</msgHeader>
<sequence>2</sequence>
</ResponseXcdrProbings>
</soapenv:Body>
</soapenv:Envelope></errorXMLMsg></XMLParserError></SOAP:Detail></SOAP:Fault></SOAP:Body></SOAP:Envelope>
*Aug 24 15:29:32.869 EDT: //WSAPI/INFRA/wsapi_https_post_action: Exit
*Aug 24 15:29:32.881 EDT: //WSAPI/INFRA/wsapi_httpc_post_callback:
*Aug 24 15:29:32.881 EDT: //WSAPI/INFRA/2/1/65B34:8:tx_contextp 229049EC tx_id 8 context1 (2 2) context2 (1 1) status 200
*Aug 24 15:29:32.881 EDT: //WSAPI/INFRA/2/1/65B34:8:tx_contextp 229049EC tx_id 8 context1 (2 2) context2 (1 1): msg_type 3,
*Aug 24 15:29:32.881 EDT: wsapi_httpc_post_callback: OK
*Aug 24 15:29:32.881 EDT: //WSAPI/XCDR: magic[0x40BE] state[STEADY] owner[0x22C5B480] debFlag[6] sequence[3] failureCount[1] msgStatusHdlr[0x363E8828] timerExpiredHdlr[0x363E86CC]
*Aug 24 15:29:32.881 EDT: //WSAPI/XCDR/wsapi_prober_response_validate:338: msg send_status[SUCCESS], msg resp_status[FAILED]req_msg_type[3], resp_msg[0x0] sequence[2]
*Aug 24 15:29:32.881 EDT: //WSAPI/ /wsapi_prober_response_validate: Prober resp invalid

I see this in the debugs and wondering what namespace it wants:

*Aug 24 15:33:33.102 EDT: //WSAPI/XCDR/wsapi_xcdr_operation_unknown_namespace:

I'm open to any other suggestions you may have, I'm down to just trying random changes in my response message.

Thanks!

Chester Rieman
Cisco Employee
Cisco Employee

This post has the same errors except for the xcc provider, I reached to see if/how he resolved it. 

https://community.cisco.com/t5/other-network-architecture-subjects/gsapi-xcc-error-response-from-router-for-responsexccprobing/td-p/3397846

Maybe try removing the namespace altogether from <ResponseXcdrProbings>?
The WSDL above is fairly broken, it seems.  After hacking on it some to the point I could generate a request in SoapUI, I noted that no namespace seems to be included in the requests, e.g.:

Screenshot from 2022-08-25 12-06-16.png

As there is not much documentation available, and few (no?) folks still around familiar with it, might need to inquire with TAC