diff --git a/UPGRADE.txt b/UPGRADE.txt
index 8097c4bae75c987d45bdd9c298b7270cf3ac0aec..20d05807df42ef07d12f890820e43943e4a0b874 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -41,6 +41,17 @@ From 1.6.2 to 1.6.3:
 
 From 1.6.1 to 1.6.2:
 
+* The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers
+  has been renamed to 'directmedia', to better reflect what it actually does.
+  In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,
+  starting and stopping music-on-hold, and other reasons, and the 'canreinvite'
+  option never had any effect on these cases, it only affected the re-INVITEs
+  used for direct media path setup. For MGCP and Skinny, the option was poorly
+  named because those protocols don't even use INVITE messages at all. For
+  backwards compatibility, the old option is still supported in both normal
+  and Realtime configuration files, but all of the sample configuration files,
+  Realtime/LDAP schemas, and other documentation refer to it using the new name.
+
 * The default console now will use colors according to the default background
   color, instead of forcing the background color to black.  If you are using a
   light colored background for your console, you may wish to use the option
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index d682c76bb10cbafc2dc15308df127e86d5de98a1..8adaf12a356b302c385b07f4de276be4e8ec012b 100644
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -80,7 +80,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define MGCPDUMPER
 #define DEFAULT_EXPIRY	120
 #define MAX_EXPIRY	3600
-#define CANREINVITE	1
+#define DIRECTMEDIA	1
 
 #ifndef INADDR_NONE
 #define INADDR_NONE (in_addr_t)(-1)
@@ -177,7 +177,7 @@ static int cancallforward = 0;
 
 static int singlepath = 0;
 
-static int canreinvite = CANREINVITE;
+static int directmedia = DIRECTMEDIA;
 
 static char accountcode[AST_MAX_ACCOUNT_CODE] = "";
 
