08-19-2022 01:41 PM
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!
08-24-2022 10:48 AM
08-24-2022 11:56 AM
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!
08-25-2022 05:31 AM
This post has the same errors except for the xcc provider, I reached to see if/how he resolved it.
08-25-2022 10:07 AM
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.:
As there is not much documentation available, and few (no?) folks still around familiar with it, might need to inquire with TAC
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide