[Top][All Lists]
[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.
>