@@ -330,7 +330,7 @@ struct mgcp_endpoint {
 	int threewaycalling;
 	int singlepath;
 	int cancallforward;
-	int canreinvite;
+	int directmedia;
 	int callreturn;
 	int dnd; /* How does this affect callwait? Do we just deny a mgcp_request if we're dnd? */
 	int hascallerid;
@@ -3552,7 +3552,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
 	int i=0, y=0;
 	int gw_reload = 0;
 	int ep_reload = 0;
-	canreinvite = CANREINVITE;
+	directmedia = DIRECTMEDIA;
 
 	/* locate existing gateway */
 	gw = gateways;
@@ -3662,8 +3662,8 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
 				cancallforward = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "singlepath")) {
 				singlepath = ast_true(v->value);
-			} else if (!strcasecmp(v->name, "canreinvite")) {
-				canreinvite = ast_true(v->value);
+			} else if (!strcasecmp(v->name, "directmedia") || !strcasecmp(v->name, "canreinvite")) {
+				directmedia = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "mailbox")) {
 				ast_copy_string(mailbox, v->value, sizeof(mailbox));
 			} else if (!strcasecmp(v->name, "hasvoicemail")) {
@@ -3748,7 +3748,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
 					e->callreturn = callreturn;
 					e->cancallforward = cancallforward;
 					e->singlepath = singlepath;
-					e->canreinvite = canreinvite;
+					e->directmedia = directmedia;
 					e->callwaiting = callwaiting;
 					e->hascallwaiting = callwaiting;
 					e->slowsequence = slowsequence;
@@ -3851,7 +3851,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
 					e->pickupgroup=cur_pickupgroup;
 					e->callreturn = callreturn;
 					e->cancallforward = cancallforward;
-					e->canreinvite = canreinvite;
+					e->directmedia = directmedia;
 					e->singlepath = singlepath;
 					e->callwaiting = callwaiting;
 					e->hascallwaiting = callwaiting;
@@ -3944,7 +3944,7 @@ static enum ast_rtp_glue_result mgcp_get_rtp_peer(struct ast_channel *chan, stru
 
 	*instance = sub->rtp ? ao2_ref(sub->rtp, +1), sub->rtp : NULL;
 
-	if (sub->parent->canreinvite)
+	if (sub->parent->directmedia)
 		return AST_RTP_GLUE_RESULT_REMOTE;
 	else
 		return AST_RTP_GLUE_RESULT_LOCAL;
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 5e777b4c3f4b30b25d8c42d56c4442f8ebe1e025..78b42c8219ff0fda602f4694dc5f5e30c3d54c04 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1457,8 +1457,8 @@ struct sip_auth {
 /* re-INVITE related settings */
 #define SIP_REINVITE		(7 << 20)	/*!< DP: four settings, uses three bits */
 #define SIP_REINVITE_NONE	(0 << 20)	/*!< DP: no reinvite allowed */
-#define SIP_CAN_REINVITE	(1 << 20)	/*!< DP: allow peers to be reinvited to send media directly p2p */
-#define SIP_CAN_REINVITE_NAT	(2 << 20)	/*!< DP: allow media reinvite when new peer is behind NAT */
+#define SIP_DIRECT_MEDIA	(1 << 20)	/*!< DP: allow peers to be reinvited to send media directly p2p */
+#define SIP_DIRECT_MEDIA_NAT	(2 << 20)	/*!< DP: allow media reinvite when new peer is behind NAT */
 #define SIP_REINVITE_UPDATE	(4 << 20)	/*!< DP: use UPDATE (RFC3311) when reinviting this peer */
 
 /* "insecure" settings - see insecure2str() */
@@ -15369,7 +15369,7 @@ static char *_sip_show_peer(int type, int fd, struct mansession *s, const struct
 		ast_cli(fd, "  Force rport  : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT)));
 		ast_cli(fd, "  ACL          : %s\n", cli_yesno(peer->ha != NULL));
 		ast_cli(fd, "  T38 pt UDPTL : %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT)));
-		ast_cli(fd, "  CanReinvite  : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_CAN_REINVITE)));
+		ast_cli(fd, "  DirectMedia  : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_DIRECT_MEDIA)));
 		ast_cli(fd, "  PromiscRedir : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_PROMISCREDIR)));
 		ast_cli(fd, "  User=Phone   : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_USEREQPHONE)));
 		ast_cli(fd, "  Video Support: %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_VIDEOSUPPORT)));
@@ -15473,7 +15473,8 @@ static char *_sip_show_peer(int type, int fd, struct mansession *s, const struct
 		astman_append(s, "SIP-AuthInsecure: %s\r\n", insecure2str(ast_test_flag(&peer->flags[0], SIP_INSECURE)));
 		astman_append(s, "SIP-Forcerport: %s\r\n", (ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT)?"Y":"N"));
 		astman_append(s, "ACL: %s\r\n", (peer->ha?"Y":"N"));
-		astman_append(s, "SIP-CanReinvite: %s\r\n", (ast_test_flag(&peer->flags[0], SIP_CAN_REINVITE)?"Y":"N"));
+		astman_append(s, "SIP-CanReinvite: %s\r\n", (ast_test_flag(&peer->flags[0], SIP_DIRECT_MEDIA)?"Y":"N"));
+		astman_append(s, "SIP-DirectMedia: %s\r\n", (ast_test_flag(&peer->flags[0], SIP_DIRECT_MEDIA)?"Y":"N"));
 		astman_append(s, "SIP-PromiscRedir: %s\r\n", (ast_test_flag(&peer->flags[0], SIP_PROMISCREDIR)?"Y":"N"));
 		astman_append(s, "SIP-UserPhone: %s\r\n", (ast_test_flag(&peer->flags[0], SIP_USEREQPHONE)?"Y":"N"));
 		astman_append(s, "SIP-VideoSupport: %s\r\n", (ast_test_flag(&peer->flags[1], SIP_PAGE2_VIDEOSUPPORT)?"Y":"N"));
@@ -23488,11 +23489,11 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask
 			ast_set_flag(&mask[1], SIP_PAGE2_SYMMETRICRTP);
 			ast_set_flag(&flags[1], SIP_PAGE2_SYMMETRICRTP);
 		}
-	} else if (!strcasecmp(v->name, "canreinvite")) {
+	} else if (!strcasecmp(v->name, "directmedia") || !strcasecmp(v->name, "canreinvite")) {
 		ast_set_flag(&mask[0], SIP_REINVITE);
 		ast_clear_flag(&flags[0], SIP_REINVITE);
 		if (ast_true(v->value)) {
-			ast_set_flag(&flags[0], SIP_CAN_REINVITE | SIP_CAN_REINVITE_NAT);
+			ast_set_flag(&flags[0], SIP_DIRECT_MEDIA | SIP_DIRECT_MEDIA_NAT);
 		} else if (!ast_false(v->value)) {
 			char buf[64];
 			char *word, *next = buf;
@@ -23500,12 +23501,12 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask
 			ast_copy_string(buf, v->value, sizeof(buf));
 			while ((word = strsep(&next, ","))) {
 				if (!strcasecmp(word, "update")) {
-					ast_set_flag(&flags[0], SIP_REINVITE_UPDATE | SIP_CAN_REINVITE);
+					ast_set_flag(&flags[0], SIP_REINVITE_UPDATE | SIP_DIRECT_MEDIA);
 				} else if (!strcasecmp(word, "nonat")) {
-					ast_set_flag(&flags[0], SIP_CAN_REINVITE);
-					ast_clear_flag(&flags[0], SIP_CAN_REINVITE_NAT);
+					ast_set_flag(&flags[0], SIP_DIRECT_MEDIA);
+					ast_clear_flag(&flags[0], SIP_DIRECT_MEDIA_NAT);
 				} else {
-					ast_log(LOG_WARNING, "Unknown canreinvite mode '%s' on line %d\n", v->value, v->lineno);
+					ast_log(LOG_WARNING, "Unknown directmedia mode '%s' on line %d\n", v->value, v->lineno);
 				}
 			}
 		}
@@ -24594,7 +24595,7 @@ static int reload_config(enum channelreloadreason reason)
 	ast_copy_string(default_mohsuggest, DEFAULT_MOHSUGGEST, sizeof(default_mohsuggest));
 	ast_copy_string(default_vmexten, DEFAULT_VMEXTEN, sizeof(default_vmexten));
 	ast_set_flag(&global_flags[0], SIP_DTMF_RFC2833);			/*!< Default DTMF setting: RFC2833 */
-	ast_set_flag(&global_flags[0], SIP_CAN_REINVITE);			/*!< Allow re-invites */
+	ast_set_flag(&global_flags[0], SIP_DIRECT_MEDIA);			/*!< Allow re-invites */
 	ast_copy_string(default_engine, DEFAULT_ENGINE, sizeof(default_engine));
 
 	/* Debugging settings, always default to off */
@@ -25291,7 +25292,7 @@ static struct ast_udptl *sip_get_udptl_peer(struct ast_channel *chan)
 		return NULL;
 	
 	sip_pvt_lock(p);
-	if (p->udptl && ast_test_flag(&p->flags[0], SIP_CAN_REINVITE))
+	if (p->udptl && ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA))
 		udptl = p->udptl;
 	sip_pvt_unlock(p);
 	return udptl;
@@ -25342,7 +25343,7 @@ static enum ast_rtp_glue_result sip_get_rtp_peer(struct ast_channel *chan, struc
 	ao2_ref(p->rtp, +1);
 	*instance = p->rtp;
 
-	if (ast_test_flag(&p->flags[0], SIP_CAN_REINVITE | SIP_CAN_REINVITE_NAT)) {
+	if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA | SIP_DIRECT_MEDIA_NAT)) {
                 res = AST_RTP_GLUE_RESULT_REMOTE;
 	} else if (ast_test_flag(&global_jbconf, AST_JB_FORCED)) {
                 res = AST_RTP_GLUE_RESULT_FORBID;
@@ -25371,7 +25372,7 @@ static enum ast_rtp_glue_result sip_get_vrtp_peer(struct ast_channel *chan, stru
 	ao2_ref(p->vrtp, +1);
 	*instance = p->vrtp;
 
-	if (ast_test_flag(&p->flags[0], SIP_CAN_REINVITE)) {
+	if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA)) {
 		res = AST_RTP_GLUE_RESULT_REMOTE;
 	}
 
@@ -25398,7 +25399,7 @@ static enum ast_rtp_glue_result sip_get_trtp_peer(struct ast_channel *chan, stru
 	ao2_ref(p->trtp, +1);
         *instance = p->trtp;
 
-        if (ast_test_flag(&p->flags[0], SIP_CAN_REINVITE)) {
+        if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA)) {
                 res = AST_RTP_GLUE_RESULT_REMOTE;
         }
 
@@ -25430,7 +25431,7 @@ static int sip_set_rtp_peer(struct ast_channel *chan, struct ast_rtp_instance *i
         /* if this peer cannot handle reinvites of the media stream to devices
            that are known to be behind a NAT, then stop the process now
 	*/
-        if (nat_active && !ast_test_flag(&p->flags[0], SIP_CAN_REINVITE_NAT)) {
+        if (nat_active && !ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA_NAT)) {
                 sip_pvt_unlock(p);
                 return 0;
         }
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 6a82c74e56ecd808a2d6ad0dada04e96e93fbe15..edaf148d80ce62d60a48406b343e047a138fd706 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -1239,7 +1239,7 @@ struct skinny_subchannel {
 	int immediate;					\
 	int hookstate;					\
 	int nat;					\
-	int canreinvite;				\
+	int directmedia;				\
 	int prune;
 
 struct skinny_line {
@@ -1265,7 +1265,7 @@ static struct skinny_line_options{
  	.hidecallerid = 0,
 	.amaflags = 0,
  	.instance = 0,
- 	.canreinvite = 0,
+ 	.directmedia = 0,
  	.nat = 0,
  	.confcapability = AST_FORMAT_ULAW | AST_FORMAT_ALAW,
  	.capability = 0,
@@ -2689,7 +2689,7 @@ static enum ast_rtp_glue_result skinny_get_rtp_peer(struct ast_channel *c, struc
 
 	l = sub->parent;
 
-	if (!l->canreinvite || l->nat){
+	if (!l->directmedia || l->nat){
 		res = AST_RTP_GLUE_RESULT_LOCAL;
 		if (skinnydebug)
 			ast_verb(1, "skinny_get_rtp_peer() Using AST_RTP_GLUE_RESULT_LOCAL \n");
@@ -2749,7 +2749,7 @@ static int skinny_set_rtp_peer(struct ast_channel *c, struct ast_rtp_instance *r
 
 		req->data.startmedia.conferenceId = htolel(sub->callid);
 		req->data.startmedia.passThruPartyId = htolel(sub->callid);
-		if (!(l->canreinvite) || (l->nat)){
+		if (!(l->directmedia) || (l->nat)){
 			ast_rtp_instance_get_local_address(rtp, &us);
 			req->data.startmedia.remoteIp = htolel(d->ourip.s_addr);
 			req->data.startmedia.remotePort = htolel(ntohs(us.sin_port));
@@ -6717,9 +6717,9 @@ static struct ast_channel *skinny_request(const char *type, int format, const st
  				CLINE_OPTS->callwaiting = ast_true(v->value);
  				continue;
  			}
- 		} else if (!strcasecmp(v->name, "canreinvite")) {
+ 		} else if (!strcasecmp(v->name, "directmedia") || !strcasecmp(v->name, "canreinvite")) {
  			if (type & (TYPE_DEF_LINE | TYPE_LINE)) {
- 				CLINE_OPTS->canreinvite = ast_true(v->value);
+ 				CLINE_OPTS->directmedia = ast_true(v->value);
  				continue;
  			}
  		} else if (!strcasecmp(v->name, "nat")) {
diff --git a/configs/mgcp.conf.sample b/configs/mgcp.conf.sample
index 116b66cd036eb606117fb334901b603c2cb32a4e..fde0a4fc6daa90d192e3a80c9a50256812fc74ba 100644
--- a/configs/mgcp.conf.sample
+++ b/configs/mgcp.conf.sample
@@ -41,7 +41,7 @@
 ;[dlinkgw]
 ;host = 192.168.0.64
 ;context = default
-;canreinvite = no
+;directmedia = no
 ;line => aaln/2
 ;line => aaln/1
 
@@ -96,7 +96,7 @@
 ;callwaiting	= no
 ;callreturn	= yes
 ;cancallforward = yes
-;canreinvite	= no
+;directmedia	= no
 ;transfer	= no
 ;dtmfmode	= inband
 ;line => aaln/1			; now lets save this config to line1 aka aaln/1
@@ -104,7 +104,7 @@
 ;callwaiting	= no
 ;callreturn	= yes
 ;cancallforward = yes
-;canreinvite	= no
+;directmedia	= no
 ;transfer	= no
 ;dtmfmode	= inband
 ;line => aaln/2			; now lets save this config to line2 aka aaln/2
diff --git a/configs/res_ldap.conf.sample b/configs/res_ldap.conf.sample
index 0a442298da78a95b0b66a278c7381a0621b985a4..b02045f15c71e85352c4e00194c63de705954719 100644
--- a/configs/res_ldap.conf.sample
+++ b/configs/res_ldap.conf.sample
@@ -60,7 +60,7 @@ name = cn
 amaflags = AstAccountAMAFlags
 callgroup = AstAccountCallGroup
 callerid = AstAccountCallerID
-canreinvite = AstAccountCanReinvite
+directmedia = AstAccountDirectMedia
 context = AstAccountContext
 dtmfmode = AstAccountDTMFMode
 fromuser = AstAccountFromUser
@@ -131,7 +131,7 @@ additionalFilter=(objectClass=*)
 amaflags = AstAccountAMAFlags
 callgroup = AstAccountCallGroup
 callerid = AstAccountCallerID
-canreinvite = AstAccountCanReinvite
+directmedia = AstAccountDirectMedia
 context = AstAccountContext
 dtmfmode = AstAccountDTMFMode
 fromuser = AstAccountFromUser
diff --git a/configs/sip.conf.sample b/configs/sip.conf.sample
index fef5ef8f424bd7f637ee36319b6740516f185350..ba9b0c619f8e174302391153f63f700aec80352d 100644
--- a/configs/sip.conf.sample
+++ b/configs/sip.conf.sample
@@ -662,17 +662,17 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;        nat = comedia           ; Use rport if the remote side says to use it and perform symmetric RTP.
 
 ;----------------------------------- MEDIA HANDLING --------------------------------
-; By default, Asterisk tries to re-invite the audio to an optimal path. If there's
+; By default, Asterisk tries to re-invite media streams to an optimal path. If there's
 ; no reason for Asterisk to stay in the media path, the media will be redirected.
-; This does not really work with in the case where Asterisk is outside and have
-; clients on the inside of a NAT. In that case, you want to set canreinvite=nonat
+; This does not really work well in the case where Asterisk is outside and the
+; clients are on the inside of a NAT. In that case, you want to set directmedia=nonat.
 ;
-;canreinvite=yes                ; Asterisk by default tries to redirect the
-                                ; RTP media stream (audio) to go directly from
+;directmedia=yes                ; Asterisk by default tries to redirect the
+                                ; RTP media stream to go directly from
                                 ; the caller to the callee.  Some devices do not
                                 ; support this (especially if one of them is behind a NAT).
                                 ; The default setting is YES. If you have all clients
-                                ; behind a NAT, or for some other reason wants Asterisk to
+                                ; behind a NAT, or for some other reason want Asterisk to
                                 ; stay in the audio path, you may want to turn this off.
 
                                 ; This setting also affect direct RTP
@@ -684,18 +684,18 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; the call directly with media peer-2-peer without re-invites.
                                 ; Will not work for video and cases where the callee sends
                                 ; RTP payloads and fmtp headers in the 200 OK that does not match the
-                                ; callers INVITE. This will also fail if canreinvite is enabled when
+                                ; callers INVITE. This will also fail if directmedia is enabled when
                                 ; the device is actually behind NAT.
 
-;canreinvite=nonat              ; An additional option is to allow media path redirection
+;directmedia=nonat              ; An additional option is to allow media path redirection
                                 ; (reinvite) but only when the peer where the media is being
                                 ; sent is known to not be behind a NAT (as the RTP core can
                                 ; determine it based on the apparent IP address the media
                                 ; arrives from).
 
-;canreinvite=update             ; Yet a third option... use UPDATE for media path redirection,
+;directmedia=update             ; Yet a third option... use UPDATE for media path redirection,
                                 ; instead of INVITE. This can be combined with 'nonat', as
-                                ; 'canreinvite=update,nonat'. It implies 'yes'.
+                                ; 'directmedia=update,nonat'. It implies 'yes'.
 
 ;ignoresdpversion=yes           ; By default, Asterisk will honor the session version
                                 ; number in SDP packets and will only modify the SDP
@@ -859,7 +859,7 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ; remotesecret
 ; transport
 ; dtmfmode
-; canreinvite
+; directmedia
 ; nat
 ; callgroup
 ; pickupgroup
@@ -969,12 +969,12 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 
 [natted-phone](!,basic-options)   ; another template inheriting basic-options
         nat=yes
-        canreinvite=no
+        directmedia=no
         host=dynamic
 
 [public-phone](!,basic-options)   ; another template inheriting basic-options
         nat=no
-        canreinvite=yes
+        directmedia=yes
 
 [my-codecs](!)                    ; a template for my preferred codecs
         disallow=all
@@ -1009,7 +1009,7 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;host=192.168.0.23               ; we have a static but private IP address
                                  ; No registration allowed
 ;nat=no                          ; there is not NAT between phone and Asterisk
-;canreinvite=yes                 ; allow RTP voice traffic to bypass Asterisk
+;directmedia=yes                 ; allow RTP voice traffic to bypass Asterisk
 ;dtmfmode=info                   ; either RFC2833 or INFO for the BudgeTone
 ;call-limit=1                    ; permit only 1 outgoing call and 1 incoming call at a time
                                  ; from the phone to asterisk (deprecated)
@@ -1039,7 +1039,7 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;callerid="Jane Smith" <5678>
 ;host=dynamic                    ; This device needs to register
 ;nat=yes                         ; X-Lite is behind a NAT router
-;canreinvite=no                  ; Typically set to NO if behind NAT
+;directmedia=no                  ; Typically set to NO if behind NAT
 ;disallow=all
 ;allow=gsm                       ; GSM consumes far less bandwidth than ulaw
 ;allow=ulaw
@@ -1112,7 +1112,7 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                  ; Send SIP and RTP to the IP address that packet is
                                  ; received from instead of trusting SIP headers
 ;host=dynamic                    ; This device registers with us
-;canreinvite=no                  ; Asterisk by default tries to redirect the
+;directmedia=no                  ; Asterisk by default tries to redirect the
                                  ; RTP media stream (audio) to go directly from
                                  ; the caller to the callee.  Some devices do not
                                  ; support this (especially if one of them is
diff --git a/configs/skinny.conf.sample b/configs/skinny.conf.sample
index 701723923d3493f9d8bf3740d12e54f316cdb557..dfbddd4c5ca04d759dd7fb2733821eaab53945ef 100644
--- a/configs/skinny.conf.sample
+++ b/configs/skinny.conf.sample
@@ -157,7 +157,7 @@ keepalive=120
 ;device=SEP00D0BA847E6B
 ;version=P002G204	; Thanks critch
 ;context=did
-;canreinvite=yes	; Allow media to go directly between two RTP endpoints.
+;directmedia=yes	; Allow media to go directly between two RTP endpoints.
 ;line=120		; Dial(Skinny/120@florian)
 
 ; Typical config for a 7910
diff --git a/contrib/scripts/realtime_pgsql.sql b/contrib/scripts/realtime_pgsql.sql
index 5539bbeb8d4ae59585b6b3a7d920c1eb3943051a..d50dff55b7aabf14cb08e9e8f30756746f229f98 100644
--- a/contrib/scripts/realtime_pgsql.sql
+++ b/contrib/scripts/realtime_pgsql.sql
@@ -37,7 +37,7 @@ accountcode character varying(20),
 amaflags character varying(7),
 callgroup character varying(10),
 callerid character varying(80),
-canreinvite character varying(3) DEFAULT 'yes',
+directmedia character varying(3) DEFAULT 'yes',
 context character varying(80),
 defaultip character varying(15),
 dtmfmode character varying(7),
diff --git a/doc/chan_sip-perf-testing.txt b/doc/chan_sip-perf-testing.txt
index 85b22bddc76d590f09a358a137db87b0e3bcce00..56992ac7fc668bd682dbb1267fb6dc5ad5d0e789 100644
--- a/doc/chan_sip-perf-testing.txt
+++ b/doc/chan_sip-perf-testing.txt
@@ -58,7 +58,7 @@ type=friend
 context=test11
 host=192.168.134.240 ;; the address of the host you will be running sipp on
 user=sipp
-canreinvite=no
+directmedia=no
 disallow=all
 allow=ulaw
 
diff --git a/doc/res_config_sqlite.txt b/doc/res_config_sqlite.txt
index 39d31521af3c7c03e0ca21df6b164fbb1dc6bff7..95322cf1058462fab8d358ea86286af3a1fb80ee 100644
--- a/doc/res_config_sqlite.txt
+++ b/doc/res_config_sqlite.txt
@@ -70,7 +70,7 @@ CREATE TABLE ast_sip (
 	callgroup	VARCHAR(10)			DEFAULT NULL,
 	callerid	VARCHAR(80)			DEFAULT NULL,
 	cancallforward	CHAR(3)				DEFAULT 'yes',
-	canreinvite	CHAR(3)				DEFAULT 'yes',
+	directmedia	CHAR(3)				DEFAULT 'yes',
 	context		VARCHAR(80)			DEFAULT NULL,
 	defaultip	VARCHAR(15)			DEFAULT NULL,
 	dtmfmode	VARCHAR(7)			DEFAULT NULL,
diff --git a/doc/tex/phoneprov.tex b/doc/tex/phoneprov.tex
index cb236a89acf113c4f63f1c9dba36f19928585c85..04ca22fd0e0b76476c571f10041f700ad14e9856 100644
--- a/doc/tex/phoneprov.tex
+++ b/doc/tex/phoneprov.tex
@@ -146,7 +146,7 @@ threewaycalling = yes
 deletevoicemail = no
 autoprov = yes
 profile = polycom
-canreinvite = no
+directmedia = no
 nat = no
 fullname = User Two ; ${DISPLAY_NAME}
 secret = test ; ${SECRET}