From e081717c3c5031474e1d95120f15e842cf9649a6 Mon Sep 17 00:00:00 2001 From: dhubbard Date: Tue, 17 Feb 2009 22:09:16 +0000 Subject: Merged revisions 176705 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r176705 | dhubbard | 2009-02-17 15:59:38 -0600 (Tue, 17 Feb 2009) | 11 lines create a UDPTL structure in create_addr_from_peer() if it does not already exist for T38 This is required to create a UDPTL structure in create_addr_from_peer() to handle the scenario where 't38pt_udptl=yes' is not defined in the [general] section of sip.conf but is defined the peer's context. I tested this patch by enabling t38pt_udptl in the [general] section on one system and only enabling t38pt_udptl in a peer's context on the system sending a fax. Without the patch, the sending system will fail to initiate T38 negotiation with the warning message, "No way to add SDP without an UDPTL structure". When this patch is applied the sending side will successfully initiate T38 negotiation. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@176709 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_sip.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'channels') diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 1d571f3a4..937e7024e 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -4039,6 +4039,10 @@ static int create_addr_from_peer(struct sip_pvt *dialog, struct sip_peer *peer) } dialog->prefs = peer->prefs; if (ast_test_flag(&dialog->flags[1], SIP_PAGE2_T38SUPPORT)) { + if (!dialog->udptl) { + /* t38pt_udptl was enabled in the peer and not in [general] */ + dialog->udptl = ast_udptl_new_with_bindaddr(sched, io, 0, bindaddr.sin_addr); + } ast_copy_flags(&dialog->t38.t38support, &peer->flags[1], SIP_PAGE2_T38SUPPORT); set_t38_capabilities(dialog); dialog->t38.jointcapability = dialog->t38.capability; -- cgit v1.2.3