int server_tx_sim_sec_disable_facility(void) { unsigned char *p = 0; LXT_MESSAGE packet; SIM_DEBUG("\n"); SIM_DEBUG("pin lock disable mode - it means key not needed(ready) \n"); TAPIMessageInit(&packet); packet.data = malloc(2); p = (unsigned char *)(packet.data); packet.group = GSM_SIM; packet.length = 1 + 1 ; packet.action = GSM_SIM_FACILITY_RES; //server_sec_set_sec_status(GSM_SIM_READY); //set_current_state( STATE_SIM_READY, GSM_SEC_CMD, GSM_SEC_PIN_STATUS); server_tx_sim_sec_pin_status_noti(STATE_ON, STATE_SIM_READY); p[0] = 0; p[1] = GSM_SIM_READY; /* ++ 2008-09-29 */ //FuncServer->Cast(&GlobalPS, LXT_ID_CLIENT_EVENT_INJECTOR, &packet); if(packet.data) free(packet.data); return 1; }
int server_tx_sim_sec_enable_facility(int status) { unsigned char *p = 0; LXT_MESSAGE packet; SIM_DEBUG("\n"); SIM_DEBUG("sim status =[%d]\n", status); TAPIMessageInit(&packet); packet.data = malloc(2); p = (unsigned char *)(packet.data); packet.group = GSM_SIM; packet.length = 1 + 1; packet.action = GSM_SIM_FACILITY_RES; p[0] = 1; p[1] = status; switch (status) { /* case GSM_SIM_READY : set_current_state(STATE_SIM_READY, GSM_SEC_CMD, GSM_SEC_PIN_STATUS, 0 ); break; */ case GSM_SIM_PIN_REQ_STATE : server_tx_sim_sec_pin_status_noti(STATE_ON, STATE_SIM_PIN); break; case GSM_SIM_PUK_REQ : server_tx_sim_sec_pin_status_noti(STATE_ON, STATE_SIM_PUK); break; case GSM_SIM_FRIZEN : server_tx_sim_sec_pin_status_noti(STATE_ON, STATE_SIM_FRIZEN); break; case GSM_SIM_NO_SIM : server_tx_sim_sec_pin_status_noti(STATE_ON, STATE_SIM_NO_SIM); break; default : SIM_DEBUG("No handled sim status=[%x]", status); break; } //server_tx_sim_sec_pin_status_noti(); FuncServer->Cast(&GlobalPS, LXT_ID_CLIENT_EVENT_INJECTOR, &packet); if(packet.data) free(packet.data); return 1; }
bool Sim::init(const ExprPtrT& g, std::string& err, int p) { SIM_DEBUG("Sim::init() g=", g) SIM_DEBUG("Sim::init() p=", p) SIM_DEBUG("Sim::init() proc=", proc) SIM_DEBUG("Sim::init() global=", global) global = g; proc = p; iter = 0; init_result_file = true; try { global->evaluate(&scope); n_iters = ExprIterator::count_iterations(&scope); } catch (const ExpressionError& exprerr) { SIM_DEBUG("Sim::init() error while evaluating global:", exprerr.what()) err = std::string("Parameters could not be initialized: " + exprerr.what()); return false; }; SIM_DEBUG("Sim::init() sucess! n_iters=", n_iters) SIM_DEBUG("Sim::init() sucess! scope=", scope.info()) return true; };
int server_tx_sim_init_start(void) { int status; SIM_DEBUG("\n"); //not used //server_tx_sim_sec_card_type_noti(); //load from sim db db_sim_sec_restore(VGSM_SIMTypeLoad); status = server_sec_get_sec_status(); SIM_DEBUG("boot time sim status =[%x]\n", status); if(status == GSM_SIM_READY) { server_tx_sim_sec_disable_facility(); } else { server_tx_sim_sec_enable_facility(status); } return 1; }
void Sim::signal(const SimSignal& sig, const std::string& str) { SIM_DEBUG("proc="<<proc << " iter="<<iter, "signal="<<sig<<" msg="<<str) sim_send_signal(sig, iter, SIM_MPI_CNTRL); if (is_io_signal(sig)) { sim_send_message(str, SIM_MPI_CNTRL); }; if (is_throw_signal(sig)) { throw sig; }; };
/**************************************090226*************************************************/ int oem_rx_sim_pb_exec_access_req(void* ptr_data, int data_len) { unsigned char *p = (unsigned char*)(ptr_data); int sim_mode = p[0]; // action type or mode SIM_DEBUG("\n"); switch(sim_mode) { case 0x03: //TAPI_SIM_PB_ACCESS_MODE_EDIT: return server_rx_sim_pb_update_record("TelTapisimPBUpdateRecord"); break; case 0x02: //TAPI_SIM_PB_ACCESS_MODE_DEL: return server_rx_sim_pb_del_record("TelTapisimPBDeleteRecord"); break; } return 0; }
int server_tx_sim_sec_card_type_noti(void) { int ret = 0; int data_size = 1; unsigned char *pdata = 0; SIM_DEBUG("\n"); pdata = malloc(sizeof(unsigned char)*data_size); pdata[0] = GSM_SEC_SIM_3G; ret = oem_tx_sim_sec_card_type_noti(pdata, data_size); if( pdata ) free( pdata ); return ret; }
int server_tx_sim_sec_get_db(SimSecurity *sim_sec) { int length; LXT_MESSAGE packet; SIM_DEBUG("\n"); TAPIMessageInit(&packet); length = 9+9+9+9+4+4+4+4+4+4+4+4; //68 packet.data = malloc(sizeof(SimSecurity)); packet.data = sim_sec; packet.group = GSM_SIM; packet.length = length ; packet.action = GSM_SIM_GET_SIM_DB_RES; FuncServer->Cast(&GlobalPS, LXT_ID_CLIENT_EVENT_INJECTOR, &packet); if(packet.data) free(packet.data); return 1; }
int server_tx_sim_info_get_db(unsigned char *sim_info, int len) { int length; LXT_MESSAGE packet; SIM_DEBUG(" len_info : %d\n",len); TAPIMessageInit(&packet); //length = 9+9+9+9+4+4+4+4+4+4+4+4; //68 length = len; //43 packet.data = sim_info; packet.group = GSM_SIM; packet.length = length ; packet.action = GSM_SIMINFO_RES; FuncServer->Cast(&GlobalPS, LXT_ID_CLIENT_EVENT_INJECTOR, &packet); if(packet.data) free(packet.data); return 1; }
int oem_rx_sim_pb_get_capability_info(void* ptr_data, int data_len) { SIM_DEBUG("\n"); return server_rx_sim_pb_get_capability_info("TelTapiSimPbGet3GCapabilityInfo"); }
int oem_rx_sim_pb_get_storage_list_req(void* ptr_data, int data_len) { SIM_DEBUG("\n"); return server_rx_sim_pb_get_storage_list_req(ptr_data, data_len); }
int oem_rx_sim_pb_get_entry_info_req(void* ptr_data, int data_len) { SIM_DEBUG("\n"); return server_rx_sim_pb_get_entry_info_req(ptr_data, data_len); }
int oem_rx_sim_pb_set_access_req(void* ptr_data, int data_len) { SIM_DEBUG("\n"); return server_rx_sim_pb_set_access_req(ptr_data, data_len); }
/* this API is for NOTIFICATION of SIM PIN STATUS */ int server_tx_sim_sec_pin_status_noti(STATE_TYPE before_state, STATE_TYPE current_state) { int ret = 0; int data_size = 2; unsigned char *pdata = 0; int send_sim_init_msg = 0; // STATE current; // STATE prev; SIM_DEBUG("\n"); pdata = malloc(sizeof(unsigned char)*data_size); // get_current_state_machine( ¤t ); // get_prev_state_machine( &prev ); // SIM_DEBUG("STATE_TYPE(prev)=%d \n", STATE_TYPE(prev)); switch(before_state) { //add STATE_STANDBY for test. case STATE_STANDBY : case STATE_ON: { switch(current_state) { case STATE_SIM_READY : { /* lock disable일 경우 modem(vgsm)이 simulator로 보내줘야 할 NOTI 1) GSM_SEC_LOCK_TYPE_READY 2) GSM_SEC_SIM_INIT_COMPLETED 3) GSM_SEC_PB_INIT_COMPLETED - 현재 phonebook이 미구현 상태라 보내지 않음. */ pdata[0] = GSM_SEC_LOCK_TYPE_READY; pdata[1] = GSM_SEC_LOCK_KEY_UNLOCKED; #if 0 //20110714 tmp oem_tx_sim_sec_pin_status_noti(pdata, data_size); sleep(3); pdata[0] = GSM_SEC_SIM_INIT_COMPLETED; pdata[1] = GSM_SEC_LOCK_KEY_UNLOCKED; send_sim_init_msg = 1; /* oem_tx_sim_sec_pin_status_noti(pdata, data_size); pdata[0] = GSM_SEC_PB_INIT_COMPLETED; pdata[1] = GSM_SEC_LOCK_KEY_UNLOCKED; */ #endif } break; case STATE_SIM_PIN : { pdata[0] = GSM_SEC_LOCK_TYPE_SC; pdata[1] = GSM_SEC_LOCK_KEY_PIN; } break; case STATE_SIM_PUK : { pdata[0] = GSM_SEC_LOCK_TYPE_SC; pdata[1] = GSM_SEC_LOCK_KEY_PUK; } break; case STATE_SIM_FRIZEN : { pdata[0] = GSM_SEC_LOCK_TYPE_SC; pdata[1] = GSM_SEC_LOCK_KEY_PERM_BLOCKED; } break; case STATE_SIM_NO_SIM : { pdata[0] = GSM_SEC_LOCK_TYPE_NO_SIM; pdata[1] = GSM_SEC_LOCK_KEY_UNLOCKED; //to be considered... } break; default : SIM_DEBUG("No handled current_state=[%d]\n",current_state); break; } } break; case STATE_SIM_PIN : case STATE_SIM_PUK : { switch(current_state) { case STATE_SIM_PIN_OK : case STATE_SIM_PUK_OK: { pdata[0] = GSM_SEC_SIM_INIT_COMPLETED; pdata[1] = GSM_SEC_LOCK_KEY_UNLOCKED; send_sim_init_msg = 1; /* oem_tx_sim_sec_pin_status_noti(pdata, data_size); pdata[0] = GSM_SEC_PB_INIT_COMPLETED; pdata[1] = GSM_SEC_LOCK_KEY_UNLOCKED; */ } break; default: SIM_DEBUG("No handled current_state=[%d]\n",current_state); break; } } break; default: { SIM_DEBUG("No handled case in before_state = [%d]\n", before_state); } break; } ret = oem_tx_sim_sec_pin_status_noti(pdata, data_size); if( pdata ) free( pdata ); return ret; }