summaryrefslogtreecommitdiff
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2009-05-05 14:22:47 +0000
committerJoshua Colp <jcolp@digium.com>2009-05-05 14:22:47 +0000
commit2e7c1e3613abba5e42baeb416e5643c22f535844 (patch)
treec9125624b86e253f00d5bb28e7666b40724b22c8 /channels/chan_sip.c
parent2746f589b7daee593cc4a64b2b8ddff5371a09a3 (diff)
Fix a bug with setting t38pt_udptl at the user or peer level.
If an incoming call authenticated as a user or peer and t38pt_udptl was not set to yes in general then no UDPTL session would be present and any T38 related things would fail. This commit changes it so that if after authenticating T38 is enabled but no UDPTL session is present one will be created. (issue AST-215) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@192387 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r--channels/chan_sip.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index c3fb59f15..81111cb9d 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -19630,6 +19630,11 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
return 0;
}
+ /* If T38 is needed but not present, then make it magically appear */
+ if (ast_test_flag(&p->flags[1], SIP_PAGE2_T38SUPPORT) && !p->udptl) {
+ p->udptl = ast_udptl_new_with_bindaddr(sched, io, 0, bindaddr.sin_addr);
+ }
+
/* We have a succesful authentication, process the SDP portion if there is one */
if (find_sdp(req)) {
if (process_sdp(p, req, SDP_T38_INITIATE)) {