Hi, I need to manage the PRACK side application, I set NUTAG_APPL_METHOD("PRACK"), With this configuration are passed to the application the 183. How do I configure the stack to deliver the application only the PRACK?, Thanks, Beppe
2012/3/14 Timo Bruhn <voip_v...@web.de>: > Hi Nauman, > > did you find a solution for the problem when forking is combined with PRACK? > Currently we are running into same problems with sofia-sip connecting to a > server that uses forking. > > Seems that disabling PRACK and soa engine works. But what if PRACK is > required? > > Thanks, > Timo > > >> Hi, >> >> Got a bit further with this, reason that the 200OK ( to INVITE) is being >> discarded is because of this code : >> >> static int nua_invite_client_preliminary(nua_client_request_t *cr, >> int status, char const *phrase, >> sip_t const *sip) >> { >> nua_handle_t *nh = cr->cr_owner; >> nua_dialog_usage_t *du = cr->cr_usage; >> nua_session_usage_t *ss = nua_dialog_usage_private(du); >> >> assert(sip); >> >> if (ss && sip && sip->sip_rseq) { >> /* Handle 100rel responses */ >> sip_rseq_t *rseq = sip->sip_rseq; >> >> /* Establish early dialog - we should fork here */ >> if (!nua_dialog_is_established(nh->nh_ds)) { >> nta_outgoing_t *tagged; >> >> nua_dialog_uac_route(nh, nh->nh_ds, sip, 1, 1); >> nua_dialog_store_peer_info(nh, nh->nh_ds, sip); >> >> /* Tag the INVITE request */ >> tagged = nta_outgoing_tagged(cr->cr_orq, >> nua_client_orq_response, cr, >> sip->sip_to->a_tag, sip->sip_rseq); >> if (tagged) { >> nta_outgoing_destroy(cr->cr_orq), cr->cr_orq = tagged; >> } >> else { >> cr->cr_graceful = 1; >> ss->ss_reason = "SIP;cause=500;text=\"Cannot Create Early Dialog\""; >> } >> } >> >> >> When we get a 183 reliable response Sofia creates an early dialog and >> creates a new tagged INVITE request >> >> if (tagged) { >> nta_outgoing_destroy(cr->cr_orq) >> >> It looks like it marks the original request for destruction, the problem is >> when a 200OK comes in with a different tag, it looks as if its matched >> against the original transaction which is marked for > destruction and so is >> discarded by the code I posted initially in outgoing_recv in nta.c >> >> >> We are handling all media (SDP) ourselves and have set PRACK to be one of >> the methods our app handles. We are using the nua API. >> >> Can Pekka or someone say whether PRACK and forking is supported with the >> way we are using the Stack. We've seen some posts saying there are various >> bugs. >> >> When PRACK is not used the first 200OK received is passed to the application >> with cancel sent to the others. This is the behaviour we would like even >> when PRACK is used. However it seems > that when the first 183 reliable is >> received this results in subsequent 200OK from other forks to be discarded. >> We just want the first 200OK final response to be passed to our application >> > irrespective of which fork its from and are happy for CANCEL to be sent to >> others. >> >> Any comments most appreciated. >> Thanks >> > > ___________________________________________________________ > Ihr WEB.DE Postfach immer dabei: die kostenlose WEB.DE Mail App für iPhone > und Android. > https://produkte.web.de/freemail_mobile_startseite/ > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > Sofia-sip-devel mailing list > Sofia-sip-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Sofia-sip-devel mailing list Sofia-sip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel