mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-02 13:03:33 +00:00
Add extra debug output with channel mode and type
This provides helpful information for debugging internal MNCC handler.
This commit is contained in:
committed by
Holger Hans Peter Freyther
parent
aafff96c40
commit
8db12e4263
@@ -393,11 +393,13 @@ int gsm0808_assign_req(struct gsm_subscriber_connection *conn, int chan_mode, in
|
||||
if (handle_new_assignment(conn, chan_mode, full_rate) != 0)
|
||||
goto error;
|
||||
} else {
|
||||
LOGP(DMSC, LOGL_NOTICE,
|
||||
"Sending ChanModify for speech %d %d\n", chan_mode, full_rate);
|
||||
if (chan_mode == GSM48_CMODE_SPEECH_AMR)
|
||||
handle_mr_config(conn, conn->lchan, full_rate);
|
||||
|
||||
LOGP(DMSC, LOGL_NOTICE,
|
||||
"Sending ChanModify for speech: %s on channel %s\n",
|
||||
get_value_string(gsm48_chan_mode_names, chan_mode),
|
||||
get_value_string(gsm_chan_t_names, conn->lchan->type));
|
||||
gsm48_lchan_modify(conn->lchan, chan_mode);
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
#include <osmocom/gsm/gsm48.h>
|
||||
#include <osmocom/gsm/gsm0480.h>
|
||||
#include <osmocom/gsm/gsm_utils.h>
|
||||
#include <osmocom/gsm/protocol/gsm_04_08.h>
|
||||
#include <osmocom/core/msgb.h>
|
||||
#include <osmocom/core/talloc.h>
|
||||
#include <osmocom/gsm/tlv.h>
|
||||
@@ -1598,11 +1599,15 @@ static int tch_map(struct gsm_lchan *lchan, struct gsm_lchan *remote_lchan)
|
||||
{
|
||||
struct gsm_bts *bts = lchan->ts->trx->bts;
|
||||
struct gsm_bts *remote_bts = remote_lchan->ts->trx->bts;
|
||||
enum gsm_chan_t lt = lchan->type, rt = remote_lchan->type;
|
||||
int rc;
|
||||
|
||||
DEBUGP(DCC, "Setting up TCH map between (bts=%u,trx=%u,ts=%u) and (bts=%u,trx=%u,ts=%u)\n",
|
||||
bts->nr, lchan->ts->trx->nr, lchan->ts->nr,
|
||||
remote_bts->nr, remote_lchan->ts->trx->nr, remote_lchan->ts->nr);
|
||||
DEBUGP(DCC, "Setting up TCH map between (bts=%u,trx=%u,ts=%u,%s) and "
|
||||
"(bts=%u,trx=%u,ts=%u,%s)\n",
|
||||
bts->nr, lchan->ts->trx->nr, lchan->ts->nr,
|
||||
get_value_string(gsm_chan_t_names, lt),
|
||||
remote_bts->nr, remote_lchan->ts->trx->nr, remote_lchan->ts->nr,
|
||||
get_value_string(gsm_chan_t_names, rt));
|
||||
|
||||
if (bts->type != remote_bts->type) {
|
||||
LOGP(DCC, LOGL_ERROR, "Cannot switch calls between different BTS types yet\n");
|
||||
@@ -2999,6 +3004,7 @@ static int tch_rtp_create(struct gsm_network *net, uint32_t callref)
|
||||
struct gsm_bts *bts;
|
||||
struct gsm_lchan *lchan;
|
||||
struct gsm_trans *trans;
|
||||
enum gsm48_chan_mode m;
|
||||
|
||||
/* Find callref */
|
||||
trans = trans_find_by_callref(net, callref);
|
||||
@@ -3038,8 +3044,11 @@ static int tch_rtp_create(struct gsm_network *net, uint32_t callref)
|
||||
*/
|
||||
if (lchan->tch_mode == GSM48_CMODE_SIGN) {
|
||||
trans->conn->mncc_rtp_create_pending = 1;
|
||||
return gsm0808_assign_req(trans->conn,
|
||||
mncc_codec_for_mode(lchan->type),
|
||||
m = mncc_codec_for_mode(lchan->type);
|
||||
LOGP(DMNCC, LOGL_DEBUG, "RTP create: codec=%s, chan_type=%s\n",
|
||||
get_value_string(gsm48_chan_mode_names, m),
|
||||
get_value_string(gsm_chan_t_names, lchan->type));
|
||||
return gsm0808_assign_req(trans->conn, m,
|
||||
lchan->type != GSM_LCHAN_TCH_H);
|
||||
}
|
||||
|
||||
@@ -3068,6 +3077,10 @@ static int tch_rtp_connect(struct gsm_network *net, void *arg)
|
||||
}
|
||||
|
||||
lchan = trans->conn->lchan;
|
||||
LOGP(DMNCC, LOGL_DEBUG, "RTP connect: codec=%s, chan_type=%s\n",
|
||||
get_value_string(gsm48_chan_mode_names,
|
||||
mncc_codec_for_mode(lchan->type)),
|
||||
get_value_string(gsm_chan_t_names, lchan->type));
|
||||
|
||||
/* TODO: Check if payload_msg_type is compatible with what we have */
|
||||
if (rtp->payload_type != lchan->abis_ip.rtp_payload) {
|
||||
|
||||
@@ -138,7 +138,8 @@ static int mncc_setup_ind(struct gsm_call *call, int msg_type,
|
||||
memset(&mncc, 0, sizeof(struct gsm_mncc));
|
||||
mncc.callref = call->callref;
|
||||
mncc.lchan_mode = determine_lchan_mode(setup);
|
||||
DEBUGP(DMNCC, "(call %x) Modify channel mode.\n", call->callref);
|
||||
DEBUGP(DMNCC, "(call %x) Modify channel mode: %s\n", call->callref,
|
||||
get_value_string(gsm48_chan_mode_names, mncc.lchan_mode));
|
||||
mncc_tx_to_cc(call->net, MNCC_LCHAN_MODIFY, &mncc);
|
||||
|
||||
/* send setup to remote */
|
||||
|
||||
@@ -288,8 +288,10 @@ int main(int argc, char **argv)
|
||||
rc = bsc_bootstrap_network(mncc_sock_from_cc, config_file);
|
||||
if (rc >= 0)
|
||||
mncc_sock_init(bsc_gsmnet, mncc_sock_path);
|
||||
} else
|
||||
} else {
|
||||
DEBUGP(DMNCC, "Using internal MNCC handler.\n");
|
||||
rc = bsc_bootstrap_network(int_mncc_recv, config_file);
|
||||
}
|
||||
if (rc < 0)
|
||||
exit(1);
|
||||
#ifdef BUILD_SMPP
|
||||
|
||||
Reference in New Issue
Block a user