I added LM_INFO to xmlrpc.c:
static void rpc_fault(rpc_ctx_t* ctx, int code, char* fmt, ...) { static char buf[REASON_BUF_LEN]; va_list ap;
ctx->reply.code = code; LM_INFO("rpc_fault called with code '%d'\n", code);
and got to syslog:
Dec 12 13:24:17 lohi /usr/bin/sip-proxy[20580]: INFO: pua_rpc [pua_rpc.c:280]: publish(): Calling rpc->fault(c, 500, "Wrong ETag") Dec 12 13:24:17 lohi /usr/bin/sip-proxy[20580]: INFO: xmlrpc [xmlrpc.c:911]: rpc_fault(): rpc_fault called with code '500'
It shows that indeed xmlrpc_fault gets called, but it does not produce anything to xmlrpc response.