mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
res_pjsip: Add 'suppress_q850_reason_headers' option to endpoint
A new option 'suppress_q850_reason_headers' has been added to the endpoint object. Some devices can't accept multiple Reason headers and get confused when both 'SIP' and 'Q.850' Reason headers are received. This option allows the 'Q.850' Reason header to be suppressed. The default value is 'no'. ASTERISK-27949 Reported-by: Ross Beer Change-Id: I54cf37a827d77de2079256bb3de7e90fa5e1deb1
This commit is contained in:
@@ -98,8 +98,15 @@ static void rfc3326_add_reason_header(struct ast_sip_session *session, struct pj
|
||||
ast_sip_add_header(tdata, "Reason", "SIP;cause=200;text=\"Call completed elsewhere\"");
|
||||
}
|
||||
|
||||
snprintf(buf, sizeof(buf), "Q.850;cause=%i", ast_channel_hangupcause(session->channel) & 0x7f);
|
||||
ast_sip_add_header(tdata, "Reason", buf);
|
||||
if (session->endpoint && session->endpoint->suppress_q850_reason_headers) {
|
||||
ast_debug(1, "A Q.850 '%s'(%i) Reason header was suppresed for endpoint '%s'\n",
|
||||
ast_cause2str((ast_channel_hangupcause(session->channel) & 0x7f)),
|
||||
(ast_channel_hangupcause(session->channel) & 0x7f),
|
||||
ast_sorcery_object_get_id(session->endpoint));
|
||||
} else {
|
||||
snprintf(buf, sizeof(buf), "Q.850;cause=%i", ast_channel_hangupcause(session->channel) & 0x7f);
|
||||
ast_sip_add_header(tdata, "Reason", buf);
|
||||
}
|
||||
}
|
||||
|
||||
static void rfc3326_outgoing_request(struct ast_sip_session *session, struct pjsip_tx_data *tdata)
|
||||
|
Reference in New Issue
Block a user