diff --git a/html5/verto/video_demo/index.html b/html5/verto/video_demo/index.html
index 84657696bc..1ed53637ce 100644
--- a/html5/verto/video_demo/index.html
+++ b/html5/verto/video_demo/index.html
@@ -95,8 +95,29 @@
 	<table width="1000" cellspacing="0" cellpadding="0" border="0" align="center" id="conf_list" class="jsDataTable">
 	</table>
       </div>
+	<br clear=all>
+
+      <button data-inline="true" id="hold">HOLD</button>
+      <button data-inline="true" id="hupbtn">End Call</button>
+<!--      <button data-inline="true" class="startxferbtn">Transfer</button>-->
+      <span class="sharediv">
+	  <button data-inline="true" id="sharebtn">Share</button>
+	  <button data-inline="true" id="nosharebtn">End Share</button>
+      </span>
+
+      	     <span class="sharediv">
+	     	  <button data-inline="true" id="smallerbtn">Smaller - </button>
+	     	  <button data-inline="true" id="biggerbtn">Bigger +</button>
+  	     	  <button data-inline="true" id="fullbtn">Full Screen</button>
+      	     </span>
+
+      	<div id="media">	
+	      <video id="webcam" autoplay="autoplay"></video>
+
+      	</div>
+
+<br><br>
 
-      <br>
       <div id="message" hidden="true">
 	<hr class="l1" width="500"/>
 	<div id="chatwin"></div>
@@ -115,34 +136,9 @@
       	<div id="conf_mod"></div>
 	<div style="color:blue" id="conf_display"></div>
 
-      <button data-inline="true" id="hold">HOLD</button>
-      <button data-inline="true" id="hupbtn">End Call</button>
-<!--      <button data-inline="true" class="startxferbtn">Transfer</button>-->
-      <span class="sharediv">
-	  <button data-inline="true" id="sharebtn">Share</button>
-	  <button data-inline="true" id="nosharebtn">End Share</button>
-      </span>
 
-	<br><br><br>
 	<img src="img/verto_black_web.gif" width="300"><br><br>
 
-	<div id="media">	
-
-      <div class="sharediv">
-	  <button data-inline="true" id="smallerbtn">Smaller - </button>
-	  <button data-inline="true" id="biggerbtn">Bigger +</button>
-  	  <button data-inline="true" id="fullbtn">Full Screen</button>
-      </div>
-	  <table border=0 cellspacing=0 cellpadding=0 width=95%><tr>
-	  <td valign=top align=center><video id="webcam" autoplay="autoplay"></video></td>
-	  </tr><tr>
-
-<!--	  <td valign=top align=left>
-	  <br><br><video id="local_webcam" autoplay="autoplay" style="transform: scale(-1, 1);webkit-transform: scale(-1, 1);"></video></td>-->
-
-	  </tr></table>
-	</div>
-
 
       <div id=keypad>
 	<button class="dtmf" data-inline="true">1</button>
@@ -259,13 +255,12 @@ function dial(ext)
  
     <input type="radio" name="vqual" id="vqual_vga" value="vga">
     <label for="vqual_vga">VGA 640x480</label>
-
     <input type="radio" name="vqual" id="vqual_qvga_wide" value="qvga_wide">
     <label for="vqual_qvga_wide">QVGA WIDE 320x180</label>
  
     <input type="radio" name="vqual" id="vqual_vga_wide" value="vga_wide">
     <label for="vqual_vga_wide">VGA WIDE 640x360</label>
- 
+
     <input type="radio" name="vqual" id="vqual_hd" value="hd">
     <label for="vqual_hd">HD 1280x720</label>
 
@@ -273,9 +268,75 @@ function dial(ext)
     <label for="vqual_hhd">HHD 1920x1080</label>
 
   </fieldset>
