Configuration over the air (OTA, OTACS)


#1

is it possible to configure (e.g. GPRS, APN, SMS provider) over the air?
For “normal” mobiles your provider can send you a special SMS ? with the settings.

Ideas?

Regards,

Veikko


#2

Yes, it would be possible: you would “just” need to write an Open-AT application to receive the settings and apply them…

Possibly you could use the SIM Application Toolkit instead…?


#3

How those SMS are triggered by a “normal” mobile phone and what exactly the operator replies is not publicly documented unfortunately.
You still have to select your APN manually from a list. Even if you have compiled a long list, an automation is still difficult because certain operators use different APN for different products (prepaid vs. contract for example). Just by looking at the sim card number you cannot tell what “product” you have got and thus not determine the right APN. Obviously big companies like Nokia, Sony Ericsson, etc cooperate with operators. Wavecom should do the same and provide this support.

Regards,

wismo_coder


#4

Hi,

You can embed an application that sends the received SMS as an AT command.
Here is an example that receives an AT command through SMS (it can be an AT command for configuration). The AT command is sent to Wireless CPU. The response is then sent back to the sender.


const u16 wm_apmCustomStackSize = 1024;
s8 SMSHandle;
ascii *numero;

bool rsphdl(adl_atResponse_t *paras)
{
s8 Envoi;
ascii *rsp;
rsp = (ascii *)adl_memGet(paras->StrLength);
wm_strRemoveCRLF(rsp, paras->StrData, paras->StrLength);
Envoi = adl_smsSend( SMSHandle, numero, rsp, ADL_SMS_MODE_TEXT );
TRACE((1,“resultat de l’envoi %d”,Envoi));
return TRUE;
}

bool SmsHandler ( ascii * SmsTel, ascii * SmsTimeOrLength, ascii * SmsText )
{

numero = (ascii )adl_memGet(20);
wm_memcpy (numero, SmsTel, 20);
//numero = SmsTel;
TRACE((1,“Inside SmsHandler”));
TRACE((1,“numero : %d”,SmsTel));
adl_atCmdCreate(SmsText, TRUE, rsphdl, "
",NULL);

return TRUE;

}

void SmsCtrlHandler ( u8 Event, u16 Nb )
{
switch (Event)
{
case ADL_SMS_EVENT_SENDING_OK:
TRACE((1,“SMS sent successfully!”));
break;
case ADL_SMS_EVENT_SENDING_ERROR:
TRACE((1,“SMS not sent!”));
break;
}

}

void SimHandler(u8 Event)
{
switch (Event)
{
case ADL_SIM_EVENT_FULL_INIT:
SMSHandle = adl_smsSubscribe( SmsHandler, SmsCtrlHandler, ADL_SMS_MODE_TEXT);
break;
}

}

void adl_main ( adl_InitType_e InitType )
{
TRACE (( 1, “Embedded Application : Main” ));

adl_simSubscribe ( SimHandler, NULL);

}