[sr-dev] [kamailio/kamailio] Kamailio with rtpengine between kamailio 4.4.1 and 4.4.2 (#855)

Laurent Glayal notifications at github.com
Wed Nov 16 10:02:37 CET 2016


Considering such route for async queries 

` route[REQUESTRTJSON] { `
`   xlogl("L_INFO", "Requesting JSON routes\n"); `
`   t_newtran(); `
`   $http_req(hdr) = "Expect:"; `
`   $http_req(timeout) = DEFAULTHTTPTIMEOUTMSEC; `
`   http_async_query("http://127.0.0.1/webrtcwslb/forwarder.php?forwardservice=kamailiort&rU=$(rU{s.encode.hexa})&fU=$(fU{s.encode.hexa})&dd=$(dd{s.encode.hexa})&du=$(du{s.encode.hexa})&rd=$(rd{s.encode.hexa})&fn=$(fn{s.encode.hexa})&fd=$(fd{s.encode.hexa})&td=$(td{s.encode.hexa})&tn=$(tn{s.encode.hexa})&tU=$(tU{s.encode.hexa})&ci=$(ci{s.encode.hexa})&ct=$(ct{s.encode.hexa})&si=$(si{s.encode.hexa})&mb=$(mb{s.encode.hexa})&dP=$(dP{s.encode.hexa})","HTTPRTJSONREPLY");`
`  }`


And answer processed in

`route[HTTPRTJSONREPLY] {`
`  if($http_ok) {`
`      xlogl("L_INFO", "route[HTTPRTJSONREPLY]: status $http_rs\n");`
`      xlogl("L_INFO", "route[HTTPRTJSONREPLY]: body $http_rb\n");`
`    json_get_field($http_rb,"routing", "$var(routing)");`
`    if($var(routing)=="location") {`
`      route(LOCATION);`
`      exit;`
`    }`
`    xlogl("L_INFO", "route[HTTPRTJSONREPLY]: init routes\n");`
`    rtjson_init_routes("$http_rb");`
`    xlogl("L_INFO", "route[HTTPRTJSONREPLY]: pushing routes\n");`
`    rtjson_push_routes();`
`    xlogl("L_INFO", "route[HTTPRTJSONREPLY]: pushed routes\n");`
`    t_on_branch("MANAGE_BRANCH");`
`    t_on_failure("MANAGE_FAILURE");`
`    route(RELAY);`
`    exit;`
`  } else {`
`    xlogl("L_INFO", "route[HTTPRTJSONREPLY]: error $http_err\n");`
`    exit;`
`  }`
`}`
 

the cfgtrace gives

> 2016-11-16T09:29:36.869221+01:00 localhost (12040) ERROR: *** cfgtrace:request_route=[REQUESTRTJSON] c=[/product/CCAPI/WebRTC/Kamailio/etc/1479284325.480324_f0b20d2e1c37d2fa3dfed1126a48aacaf79c2ab6//kamailio.cfg] l=581 a=26 n=http_async_query
> ...
> 2016-11-16T09:29:36.912117+01:00 localhost (12035) ERROR: *** cfgtrace:failure_route=[HTTPRTJSONREPLY] c=[/product/CCAPI/WebRTC/Kamailio/etc/1479284325.480324_f0b20d2e1c37d2fa3dfed1126a48aacaf79c2ab6//kamailio.cfg] l=607 a=16 n=if

so HTTPRTJSONREPLY route is considered as failure_route, such state is kept when calling route(RELAY) and further  raising the following code in rtpengine on INVITE for rtpengine_manage() function 
`if (msg->first_line.type == SIP_REQUEST) {`
`...`
`		if(method==METHOD_INVITE && nosdp==0) {`
`			msg->msg_flags |= FL_SDP_BODY;`
`			if(tmb.t_gett!=NULL && tmb.t_gett()!=NULL`
`					&& tmb.t_gett()!=T_UNDEFINED)`
`				tmb.t_gett()->uas.request->msg_flags |= FL_SDP_BODY;`
`			if(route_type==FAILURE_ROUTE)`
`				return rtpengine_delete(msg, flags);`
`			return rtpengine_offer_answer(msg, flags, OP_OFFER, 0);`
`		}`

On kamailio 4.4.1 rtpengine_offer_answer() was called, but now rtpengine_delete() is called due to (route_type==FAILURE_ROUTE)


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/855#issuecomment-260890866
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20161116/33976c58/attachment-0001.html>


More information about the sr-dev mailing list