hi aymeric,
I have an improvement for the function eXosip_call_terminate.
I would suggest to use as default the reason cause 480 – instead of 603.
The reason is, that a 6xx causes at a SIP-proxy all other call-branches to be terminated,
if the call has been forked. with a 4xx response the other branches remain active.
the fix is in eXcall_api.c, line 935:
if (tr == NULL) {
/*this may not be enough if it's a re-INVITE! */
tr = _eXosip_find_last_inc_invite (jc, jd);
if (tr != NULL && tr->last_response != NULL && MSG_IS_STATUS_1XX (tr->last_response)) { /* answer with 480 */
osip_generic_param_t *to_tag;
osip_from_param_get_byname (tr->orig_request->to, "tag", &to_tag);
i = eXosip_call_send_answer (excontext, tr->transactionid, 480, NULL);
if (to_tag == NULL)
return i;
}
}
br,
christoph