osip-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [osip-dev] 101 Dialog Established


From: FEICHTER Christoph
Subject: Re: [osip-dev] 101 Dialog Established
Date: Wed, 14 Oct 2015 08:09:02 +0000

hi aymeric,


> Le 8 oct. 2015 2:16 PM, "FEICHTER Christoph" <address@hidden> a écrit :
> >
> > hi aymeric,

> Hi Christoph,

> > I have a question regarding the 101 message.
> > in a former eXosip the user could configure wether 101 shall
> > be sent automatically, or not.
> >  
> > now this parameter has been removed.
> > and I found the suspicious lines in function _eXosip_snd_message:
> >  
> >   if (sip->status_code == 101)
> >     return OSIP_SUCCESS;
> >  
> > is it right, that the 101 is created as dummy-response, just for establishing the dialog,
> > but it is never sent ?

> This is correct: the 101 has been removed for interoperability purpose with non compliant app! ;)

> But internally, exosip requires the creation of dialog (and did), so I kept it and discard it before it is sent.

> > and my second issue is regarding ist_rcv_invite:
> > ist->orig_request  seems to be set to the 101 response, which has never been sent.

> I guess orig_request contains the INVITE...

sorry, my mistake – I meant last_response;
that’s where the 101 is kept, which has never been sent.
and since the 101 is an end-to-end provisional response, and the 100 Trying is not
more present as last_response, the INVITE retransmissions are not answered with 100 !

> > but:
> > in case the UAS receives an INVITE-retransmission, the 100 Trying should be retransmitted !
> > but since the  ist->orig_request  is set to the 101 response, nothing is sent !
> >  
> > do you agree that this is a bug in eXosip ?

> Yes... Seems to be. Usually, sending a 180 is made as soon as you receive the invite. That's most probably the reason why I've never hit the issue.

that’s a poor excuse in my opinion.
the 100 Trying comes from the next proxy and should turn off the retransmissions,
whereas the 180 Ringing is sent by the callee.
did you experience how long the 180 Ringing might take, if the callee is a gateway to a mobile network (GSM, UMTS, …) ?
it can take a couple of seconds, until the 180 Ringing is sent.

what do you suggest how to fix it ?

my first approach was the following (seems to work):

static void

_eXosip_process_new_invite (struct eXosip_t *excontext, osip_transaction_t * transaction, osip_event_t * evt)

{

  ...

  ...

  ...

 

  osip_transaction_set_reserved2 (transaction, jc);

  osip_transaction_set_reserved3 (transaction, jd);

 

  //evt_answer = osip_new_outgoing_sipmessage (answer);

  //evt_answer->transactionid = transaction->transactionid;

 

  _eXosip_update (excontext);

  jc->c_inc_tr = transaction;

  //osip_transaction_add_event (transaction, evt_answer);

 

  /* be sure the invite will be processed

     before any API call on this dialog */

  osip_ist_execute (excontext->j_osip);

 

  if (transaction->orig_request != NULL) {

    _eXosip_report_call_event (excontext, EXOSIP_CALL_INVITE, jc, jd, transaction);

  }

 

  _eXosip_wakeup (excontext);

}

 

what do you think about this ?

> Regards
> Aymeric

> br,
> christoph
>  
>  
>
> _______________________________________________
> osip-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/osip-dev
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]