diff --git a/src/channels/chan_voicemngr.c b/src/channels/chan_voicemngr.c index 0c2ee000088b178e5b102a3334e7974393979aa0..973da864f971b1d8f95fff8bcb65e4a19422360b 100644 --- a/src/channels/chan_voicemngr.c +++ b/src/channels/chan_voicemngr.c @@ -946,6 +946,9 @@ static int chan_voicemngr_indicate(struct ast_channel *ast, int condition, const } else { ast_log(LOG_ERROR, "can't get the peer channel, unattended call transfer will not be proceeded\n"); } + } else if(sub->channel_state == INCALL && sub_peer->channel_state == ONHOLD) { + /* pjsip send this indication when switching between two calls, update rtp peer to have codec updated */ + ast_indicate(sub->owner, AST_CONTROL_UPDATE_RTP_PEER); } break; case AST_CONTROL_TRANSFER: