#include <osmocom/bb/mobile/mncc.h>
#include <osmocom/vty/telnet_interface.h>
-#include <osmocore/msgb.h>
-#include <osmocore/talloc.h>
-#include <osmocore/select.h>
-#include <osmocore/signal.h>
+#include <osmocom/core/msgb.h>
+#include <osmocom/core/talloc.h>
+#include <osmocom/core/select.h>
+#include <osmocom/core/signal.h>
+
+#include <l1ctl_proto.h>
extern void *l23_ctx;
extern struct llist_head ms_list;
break;
case GSM_SIM_TYPE_TEST:
gsm_subscr_testcard(ms, set->test_rplmn_mcc,
- set->test_rplmn_mnc);
+ set->test_rplmn_mnc, set->test_lac,
+ set->test_tmsi);
break;
default:
/* no SIM, trigger PLMN selection process */
gsm_subscr_exit(ms);
gsm48_cc_exit(ms);
gsm_sim_exit(ms);
- lapdm_exit(&ms->l2_entity.lapdm_acch);
- lapdm_exit(&ms->l2_entity.lapdm_dcch);
+ lapdm_channel_exit(&ms->lapdm_channel);
ms->shutdown = 2; /* being down */
vty_notify(ms, NULL);
{
int rc;
- lapdm_init(&ms->l2_entity.lapdm_dcch, ms);
- lapdm_init(&ms->l2_entity.lapdm_acch, ms);
+ gsm_settings_arfcn(ms);
+
+ lapdm_channel_init(&ms->lapdm_channel, LAPDM_MODE_MS);
+ lapdm_channel_set_l1(&ms->lapdm_channel, l1ctl_ph_prim_cb, ms);
+
gsm_sim_init(ms);
gsm48_cc_init(ms);
gsm_subscr_init(ms);
ms->shutdown = 0;
ms->started = 0;
+ if (!strcmp(ms->settings.imei, "000000000000000")) {
+ printf("***\nWarning: Mobile '%s' has default IMEI: %s\n",
+ ms->name, ms->settings.imei);
+ printf("This could relate your identitiy to other users with "
+ "default IMEI.\n***\n");
+ }
+
l1ctl_tx_reset_req(ms, L1CTL_RES_T_FULL);
printf("Mobile '%s' initialized, please start phone now!\n", ms->name);
return 0;
/* global exit */
int l23_app_exit(void)
{
- unregister_signal_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
- unregister_signal_handler(SS_L1CTL, &mobile_signal_cb, NULL);
- unregister_signal_handler(SS_GLOBAL, &global_signal_cb, NULL);
+ osmo_signal_unregister_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
+ osmo_signal_unregister_handler(SS_L1CTL, &mobile_signal_cb, NULL);
+ osmo_signal_unregister_handler(SS_GLOBAL, &global_signal_cb, NULL);
- gps_close();
+ osmo_gps_close();
return 0;
}
const char *config_file, uint16_t vty_port)
{
struct telnet_connection dummy_conn;
- int rc;
+ int rc = 0;
mncc_recv_app = mncc_recv;
- gps_init();
+ osmo_gps_init();
vty_init(&vty_info);
ms_vty_init();
dummy_conn.priv = NULL;
vty_reading = 1;
- rc = vty_read_config_file(config_file, &dummy_conn);
- if (rc < 0) {
- fprintf(stderr, "Failed to parse the config file: '%s'\n",
- config_file);
- fprintf(stderr, "Please check or create config file using: "
- "'touch %s'\n", config_file);
- return rc;
+ if (config_file != NULL) {
+ rc = vty_read_config_file(config_file, &dummy_conn);
+ if (rc < 0) {
+ fprintf(stderr, "Failed to parse the config file:"
+ " '%s'\n", config_file);
+ fprintf(stderr, "Please check or create config file"
+ " using: 'touch %s'\n", config_file);
+ return rc;
+ }
}
vty_reading = 0;
telnet_init(l23_ctx, NULL, vty_port);
return rc;
printf("VTY available on port %u.\n", vty_port);
- register_signal_handler(SS_GLOBAL, &global_signal_cb, NULL);
- register_signal_handler(SS_L1CTL, &mobile_signal_cb, NULL);
- register_signal_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
+ osmo_signal_register_handler(SS_GLOBAL, &global_signal_cb, NULL);
+ osmo_signal_register_handler(SS_L1CTL, &mobile_signal_cb, NULL);
+ osmo_signal_register_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
if (llist_empty(&ms_list)) {
struct osmocom_ms *ms;