#include "gsm_audio.h"
}
-#include <mISDN/mISDNcompat.h>
#include <assert.h>
#define SOCKET_RETRY_TIMER 5
nrtp->payload_msg_type = GSM_TCHF_FRAME_EFR;
break;
case MEDIA_TYPE_AMR:
- nrtp->payload_msg_type = GSM_TCHF_FRAME_AMR;
+ nrtp->payload_msg_type = GSM_TCH_FRAME_AMR;
break;
case MEDIA_TYPE_GSM_HR:
- nrtp->payload_msg_type = GSM_TCHF_FRAME_HR;
+ nrtp->payload_msg_type = GSM_TCHH_FRAME;
break;
}
nrtp->payload_type = p_g_payload_type;
if (!p_g_decoder)
return;
- if (frame->msg_type != GSM_TCHF_BAD_FRAME) {
+ if (frame->msg_type != GSM_BAD_FRAME) {
if ((frame->data[0]>>4) != 0xd)
PERROR("received GSM frame with wrong magig 0x%x\n", frame->data[0]>>4);
add_trace("speech", "version", "AMR given");
mode->lchan_mode = 0x41; /* GSM V3 */
break;
- case MEDIA_TYPE_GSM_HR:
- add_trace("speech", "version", "Half Rate given");
- mode->lchan_mode = 0x05; /* GSM V1 HR */
- break;
default:
- add_trace("speech", "version", "Full Rate given");
+ add_trace("speech", "version", "Full/Half Rate given");
mode->lchan_mode = 0x01; /* GSM V1 */
}
mode->lchan_type = 0x02; /* FIXME: unused */
int rc;
static char buf[sizeof(struct gsm_mncc)+1024];
struct gsm_mncc *mncc_prim = (struct gsm_mncc *) buf;
+ struct gsm_mncc_hello *hello = (struct gsm_mncc_hello *) buf;
memset(buf, 0, sizeof(buf));
rc = recv(lfd->fd, buf, sizeof(buf), 0);
if (rc < 0)
return rc;
+ /* TODO: size check? */
+ switch (mncc_prim->msg_type) {
+ case MNCC_SOCKET_HELLO:
+ if (hello->version != MNCC_SOCK_VERSION) {
+ PERROR("MNCC version different. BSC version is %u\n", hello->version);
+ mncc_fd_close(lcr_gsm, lfd);
+ return 0;
+ }
+ break;
+ }
+
/* Hand the MNCC message into LCR */
switch (lcr_gsm->type) {
#ifdef WITH_GSM_BS