[svn-commits] file: branch file/issue12437 r184381 - /team/file/issue12437/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Mar 26 11:48:51 CDT 2009


Author: file
Date: Thu Mar 26 11:48:48 2009
New Revision: 184381

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=184381
Log:
Do not try to reinvite back to T38 if we are setup with T38 as a result of getting it on the initial INVITE.

Modified:
    team/file/issue12437/channels/chan_sip.c

Modified: team/file/issue12437/channels/chan_sip.c
URL: http://svn.digium.com/svn-view/asterisk/team/file/issue12437/channels/chan_sip.c?view=diff&rev=184381&r1=184380&r2=184381
==============================================================================
--- team/file/issue12437/channels/chan_sip.c (original)
+++ team/file/issue12437/channels/chan_sip.c Thu Mar 26 11:48:48 2009
@@ -860,6 +860,7 @@
 	int peercapability;		/*!< Peers T38 capability */
 	int jointcapability;		/*!< Supported T38 capability at both ends */
 	enum t38state state;		/*!< T.38 state */
+	int direct;                     /*!< Whether the T38 came from the initial invite or not */
 };
 
 /*! \brief Parameters to know status of transfer */
@@ -3787,7 +3788,7 @@
 					p->invitestate = INV_EARLY_MEDIA;
 					transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE);
 					ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
-				} else if (p->t38.state == T38_ENABLED) {
+				} else if (p->t38.state == T38_ENABLED && !p->t38.direct) {
 					p->t38.state = T38_DISABLED;
 					transmit_reinvite_with_sdp(p);
 				} else {
@@ -5249,6 +5250,7 @@
 					ast_log(LOG_DEBUG, "T38 state changed to %d on channel %s\n", p->t38.state, p->owner ? p->owner->name : "<none>" );
 			} else {
 				p->t38.state = T38_PEER_DIRECT; /* T38 Offered directly from peer in first invite */
+				p->t38.direct = 1;
 				if (option_debug > 1)
 					ast_log(LOG_DEBUG, "T38 state changed to %d on channel %s\n", p->t38.state, p->owner ? p->owner->name : "<none>");
 			}




More information about the svn-commits mailing list