projects
/
lcr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed complete bchannel handling from chan_lcr
[lcr.git]
/
gsm_bs.cpp
diff --git
a/gsm_bs.cpp
b/gsm_bs.cpp
index
9ce9321
..
3a9ab7d
100644
(file)
--- a/
gsm_bs.cpp
+++ b/
gsm_bs.cpp
@@
-64,6
+64,25
@@
Pgsm_bs::~Pgsm_bs()
PDEBUG(DEBUG_GSM, "Destroyed GSM BS process(%s).\n", p_name);
}
PDEBUG(DEBUG_GSM, "Destroyed GSM BS process(%s).\n", p_name);
}
+static const char *media_type2name(unsigned char media_type) {
+ switch (media_type) {
+ case MEDIA_TYPE_ULAW:
+ return "PCMU";
+ case MEDIA_TYPE_ALAW:
+ return "PCMA";
+ case MEDIA_TYPE_GSM:
+ return "GSM";
+ case MEDIA_TYPE_GSM_HR:
+ return "GSM-HR";
+ case MEDIA_TYPE_GSM_EFR:
+ return "GSM-EFR";
+ case MEDIA_TYPE_AMR:
+ return "AMR";
+ }
+
+ return "UKN";
+}
+
/* PROCEEDING INDICATION (from MS) */
void Pgsm_bs::call_conf_ind(unsigned int msg_type, unsigned int callref, struct gsm_mncc *mncc)
{
/* PROCEEDING INDICATION (from MS) */
void Pgsm_bs::call_conf_ind(unsigned int msg_type, unsigned int callref, struct gsm_mncc *mncc)
{
@@
-296,7
+315,7
@@
void Pgsm_bs::select_payload_type(struct gsm_mncc *mncc, unsigned char *payload_
if ((mncc->fields & MNCC_F_BEARER_CAP)) {
/* select preferred payload type from list */
int i;
if ((mncc->fields & MNCC_F_BEARER_CAP)) {
/* select preferred payload type from list */
int i;
- u
int8_t
dynamic_type = 96;
+ u
nsigned char
dynamic_type = 96;
add_trace("bearer", "capa", "given by MS");
for (i = 0; mncc->bearer_cap.speech_ver[i] >= 0; i++) {
add_trace("bearer", "capa", "given by MS");
for (i = 0; mncc->bearer_cap.speech_ver[i] >= 0; i++) {
@@
-322,6
+341,11
@@
void Pgsm_bs::select_payload_type(struct gsm_mncc *mncc, unsigned char *payload_
media_type = MEDIA_TYPE_GSM_HR;
payload_type = dynamic_type++;
break;
media_type = MEDIA_TYPE_GSM_HR;
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]);
media_type = 0;
default:
add_trace("speech", "version", "%d given", mncc->bearer_cap.speech_ver[i]);
media_type = 0;
@@
-583,7
+607,7
@@
int message_bsc(struct lcr_gsm *lcr_gsm, int msg_type, void *arg)
}
if (msg_type == GSM_TCHF_FRAME
}
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) {
if (port) {
/* inject DTMF, if enabled */
if (pgsm_bs->p_g_dtmf) {