summaryrefslogtreecommitdiff
path: root/res/res_pjsip_t38.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2016-02-18 18:27:02 -0600
committerRichard Mudgett <rmudgett@digium.com>2016-02-29 12:50:43 -0600
commitbf29a4e2e6f890da71ab6029e7cc0911539b9368 (patch)
tree080a8e91da5d8f0bad5bcad78ff91fd5c3b150f9 /res/res_pjsip_t38.c
parentc7d45b84f98e5f235d7b33478371dd010dd6973a (diff)
res_pjsip_t38.c: Back out part of an earlier fix attempt.
This backs out item 4 of the 4875e5ac32f5ccad51add6a4216947bfb385245d commit. Item 4 added the t38_bye_supplement. Unfortunately, the frame that it puts into the bridge may or may not be processed by the time the bridged peer is kicked out of the bridge. If it is processed then all is well. However, if it is not processed then that channel is stuck in fax mode until it hangs up or maybe if it joins another bridge for T.38 faxing. ASTERISK-25582 Change-Id: Ib20a03ecadf1bf8a0dcadfadf6c2f2e60919a9f7
Diffstat (limited to 'res/res_pjsip_t38.c')
-rw-r--r--res/res_pjsip_t38.c41
1 files changed, 0 insertions, 41 deletions
diff --git a/res/res_pjsip_t38.c b/res/res_pjsip_t38.c
index 2bb6f03da..c02517104 100644
--- a/res/res_pjsip_t38.c
+++ b/res/res_pjsip_t38.c
@@ -570,41 +570,6 @@ static struct ast_sip_session_supplement t38_supplement = {
.outgoing_request = t38_outgoing_invite_request,
};
-static int t38_incoming_bye_request(struct ast_sip_session *session, struct pjsip_rx_data *rdata)
-{
- struct ast_datastore *datastore;
- struct ast_sip_session_media *session_media;
-
- if (!session->channel) {
- return 0;
- }
-
- datastore = ast_sip_session_get_datastore(session, "t38");
- if (!datastore) {
- return 0;
- }
-
- session_media = ao2_find(session->media, "image", OBJ_KEY);
- if (!session_media) {
- ao2_ref(datastore, -1);
- return 0;
- }
-
- t38_change_state(session, session_media, datastore->data, T38_REJECTED);
-
- ao2_ref(datastore, -1);
- ao2_ref(session_media, -1);
-
- return 0;
-}
-
-/*! \brief Supplement for handling a remote termination of T.38 state */
-static struct ast_sip_session_supplement t38_bye_supplement = {
- .method = "BYE",
- .priority = AST_SIP_SUPPLEMENT_PRIORITY_CHANNEL + 1,
- .incoming_request = t38_incoming_bye_request,
-};
-
/*! \brief Parse a T.38 image stream and store the attribute information */
static void t38_interpret_sdp(struct t38_state *state, struct ast_sip_session *session, struct ast_sip_session_media *session_media,
const struct pjmedia_sdp_media *stream)
@@ -935,7 +900,6 @@ static int unload_module(void)
{
ast_sip_session_unregister_sdp_handler(&image_sdp_handler, "image");
ast_sip_session_unregister_supplement(&t38_supplement);
- ast_sip_session_unregister_supplement(&t38_bye_supplement);
return 0;
}
@@ -962,11 +926,6 @@ static int load_module(void)
goto end;
}
- if (ast_sip_session_register_supplement(&t38_bye_supplement)) {
- ast_log(LOG_ERROR, "Unable to register T.38 BYE session supplement\n");
- goto end;
- }
-
if (ast_sip_session_register_sdp_handler(&image_sdp_handler, "image")) {
ast_log(LOG_ERROR, "Unable to register SDP handler for image stream type\n");
goto end;