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_c…
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(a)gmail.com <mailto: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