-</div><Br>
+</div><br clear="all"><br>
+
+
+<div >
+  <fieldset data-role="controlgroup" data-type="horizontal">
+    <legend><b>Max Outgoing Bandwidth</b>:</legend>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_250kb" value="250">
+    <label for="outgoingBandwidth_250kb">250kb</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_500kb" value="500">
+    <label for="outgoingBandwidth_500kb">500kb</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_1024kb" value="1024">
+    <label for="outgoingBandwidth_1024kb">1mb</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_1536kb" value="1536">
+    <label for="outgoingBandwidth_1536kb">1.5mb</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_2048kb" value="2048">
+    <label for="outgoingBandwidth_2048kb">2mb</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_5120kb" value="5120">
+    <label for="outgoingBandwidth_5120kb">5mb</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_0kb" value="0">
+    <label for="outgoingBandwidth_0kb">No Limit</label>
+
+    <input type="radio" name="outgoingBandwidth" id="outgoingBandwidth_default" value="default">
+    <label for="outgoingBandwidth_default">Server Default</label>
+
+ 
+  </fieldset>
+</div><br clear="all"><br>
+
+
+<div >
+  <fieldset data-role="controlgroup" data-type="horizontal">
+    <legend><b>Max Incoming Bandwidth</b>:</legend>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_250kb" value="250">
+    <label for="incomingBandwidth_250kb">250kb</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_500kb" value="500">
+    <label for="incomingBandwidth_500kb">500kb</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_1024kb" value="1024">
+    <label for="incomingBandwidth_1024kb">1mb</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_1536kb" value="1536">
+    <label for="incomingBandwidth_1536kb">1.5mb</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_2048kb" value="2048">
+    <label for="incomingBandwidth_2048kb">2mb</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_5120kb" value="5120">
+    <label for="incomingBandwidth_5120kb">5mb</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_0kb" value="0">
+    <label for="incomingBandwidth_0kb">No Limit</label>
+
+    <input type="radio" name="incomingBandwidth" id="incomingBandwidth_default" value="default">
+    <label for="incomingBandwidth_default">Server Default</label>
+ 
+  </fieldset>
+</div><br clear="all"><br>
+
+
 
-<br clear="all">
 </div>
 	<button data-inline="true" id="showdemo" onclick="$('#demos').show();$('#showdemo').hide()">View Demo Extensions</button>
 <button data-inline="true" id="showdevices" onclick="$('#devices').show();$('#showdevices').hide()">View Device Settings</button>
diff --git a/html5/verto/video_demo/verto.js b/html5/verto/video_demo/verto.js
index f42757ab83..a5a2367c29 100644
--- a/html5/verto/video_demo/verto.js
+++ b/html5/verto/video_demo/verto.js
@@ -13,6 +13,8 @@ var vid_height = 180;
 var local_vid_width = 320;
 var local_vid_height = 180;
 
+var outgoingBandwidth;
+var incomingBandwidth;
 
 $( ".selector" ).pagecontainer({ "theme": "a" });
 
@@ -537,6 +539,8 @@ function docall() {
         destination_number: $("#ext").val(),
         caller_id_name: $("#name").val(),
         caller_id_number: $("#cid").val(),
+	outgoingBandwidth: outgoingBandwidth,
+	incomingBandwidth: incomingBandwidth,
         useVideo: check_vid(),
         useStereo: $("#use_stereo").is(':checked'),
 	useCamera: $("#usecamera").find(":selected").val(),
@@ -567,6 +571,8 @@ function doshare(on) {
             destination_number: $("#ext").val() + "-screen",
             caller_id_name: $("#name").val() + " (Screen)",
             caller_id_number: $("#cid").val() + " (screen)",
+	    outgoingBandwidth: outgoingBandwidth,
+	    incomingBandwidth: incomingBandwidth,
 	    videoParams: screen_constraints.video.mandatory,
             useVideo: true,
 	    screenShare: true
@@ -707,6 +713,162 @@ function init() {
         });
     });
 
