linphone-developers
[Top][All Lists]
Advanced

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

Re: [Linphone-developers] commit c5b17b4aa388c6d3b0b14e8ac96fe1b9a07ce2f


From: Simon Morlat
Subject: Re: [Linphone-developers] commit c5b17b4aa388c6d3b0b14e8ac96fe1b9a07ce2f7
Date: Mon, 22 Mar 2010 15:01:58 +0100

Hello Peter,

There is something I don't understand, please tell me:
Normally 487 should come after a CANCEL, that is sent by
linphone_core_terminate_call(). However linphone_core_terminate_call()
sets the state GSTATE_CALL_ENDED.
So how could GSTATE_CALL_OUT_INVITE stay forever ?

Regards,

Simon

Le dimanche 21 mars 2010 à 18:54 +0100, Peter Meerwald a écrit :
> Hello,
> 
> why is gstate_new_state() not called in exevents.c:linphone_call_failure() 
> when the code is 487?
> 
> that behaviour was changed with commit 
> c5b17b4aa388c6d3b0b14e8ac96fe1b9a07ce2f7:
> 
>         if (call!=NULL) {
>                 linphone_call_destroy(call);
> -               gstate_new_state(lc, GSTATE_CALL_ERROR, NULL);
> +               if (code!=487) gstate_new_state(lc, GSTATE_CALL_ERROR, 
> NULL);
>                 lc->call=NULL;
>         }
> 
> if a call is terminated with 487, the state remains 
> in GSTATE_CALL_OUT_INVITE which seems wrong; I think the proper way would 
> be to set the state to GSTATE_CALL_IDLE if the intermediate state 
> GSTATE_CALL_ERROR has to be avoided
> 
> I propose to change the line 
> if (code!=487) gstate_new_state(lc, GSTATE_CALL_ERROR, NULL);
> (see above) to
> if (code==487) 
> gstate_new_state(lc, GSTATE_CALL_IDLE, NULL);
> else
> gstate_new_state(lc, GSTATE_CALL_ERROR, NULL);
> 
> thanks, regards, p.
> 






reply via email to

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