Hello Serge,

Thank you for clarifying this for me. But there is different issue when I change format. It appears that Kamailio indeed expects body under parameters https://www.kamailio.org/docs/modules/5.2.x/modules/pua_rpc.html#pua_rpc.r.pua.publish.

I run:
# curl -H "Content-Type: application/json" -X POST -d '{"jsonrpc": "2.0", "method": "pua.publish", "params": {"presentity_uri": "sip:jh@test.tutpro.com", "expires": "600", "event package": "message-summary", "content type": "application/simple-message-summary", "id": "4ce8c647a7b947c@172.16.30.151", "ETag": ".", "outbound proxy": "sip:127.0.0.1:5060;transport=udp", "extra_headers": "P-Flags: 0"}, "body": 1}' http://172.16.30.151:5060/JSON_RPC
Result:
{
        "jsonrpc":      "2.0",
        "error":        {
                "code": 400,
                "message":      "Body is missing"
        }
}

Debug:
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: <script>: == TRACE. xhttp:request
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: <script>: == TRACE. xhttp:request. /JSON_RPC
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: <core> [core/parser/msg_parser.c:185]: get_hdr_field(): content_length=355
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: <core> [core/parser/msg_parser.c:89]: get_hdr_field(): found end of header
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:155]: pua_rpc_publish_mode(): rpc publishing ...
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:178]: pua_rpc_publish_mode(): presentity uri 'sip:jh@test.tutpro.com'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:193]: pua_rpc_publish_mode(): expires '600'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:195]: pua_rpc_publish_mode(): event 'message-summary'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:197]: pua_rpc_publish_mode(): content type 'application/simple-message-summary'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:199]: pua_rpc_publish_mode(): id '4ce8c647a7b947c@172.16.30.151'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:201]: pua_rpc_publish_mode(): ETag '.'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:203]: pua_rpc_publish_mode(): outbound_proxy 'sip:127.0.0.1:5060;transport=udp'
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: pua_rpc [pua_rpc.c:205]: pua_rpc_publish_mode(): extra headers 'P-Flags: 0'
Jan 22 18:41:36 test kamailio: 14(27146) ERROR: pua_rpc [pua_rpc.c:211]: pua_rpc_publish_mode(): body is missing, but content type is not .
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: jsonrpcs [jsonrpcs_mod.c:423]: jsonrpc_send(): sending response with body: 0x7ffc3b0e2290 - 400 Body is missing
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: xhttp [xhttp_mod.c:429]: xhttp_send_reply(): response with content-type: application/json
Jan 22 18:41:36 test kamailio: 14(27146) DEBUG: xhttp [xhttp_mod.c:439]: xhttp_send_reply(): response with body: {
Jan 22 18:41:36 test kamailio: "jsonrpc":#011"2.0",
Jan 22 18:41:36 test kamailio: "error":#011{
Jan 22 18:41:36 test kamailio: "code":#011400,
Jan 22 18:41:36 test kamailio: "message":#011"Body is missing"
Jan 22 18:41:36 test kamailio: }
Jan 22 18:41:36 test kamailio: }

вт, 22 січ. 2019 о 17:05 Serge S. Yuriev <me@nevian.org> пише:
Hi

id is not inside params but must to be at top-level.

You have to read JSONRPC specs %)
https://www.jsonrpc.org/specification

