if ((mncc->fields & MNCC_F_BEARER_CAP)) {
/* select preferred payload type from list */
int i;
+ uint8_t dynamic_type = 96;
add_trace("bearer", "capa", "given by MS");
for (i = 0; mncc->bearer_cap.speech_ver[i] >= 0; i++) {
case 2:
add_trace("speech", "version", "EFR given");
media_type = MEDIA_TYPE_GSM_EFR;
- payload_type = 100 + *payloads;
+ payload_type = dynamic_type++;
break;
case 4:
add_trace("speech", "version", "AMR given");
media_type = MEDIA_TYPE_AMR;
- payload_type = 100 + *payloads;
+ payload_type = dynamic_type++;
break;
case 1:
add_trace("speech", "version", "Half Rate given");
media_type = MEDIA_TYPE_GSM_HR;
- payload_type = 100 + *payloads;
+ payload_type = dynamic_type++;
+ break;
+ case 5:
+ add_trace("speech", "version", "AMR Half Rate given");
+ media_type = MEDIA_TYPE_AMR;
+ payload_type = dynamic_type++;
break;
default:
add_trace("speech", "version", "%d given", mncc->bearer_cap.speech_ver[i]);
}
if (msg_type == GSM_TCHF_FRAME
- || msg_type == GSM_TCHF_BAD_FRAME) {
+ || msg_type == GSM_BAD_FRAME) {
if (port) {
/* inject DTMF, if enabled */
if (pgsm_bs->p_g_dtmf) {