diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c index 974b6fb331db967d570476c90d84b852067fcc8c..14adf5c561e07edf83bdfc789bfeff9a5629447a 100644 --- a/channels/chan_pjsip.c +++ b/channels/chan_pjsip.c @@ -2260,7 +2260,12 @@ static int transfer(void *data) target = contact->uri; } } - transfer_refer(trnf_data->session, target); + + if (ast_channel_state(trnf_data->session->channel) == AST_STATE_RING) { + transfer_redirect(trnf_data->session, target); + } else { + transfer_refer(trnf_data->session, target); + } } ao2_ref(trnf_data, -1);