On 22/01/2019 13:47, Володимир Іванець wrote:
> Hello Henning,
>
> Thank you for your message. I tried setting *id* too but got same result.
>
>     /# curl -H "Content-Type: application/json" -X POST -d '{"jsonrpc":
>     "2.0", "method": "pua.publish", "params": {"presentity_uri":
>     "sip:h@test.tutpro.com <mailto:sip%3Ah@test.tutpro.com>", "expires":
>     "600", "event package": "message-summary", "content type":
>     "application/simple-message-summary", "id":
>     "NmU0MjI0NWM4ZjI3MWI3NTNlMTJhOWNlZWJlMWE0Yzg.", "ETag": ".",
>     "outbound proxy": "sip:127.0.0.1:5060;transport=udp",
>     "extra_headers": "P-Flags: 0", "body": "."}}'
>     http://172.16.30.151:5060/JSON_RPC/
>     /{/
>     /        "jsonrpc":      "2.0",/
>     /        "error":        {/
>     /                "code": 500,/
>     /                "message":      "Internal error: failed to create
>     context"/
>     /        }/
>     /}/
>
>
>
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <script>: == TRACE.
>     xhttp:request/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <script>: == TRACE.
>     xhttp:request. /JSON_RPC/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/parser/msg_parser.c:185]: get_hdr_field(): content_length=372/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/parser/msg_parser.c:89]: get_hdr_field(): found end of header/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:155]: pua_rpc_publish_mode(): rpc publishing .../
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:178]: pua_rpc_publish_mode(): presentity uri
>     'sip:jh@test.tutpro.com <mailto:sip%3Ajh@test.tutpro.com>'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:193]: pua_rpc_publish_mode(): expires '600'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:195]: pua_rpc_publish_mode(): event 'message-summary'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:197]: pua_rpc_publish_mode(): content type
>     'application/simple-message-summary'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:199]: pua_rpc_publish_mode(): id
>     'NmU0MjI0NWM4ZjI3MWI3NTNlMTJhOWNlZWJlMWE0Yzg.'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:201]: pua_rpc_publish_mode(): ETag '.'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:203]: pua_rpc_publish_mode(): outbound_proxy
>     'sip:127.0.0.1:5060;transport=udp'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:205]: pua_rpc_publish_mode(): extra headers 'P-Flags: 0'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: pua_rpc
>     [pua_rpc.c:207]: pua_rpc_publish_mode(): body '.'/
>     /Jan 22 12:40:54 test kamailio: 16(26145) ERROR: jsonrpcs
>     [jsonrpcs_mod.c:1010]: jsonrpc_delayed_ctx_new(): id attribute is
>     missing/
>     /Jan 22 12:40:54 test kamailio: 16(26145) ERROR: pua_rpc
>     [pua_rpc.c:256]: pua_rpc_publish_mode(): internal error: failed to
>     create context/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: jsonrpcs
>     [jsonrpcs_mod.c:423]: jsonrpc_send(): sending response with body:
>     0x7ffd167c0ef0 - 500 Internal error: failed to create context/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: xhttp
>     [xhttp_mod.c:429]: xhttp_send_reply(): response with content-type:
>     application/json/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: xhttp
>     [xhttp_mod.c:439]: xhttp_send_reply(): response with body: {/
>     /Jan 22 12:40:54 test kamailio: "jsonrpc":#011"2.0",/
>     /Jan 22 12:40:54 test kamailio: "error":#011{/
>     /Jan 22 12:40:54 test kamailio: "code":#011500,/
>     /Jan 22 12:40:54 test kamailio: "message":#011"Internal error:
>     failed to create context"/
>     /Jan 22 12:40:54 test kamailio: }/
>     /Jan 22 12:40:54 test kamailio: }/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: xhttp
>     [xhttp_mod.c:441]: xhttp_send_reply(): sending out response: 500
>     Internal error: failed to create context/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/msg_translator.c:162]: check_via_address(): (172.16.30.151,
>     172.16.30.151, 0)/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/tcp_main.c:2226]: tcpconn_send_put(): send from reader (26145
>     (16)), reusing fd/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/tcp_main.c:2460]: tcpconn_do_send(): sending.../
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/tcp_main.c:2494]: tcpconn_do_send(): after real write: c=
>     0x7f8b7f314f68 n=297 fd=8/
>     /Jan 22 12:40:54 test kamailio: 16(26145) DEBUG: <core>
>     [core/tcp_main.c:2495]: tcpconn_do_send(): buf=/
>     /Jan 22 12:40:54 test kamailio: HTTP/1.1 500 Internal error: failed
>     to create context/
>     /Jan 22 12:40:54 test kamailio: Sia: SIP/2.0/TCP 172.16.30.151:44226
>     <http://172.16.30.151:44226>/
>     /Jan 22 12:40:54 test kamailio: Content-Type: application/json/
>     /Jan 22 12:40:54 test kamailio: Server: kamailio (5.2.1 (x86_64/linux))/
>     /Jan 22 12:40:54 test kamailio: Content-Length: 108/
>     /Jan 22 12:40:54 test kamailio: {/
>     /Jan 22 12:40:54 test kamailio: "jsonrpc":#011"2.0",/
>     /Jan 22 12:40:54 test kamailio: "error":#011{/
>     /Jan 22 12:40:54 test kamailio: "code":#011500,/
>     /Jan 22 12:40:54 test kamailio: "message":#011"Internal error:
>     failed to create context"/
>     /Jan 22 12:40:54 test kamailio: }/
>     /Jan 22 12:40:54 test kamailio: }/
>
>
> пн, 21 січ. 2019 о 23:16 Henning Westerholt <hw@kamailio.org
> <mailto:hw@kamailio.org>> пише:
>
>     Am Montag, 21. Januar 2019, 19:10:11 CET schrieb Володимир Іванець:
>      > Are you able to generate PUBLISH message with jsonrpcs? I can
>     only do it
>      > with xmlrpc. Kamailio version is 5.2.1.
>      >
>      > When I use jsonrpc:
>
>     Hello,
>
>     not looked that deep into it, but have you tried to set an id (as
>     reported
>     from this error message?
>
>     Jan 21 19:37:58 test kamailio: 13(25583) ERROR: jsonrpcs
>     [jsonrpcs_mod.c:
>     1010]: jsonrpc_delayed_ctx_new(): id attribute is missing
>
>     Best regards,
>
>     Henning
>
>
>      > *# curl -H "Content-Type: application/json" -X POST -d
>     '{"jsonrpc": "2.0",
>      > "method": "pua.publish", "params": {"presentity_uri":
>      > "sip:jh@test.tutpro.com <mailto:sip%3Ajh@test.tutpro.com>
>     <sip%3Ajh@test.tutpro.com <mailto:sip%253Ajh@test.tutpro.com>>",
>     "expires": "600",
>      > "event package": "message-summary", "content type":
>      > "application/simple-message-summary", "id": ".", "ETag": ".",
>     "outbound
>      > proxy": "sip:127.0.0.1:5060;transport=udp", "extra_headers":
>     "P-Flags: 0",
>      > "body": "."}}' http://172.16.30.151:5060/JSON_RPC
>      > <http://172.16.30.151:5060/JSON_RPC>*
>      >
>      > I get:
>      >
>      > *{*
>      > *        "jsonrpc":      "2.0",*
>      > *        "error":        {*
>      > *                "code": 500,*
>      > *                "message":      "Internal error: failed to
>     create context"*
>      > *        }*
>      >
>      >
>      > Debug output:
>      >
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <script>: == TRACE.
>      > xhttp:request*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <script>: == TRACE.
>      > xhttp:request. /JSON_RPC*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/parser/msg_parser.c:185]: get_hdr_field(): content_length=329*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/parser/msg_parser.c:89]: get_hdr_field(): found end of header*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:155]:
>      > pua_rpc_publish_mode(): rpc publishing ...*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:178]:
>      > pua_rpc_publish_mode(): presentity uri 'sip:jh@test.tutpro.com
>     <mailto:sip%3Ajh@test.tutpro.com>
>      > <sip%3Ajh@test.tutpro.com <mailto:sip%253Ajh@test.tutpro.com>>'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:193]:
>      > pua_rpc_publish_mode(): expires '600'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:195]:
>      > pua_rpc_publish_mode(): event 'message-summary'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:197]:
>      > pua_rpc_publish_mode(): content type
>     'application/simple-message-summary'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:199]:
>      > pua_rpc_publish_mode(): id '.'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:201]:
>      > pua_rpc_publish_mode(): ETag '.'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:203]:
>      > pua_rpc_publish_mode(): outbound_proxy
>     'sip:127.0.0.1:5060;transport=udp'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:205]:
>      > pua_rpc_publish_mode(): extra headers 'P-Flags: 0'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: pua_rpc
>     [pua_rpc.c:207]:
>      > pua_rpc_publish_mode(): body '.'*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) ERROR: jsonrpcs
>      > [jsonrpcs_mod.c:1010]: jsonrpc_delayed_ctx_new(): id attribute is
>     missing*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) ERROR: pua_rpc
>     [pua_rpc.c:256]:
>      > pua_rpc_publish_mode(): internal error: failed to create context*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: jsonrpcs
>      > [jsonrpcs_mod.c:423]: jsonrpc_send(): sending response with body:
>      > 0x7fffc28e6e80 - 500 Internal error: failed to create context*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: xhttp
>     [xhttp_mod.c:429]:
>      > xhttp_send_reply(): response with content-type: application/json*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: xhttp
>     [xhttp_mod.c:439]:
>      > xhttp_send_reply(): response with body: {*
>      > *Jan 21 19:37:58 test kamailio: "jsonrpc":#011"2.0",*
>      > *Jan 21 19:37:58 test kamailio: "error":#011{*
>      > *Jan 21 19:37:58 test kamailio: "code":#011500,*
>      > *Jan 21 19:37:58 test kamailio: "message":#011"Internal error:
>     failed to
>      > create context"*
>      > *Jan 21 19:37:58 test kamailio: }*
>      > *Jan 21 19:37:58 test kamailio: }*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: xhttp
>     [xhttp_mod.c:441]:
>      > xhttp_send_reply(): sending out response: 500 Internal error:
>     failed to
>      > create context*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/msg_translator.c:162]: check_via_address(): (172.16.30.151,
>      > 172.16.30.151, 0)*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/tcp_main.c:2226]: tcpconn_send_put(): send from reader
>     (25583 (13)),
>      > reusing fd*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/tcp_main.c:2460]: tcpconn_do_send(): sending...*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/tcp_main.c:2494]: tcpconn_do_send(): after real write: c=
>      > 0x7f7af5a39888 n=297 fd=8*
>      > *Jan 21 19:37:58 test kamailio: 13(25583) DEBUG: <core>
>      > [core/tcp_main.c:2495]: tcpconn_do_send(): buf=*
>      > *Jan 21 19:37:58 test kamailio: HTTP/1.1 500 Internal error:
>     failed to
>      > create context*
>      > *Jan 21 19:37:58 test kamailio: Sia: SIP/2.0/TCP
>     172.16.30.151:44122 <http://172.16.30.151:44122>
>      > <http://172.16.30.151:44122>*
>      > *Jan 21 19:37:58 test kamailio: Content-Type: application/json*
>      > *Jan 21 19:37:58 test kamailio: Server: kamailio (5.2.1
>     (x86_64/linux))*
>      > *Jan 21 19:37:58 test kamailio: Content-Length: 108*
>      > *Jan 21 19:37:58 test kamailio: {*
>      > *Jan 21 19:37:58 test kamailio: "jsonrpc":#011"2.0",*
>      > *Jan 21 19:37:58 test kamailio: "error":#011{*
>      > *Jan 21 19:37:58 test kamailio: "code":#011500,*
>      > *Jan 21 19:37:58 test kamailio: "message":#011"Internal error:
>     failed to
>      > create context"*
>      > *Jan 21 19:37:58 test kamailio: }*
>      > *Jan 21 19:37:58 test kamailio: }*
>      >
>      > Thanks!
>      >
>      > пн, 17 вер. 2018 о 09:18 Juha Heinanen <jh@tutpro.com
>     <mailto:jh@tutpro.com>> пише:
>      > > willy writes:
>      > > > Have anyone tried to use pua.publish to send MWI
>     notification? Can it
>      > > > work at all?
>      > > >
>      > > > I'm sending request through jsonrpc server, but it is not
>     dispatched by
>      > > > handle_publish.
>      > >
>      > > It works fine here.  Last week I noticed an issue with
>     pua.publish over
>      > > jsonrpc and it was fixed.  Even before the fix, pua.publish
>     worked, but
>      > > an error message was issued.
>
>
>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>

--
Serge S. Yuriev
Senior VoIP engineer


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users