Attached a patch which fixes the problem of sending the answer SDP on
the PRACK request.

Now, all nua tests passed.

2010/9/22 Paulo Pizarro <paulo.piza...@gmail.com>:
> 2010/9/21 Paulo Pizarro <paulo.piza...@gmail.com>:
>> Dear all,
>>
>> The useragent "A" sent a INVITE without the SDP offer, the useragent
>> "B" sent a 183 with the SDP offer and the useragent "A" sent a PRACK
>> with a SDP answer. The O/A round is complete. After that, the
>> useragent "B" answer the call (sent 200 to INVITE) and then "nua" sent
>> a BYE (900 internal media error).
>>
>> A                                    B
>>
>> --------------INVITE------------>
>>
>> <---------183 (offer)-------------
>> --------PRACK (answer)----->
>> <---------200/PRACK----------
>>
>>
>> <---------------180----------------
>> --------------PRACK----------->
>> <------------200/PRACK-------
>>
>>
>> <-----------------200-------------
>> ------------------ACK----------->
>>
>> When "nua" receives the SDP offer on the 183, it calls
>> "soa_generate_answer" and sent the SDP answer on the PRACK of the 183.
>> The  O/A round is complete.
>>
>> When "nua" receives the 200 from the INVITE, it calls
>> "soa_generate_answer" again, but now it generates an error (900
>> Internal media error) because there is no negotiation in progress.
>>
>> Attached log of call.
>>
>> Attached a patch to fixes this problem.
>> With the latest git code, make check fails during check_nta:
>>
>> make[4]: Entrando no diretório
>> `/home/pizarro/workspace/src/sofia-sip/sofia-sip-git/libsofia-sip-ua/nta'
>>         COMPILE check_nta.o
>>         COMPILE check_nta_api.o
>>         COMPILE check_nta_client.o
>>         LINK check_nta
>> check_nta.o: In function `main':
>> /home/pizarro/workspace/src/sofia-sip/sofia-sip-git/libsofia-sip-ua/nta/check_nta.c:116:
>> undefined reference to `check_nta_server_3_0'
>> collect2: ld returned 1 exit status
>> make[4]: ** [check_nta] Erro 1
>>
>
> I ran autogen.sh, configure, make and make check  again and now NTA check is 
> ok.
>
>> I could not run the nua tests, I hope this patch does not break anything. :)
>
> I ran nua tests and the patch doesn't work.
>
> The following tests after applying the patch failed:
>
> check_session.c:1622:E:2.5 - Call with preconditions:call_2_5_1:0:
> (after this point) Test timeout expired
> check_session.c:1704:F:2.5 - Call with preconditions:call_2_5_2:0:
> Assertion 's2_check_callstate(nua_callstate_completing)' failed
> check_session.c:1781:E:2.5 - Call with preconditions:call_2_5_3:0:
> (after this point) Test timeout expired
> check_etsi.c:334:F:6.1 - ETSI CC OE - Call
> Establishment:SIP_CC_OE_CE_TI_011_012:0: Failure
> 's2_sip_check_request_timeout(SIP_METHOD_ACK, 3)' occured
>
> :(
>
>>
>> Thanks in advance,
>>
>> Paulo Pizarro
>>
>
From 625f66b579cb628f981d0ee87337e17d93d16efc Mon Sep 17 00:00:00 2001
From: Paulo Pizarro <paulo.piza...@gmail.com>
Date: Wed, 22 Sep 2010 10:30:06 -0300
Subject: [PATCH] Fixed sent answer SDP on the PRACK request


Signed-off-by: Paulo Pizarro <paulo.piza...@gmail.com>
---
 libsofia-sip-ua/nua/nua_session.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/libsofia-sip-ua/nua/nua_session.c b/libsofia-sip-ua/nua/nua_session.c
index 5bf473c..bb99da6 100644
--- a/libsofia-sip-ua/nua/nua_session.c
+++ b/libsofia-sip-ua/nua/nua_session.c
@@ -1810,6 +1810,8 @@ static int nua_prack_client_request(nua_client_request_t *cr,
   if (retval == 0) {
     cr->cr_offer_sent = offer_sent;
     cr->cr_answer_sent = answer_sent;
+    cri->cr_offer_sent = offer_sent;
+    cri->cr_answer_sent = answer_sent;
 
     if (offer_sent)
       ss->ss_oa_sent = Offer;
-- 
1.7.0.4

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to