Index: phapi/phapi.c
===================================================================
--- phapi/phapi.c	(revision 407)
+++ phapi/phapi.c	(revision 410)
@@ -4869,4 +4869,19 @@
 
 }
+char * ph_get_fixed_payload_name(int idx)
+{
+	if( idx == 0 )
+		return "PCMU";
+	else if( idx == 8 )
+		return "PCMA";
+	else if( idx == 9 )
+		return "G722";
+	else if( idx == 18 )
+		return "G729";
+	else if( idx == 34 )
+		return "H263";
+
+	return NULL;
+}
 
 static int
@@ -4885,6 +4900,14 @@
 			cur_payload = (sdp_payload_t *) osip_list_get (&ca->result_audio_payloads, 0);
 			ca->audio_payload = cur_payload->pt;
+
 			if (cur_payload->a_rtpmap)
 				osip_strncpy(ca->audio_payload_name, cur_payload->a_rtpmap, sizeof(ca->audio_payload_name)-1);
+			else
+			{
+				char * payload_name = ph_get_fixed_payload_name(ca->audio_payload);
+				if(payload_name)
+					osip_strncpy(ca->audio_payload_name, payload_name, sizeof(ca->audio_payload_name, payload_name)-1);
+			}
+
 			ca->remote_ptime = cur_payload->a_ptime;
 		}
@@ -4904,4 +4927,11 @@
 			if (cur_payload->a_rtpmap)
 				osip_strncpy(ca->video_payload_name, cur_payload->a_rtpmap, sizeof(ca->video_payload_name)-1);
+			else
+			{
+				char * payload_name = ph_get_fixed_payload_name(ca->audio_payload);
+				if(payload_name)
+					osip_strncpy(ca->video_payload_name, payload_name, sizeof(ca->video_payload_name)-1);
+			}
+
 			ca->remote_ptime = cur_payload->a_ptime;
 		}
@@ -5204,5 +5234,12 @@
 				
 				msp->ipayloads[i].number = cur_payload->pt;
-				ph_parse_payload_mime(&msp->ipayloads[0], ca->video_payload_name, 90000, 1);
+				if(cur_payload->a_rtpmap)
+					ph_parse_payload_mime(&msp->ipayloads[0], cur_payload->a_rtpmap, 90000, 1);
+				else
+				{
+					char * payload_name = ph_get_fixed_payload_name(msp->ipayloads[i].number);
+					if(payload_name)
+						ph_parse_payload_mime(&msp->ipayloads[i], payload_name, 8000, 1);
+				}
 				msp->opayloads[i] = msp->ipayloads[i];
 				msp->opayloads[i].ptime = cur_payload->a_ptime;
@@ -5310,5 +5347,12 @@
 
 				msp->ipayloads[i].number = cur_payload->pt;
-				ph_parse_payload_mime(&msp->ipayloads[i], cur_payload->a_rtpmap, 8000, 1);
+				if(cur_payload->a_rtpmap)
+					ph_parse_payload_mime(&msp->ipayloads[i], cur_payload->a_rtpmap, 8000, 1);
+				else
+				{
+					char * payload_name = ph_get_fixed_payload_name(msp->ipayloads[i].number);
+					if(payload_name)
+						ph_parse_payload_mime(&msp->ipayloads[i], payload_name, 8000, 1);
+				}
 				if (!strcasecmp(msp->ipayloads[i].string, "g722"))
 					msp->ipayloads[i].rate = 16000;
