FreeCalypso > hg > themwi-system-sw
diff mncc/call_setup.c @ 28:660126bd5f59
themwi-mncc: fix one bug, add debug syslog output
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 28 Jun 2022 21:47:04 -0800 |
parents | c6572f4c31d2 |
children | 2ebad02adbe5 |
line wrap: on
line diff
--- a/mncc/call_setup.c Tue Jun 28 19:21:51 2022 -0800 +++ b/mncc/call_setup.c Tue Jun 28 21:47:04 2022 -0800 @@ -66,12 +66,16 @@ else msg->fields &= ~MNCC_F_CALLING; if (!(msg->fields & MNCC_F_CALLED)) { + syslog(LOG_ERR, "rejecting MO call 0x%x: no called number", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_INVAL_MAND_INF); return; } call = create_gsm_call(msg->callref); if (!call) { + syslog(LOG_ERR, "rejecting MO call 0x%x: no memory for call", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_RESOURCE_UNAVAIL); return; @@ -91,6 +95,9 @@ break; res = lookup_short_dial_number(msg->called.number, nanp); if (!res) { + syslog(LOG_ERR, + "rejecting MO call 0x%x: invalid short number", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_UNASSIGNED_NR); call->gc_flag = 1; @@ -117,6 +124,9 @@ msg->called.plan != GSM48_NPI_NATIONAL) break; if (!is_nanp_valid_prefix(msg->called.number)) { + syslog(LOG_ERR, + "rejecting MO call 0x%x: invalid NANP number", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_INV_NR_FORMAT); call->gc_flag = 1; @@ -139,6 +149,9 @@ if (msg->called.number[0] != '1') break; if (!is_nanp_valid_prefix(msg->called.number+1)) { + syslog(LOG_ERR, + "rejecting MO call 0x%x: invalid NANP number", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_INV_NR_FORMAT); call->gc_flag = 1; @@ -155,6 +168,8 @@ is_local = 1; /* weed out attempts to call yourself */ if (is_local && !strcmp(msg->calling.number, msg->called.number)) { + syslog(LOG_ERR, "rejecting MO call 0x%x: call to self", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_INCOMPAT_DEST); call->gc_flag = 1; @@ -166,6 +181,8 @@ return; } /* outbound calls remain to be implemented */ + syslog(LOG_ERR, "rejecting MO call 0x%x: outbound not implemented", + msg->callref); reject_mo_call(msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_NO_ROUTE); call->gc_flag = 1; @@ -193,18 +210,23 @@ struct gsm_call *call; if (!(msg->fields & MNCC_F_CALLED) && !msg->imsi[0]) { + syslog(LOG_ERR, "rejecting ext MT: no called number"); reject_mt_call(conn, msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_INVAL_MAND_INF); return; } call = create_new_mt_call(); if (!call) { + syslog(LOG_ERR, "rejecting ext MT: no memory for call"); reject_mt_call(conn, msg->callref, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_RESOURCE_UNAVAIL); return; } call->socket = conn; call->socket_ref = msg->callref; + conn->ncalls++; + syslog(LOG_DEBUG, "mapped socket callref 0x%x to GSM callref 0x%x", + msg->callref, call->callref); /* forward to GSM MNCC interface */ msg->callref = call->callref; send_mncc_to_gsm(msg, sizeof(struct gsm_mncc));