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.p... .
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 sip%3Ajh@test.tutpro.com", "expires": "600", "event package": "message-summary", "content type": "application/simple-message-summary", "id": "4ce8c647a7b947c@172.16.30.151 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 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 sip%3Ajh@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 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