+//
+    outgoingBandwidth = $.cookie("verto_demo_outgoingBandwidth") || "default";
+    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+        expires: 365
+    });
+
+    $("#outgoingBandwidth_250kb").prop("checked", outgoingBandwidth === "250").change(function(e) {
+        if ($("#outgoingBandwidth_250kb").is(':checked')) {
+	    outgoingBandwidth = "250";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_500kb").prop("checked", outgoingBandwidth === "500").change(function(e) {
+        if ($("#outgoingBandwidth_500kb").is(':checked')) {
+	    outgoingBandwidth = "500";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_1024kb").prop("checked", outgoingBandwidth === "1024").change(function(e) {
+        if ($("#outgoingBandwidth_1024kb").is(':checked')) {
+	    outgoingBandwidth = "1024";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_1536kb").prop("checked", outgoingBandwidth === "1536").change(function(e) {
+        if ($("#outgoingBandwidth_1536kb").is(':checked')) {
+	    outgoingBandwidth = "1536";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_2048kb").prop("checked", outgoingBandwidth === "2048").change(function(e) {
+        if ($("#outgoingBandwidth_2048kb").is(':checked')) {
+	    outgoingBandwidth = "2048";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_5120kb").prop("checked", outgoingBandwidth === "5120").change(function(e) {
+        if ($("#outgoingBandwidth_5120kb").is(':checked')) {
+	    outgoingBandwidth = "5120";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_0kb").prop("checked", outgoingBandwidth === "0").change(function(e) {
+        if ($("#outgoingBandwidth_0kb").is(':checked')) {
+	    outgoingBandwidth = "0";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#outgoingBandwidth_default").prop("checked", outgoingBandwidth === "default").change(function(e) {
+        if ($("#outgoingBandwidth_default").is(':checked')) {
+	    outgoingBandwidth = "default";
+	    $.cookie("verto_demo_outgoingBandwidth", outgoingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+//
+
+    incomingBandwidth = $.cookie("verto_demo_incomingBandwidth") || "default";
+    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+        expires: 365
+    });
+
+    $("#incomingBandwidth_250kb").prop("checked", incomingBandwidth === "250").change(function(e) {
+        if ($("#incomingBandwidth_250kb").is(':checked')) {
+	    incomingBandwidth = "250";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_500kb").prop("checked", incomingBandwidth === "500").change(function(e) {
+        if ($("#incomingBandwidth_500kb").is(':checked')) {
+	    incomingBandwidth = "500";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_1024kb").prop("checked", incomingBandwidth === "1024").change(function(e) {
+        if ($("#incomingBandwidth_1024kb").is(':checked')) {
+	    incomingBandwidth = "1024";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_1536kb").prop("checked", incomingBandwidth === "1536").change(function(e) {
+        if ($("#incomingBandwidth_1536kb").is(':checked')) {
+	    incomingBandwidth = "1536";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_2048kb").prop("checked", incomingBandwidth === "2048").change(function(e) {
+        if ($("#incomingBandwidth_2048kb").is(':checked')) {
+	    incomingBandwidth = "2048";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_5120kb").prop("checked", incomingBandwidth === "5120").change(function(e) {
+        if ($("#incomingBandwidth_5120kb").is(':checked')) {
+	    incomingBandwidth = "5120";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_0kb").prop("checked", incomingBandwidth === "0").change(function(e) {
+        if ($("#incomingBandwidth_0kb").is(':checked')) {
+	    incomingBandwidth = "0";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+
+    $("#incomingBandwidth_default").prop("checked", incomingBandwidth === "default").change(function(e) {
+        if ($("#incomingBandwidth_default").is(':checked')) {
+	    incomingBandwidth = "default";
+	    $.cookie("verto_demo_incomingBandwidth", incomingBandwidth, {
+		expires: 365
+	    });
+	}
+    });
+//
 
     var vqual = $.cookie("verto_demo_vqual") || "qvga";
     $.cookie("verto_demo_vqual", vqual, {
diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c
index 71ec4bcb19..813fa58129 100644
--- a/src/mod/endpoints/mod_verto/mod_verto.c
+++ b/src/mod/endpoints/mod_verto/mod_verto.c
@@ -3214,7 +3214,7 @@ static switch_bool_t verto__invite_func(const char *method, cJSON *params, jsock
 	cJSON *dialog;
 	verto_pvt_t *tech_pvt;
 	char name[512];
-	const char *var, *destination_number, *call_id = NULL, *sdp = NULL, 
+	const char *var, *destination_number, *call_id = NULL, *sdp = NULL, *bandwidth = NULL, 
 		*caller_id_name = NULL, *caller_id_number = NULL, *remote_caller_id_name = NULL, *remote_caller_id_number = NULL,*context = NULL;
 	
 	*response = obj;
@@ -3274,6 +3274,17 @@ static switch_bool_t verto__invite_func(const char *method, cJSON *params, jsock
 		switch_channel_set_flag(channel, CF_VIDEO_ONLY);
 	}
 
+	if ((bandwidth = cJSON_GetObjectCstr(dialog, "outgoingBandwidth"))) {
+		if (strcasecmp(bandwidth, "default")) {
+			switch_channel_set_variable(channel, "rtp_video_max_bandwidth_in", bandwidth);
+		}
+	}
+
+	if ((bandwidth = cJSON_GetObjectCstr(dialog, "incomingBandwidth"))) {
+		if (strcasecmp(bandwidth, "default")) {
+			switch_channel_set_variable(channel, "rtp_video_max_bandwidth_out", bandwidth);
+		}
+	}
 
 	switch_snprintf(name, sizeof(name), "verto.rtc/%s", destination_number);
 	switch_channel_set_name(channel, name);