The xmlrpc module has its own callback, you should not use the one from xhttp module, see:

  - https://kamailio.org/docs/modules/5.3.x/modules/xmlrpc.html#xmlrpc.pevent_callback

Try with this one and see if the logs are still there. You may need to set some other modparams for xmlrpc module if you want to still use xhttp, so you split the handling based on URL.

On the other hand, I am not sure what causes those error messages, even when attempting to use xhttp callback, one seems to be trying to get value of $ci. Do you have topos module loaded? Any other event route callbacks that you have?

Cheers,
Daniel

On 13.02.20 12:34, Miteshkumar Thakkar wrote:
[...]
On 22-Jan-2020, at 1:57 PM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:

Have you run rtpengine in debug mode to see if it gives some hints why is retrying the same command?

Is it happening for every call and coming over the same connection?

I do not know if this is by design, but if there is something to be tune, I think the best place is inside RTPEngine, geting the response that dialog is not found seems the right one from my point of view, given that the rpc command can be used by other apps.

Agree. I have posted the same to RTPEngine. They have taken care and created a patch for that. Thank you very much for help.

OK, good to know.



A small concern:
When Kamailio receives an event dlg.terminate_dlg from RTPEngine, I am calling KSR.xmlrpc.dispatch_rpc() to process the event. Functionality is working fine. It is ending the dialog but with that it is generating below errors.

27(179) ERROR: pv [pv_core.c:704]: pv_get_callid(): cannot parse Call-Id header
27(179) ERROR: dialog [dlg_handlers.c:679]: pre_match_parse(): bad request or missing CALLID/TO hdr :-/

Should I worry about it?

Do you access $ci and use other dialog module functions when processing the xmlrpc command (inside the xmlrpc event route callback function)?

Not really. Here is what I am doing:

    local rpc_method = KSR.pv.get("$rm") or ""
    if rpc_method == "POST" or rpc_method == "GET" then
        if not (KSR.xmlrpc.dispatch_rpc()) then
            logger.log("err", "error")
        end
    end

Where is this piece of code executed?

This is the only code in function ksr_xhttp_event(e), which is executed when the event from RTPEngine is coming.

-Mitesh

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - March 9-11, 2020, Berlin - www.asipto.com
Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com