]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res/res_pjsip_t38: Add missing initialization of t38faxmaxdatagram 39/239/1
authorMatthew Jordan <mjordan@digium.com>
Sat, 11 Apr 2015 15:10:34 +0000 (15:10 +0000)
committerMatt Jordan <mjordan@digium.com>
Thu, 23 Apr 2015 18:23:30 +0000 (13:23 -0500)
Prior to this patch, the far_max_datagram value on the UDPTL structure would
remain -1 if the remote endpoint fails to provide the SDP media attribute
T38FaxMaxDatagram. This can result in the INVITE request being rejected. With
this patch, we will now properly initialize the value with either the default
value or with the value provided by pjsip.conf's t38_udptl_maxdatagram
parameter.

Review: https://reviewboard.asterisk.org/r/4589

ASTERISK-24928 #close
Reported by: Juergen Spies
Tested by: Juergen Spies
patches:
  pjsipT38patch20150331.txt submitted by Juergen Spies (License 6698)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Change-Id: I15bde169fd59a224a02005fec9a439f0679a375e

res/res_pjsip_t38.c

index d4b384f0aa9d5b3f3dffa12e042e6c50ed3bbe07..430519ef3ff66ddd179c8a285f57b93736208938 100644 (file)
@@ -255,6 +255,7 @@ static int t38_initialize_session(struct ast_sip_session *session, struct ast_si
        ast_channel_set_fd(session->channel, 5, ast_udptl_fd(session_media->udptl));
        ast_udptl_set_error_correction_scheme(session_media->udptl, session->endpoint->media.t38.error_correction);
        ast_udptl_setnat(session_media->udptl, session->endpoint->media.t38.nat);
+       ast_udptl_set_far_max_datagram(session_media->udptl, session->endpoint->media.t38.maxdatagram);
 
        return 0;
 }
@@ -578,9 +579,7 @@ static void t38_interpret_sdp(struct t38_state *state, struct ast_sip_session *s
                } else if (!pj_stricmp2(&attr->name, "t38faxversion")) {
                        state->their_parms.version = pj_strtoul(&attr->value);
                } else if (!pj_stricmp2(&attr->name, "t38faxmaxdatagram") || !pj_stricmp2(&attr->name, "t38maxdatagram")) {
-                       if (session->endpoint->media.t38.maxdatagram) {
-                               ast_udptl_set_far_max_datagram(session_media->udptl, session->endpoint->media.t38.maxdatagram);
-                       } else {
+                       if (!session->endpoint->media.t38.maxdatagram) {
                                ast_udptl_set_far_max_datagram(session_media->udptl, pj_strtoul(&attr->value));
                        }
                } else if (!pj_stricmp2(&attr->name, "t38faxfillbitremoval")) {