diff --git a/src/mod/endpoints/mod_media_gateway/media_gateway_utils.c b/src/mod/endpoints/mod_media_gateway/media_gateway_utils.c
index e622038ee6..3801ade93b 100644
--- a/src/mod/endpoints/mod_media_gateway/media_gateway_utils.c
+++ b/src/mod/endpoints/mod_media_gateway/media_gateway_utils.c
@@ -885,17 +885,59 @@ void mgco_handle_sdp_media_param(CmSdpMedPar *s, mg_termination_t* term, mgco_sd
 			if((NOTPRSNT != r->num.pres) && (0 != r->num.val) && (NULL != r->fmts[0])){
 					const char* name =  mg_get_codec_name(mg_profile, r->fmts[0]->val.val);
 					if(name){
-						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, " Updating codec to[%d], name[%s] \n", 
-								r->fmts[0]->val.val, name); 
 						if(MG_TERM_RTP == term->type){
 							term->u.rtp.codec = name;
 							term->u.rtp.pt = r->fmts[0]->val.val;
-							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,"Updating pt to [%d]\n", 
-									term->u.rtp.pt);
+							/* Set default value of sampling rate depends on codec */
+							switch(megaco_codec_parse(name))
+							{
+								case MEGACO_CODEC_PCMA:
+									{
+										term->u.rtp.rate = 8000; 
+										break;
+									}
+								case MEGACO_CODEC_PCMU:
+									{
+										/* TODO - proper values */
+										term->u.rtp.rate = 8000; 
+										break;
+									}
+								case MEGACO_CODEC_G729:
+									{
+										/* TODO - proper values */
+										term->u.rtp.rate = 8000; 
+										break;
+									}
+								case MEGACO_CODEC_G723_1:
+									{
+										/* TODO - proper values */
+										term->u.rtp.rate = 8000; 
+										break;
+									}
+								case MEGACO_CODEC_ILBC:
+									{
+										/* TODO - proper values */
+										term->u.rtp.rate = 8000; 
+										break;
+									}
+								default:
+									switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, 
+											" not updating sampling rate \n"); 
+									break;
+							}
+
+							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, 
+									" Updating codec to[%d], name[%s] \n", 
+									r->fmts[0]->val.val, name); 
+									
+							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
+									"Updating pt to [%d], rate to[%d]\n", 
+									term->u.rtp.pt, term->u.rtp.rate);
 						}
 					}else{
 						/* ERROR */
-						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, " NO Codec Name found against iana[%d] \n", r->fmts[0]->val.val); 
+						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, 
+									" NO Codec Name found against iana[%d] \n", r->fmts[0]->val.val); 
 					}
 			}