summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2017-08-28 07:34:47 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-08-28 07:34:47 -0500
commit9d0c3564eedfa1200aa1c21c915e05af7b0d501d (patch)
treee81f246b79cfccf213ebcd1b0848a96cb884218d /channels
parente31d4ddaf1f739ef1ba9ce7d0432e885d64f3d98 (diff)
parent33a648d4c694b8951db2b664ca8d8edb0cb9da26 (diff)
Merge "res/res_pjsip_session: allow SDP answer to be regenerated"
Diffstat (limited to 'channels')
-rw-r--r--channels/pjsip/dialplan_functions.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/pjsip/dialplan_functions.c b/channels/pjsip/dialplan_functions.c
index c89d9ca26..93875b35c 100644
--- a/channels/pjsip/dialplan_functions.c
+++ b/channels/pjsip/dialplan_functions.c
@@ -1241,10 +1241,13 @@ static int dtmf_mode_refresh_cb(void *obj)
struct refresh_data *data = obj;
if (data->session->inv_session->state == PJSIP_INV_STATE_CONFIRMED) {
- ast_debug(3, "Changing DTMF mode on channel %s after OFFER/ANSER completion. Sending session refresh\n", ast_channel_name(data->session->channel));
+ ast_debug(3, "Changing DTMF mode on channel %s after OFFER/ANSWER completion. Sending session refresh\n", ast_channel_name(data->session->channel));
ast_sip_session_refresh(data->session, NULL, NULL,
sip_session_response_cb, data->method, 1, NULL);
+ } else if (data->session->inv_session->state == PJSIP_INV_STATE_INCOMING) {
+ ast_debug(3, "Changing DTMF mode on channel %s during OFFER/ANSWER exchange. Updating SDP answer\n", ast_channel_name(data->session->channel));
+ ast_sip_session_regenerate_answer(data->session, NULL);
}
return 0;