Hi Frederic,
>> + if (!strncmp(number, "*31#", 4)) {
>> + number += 4;
>> + clir = OFONO_CLIR_OPTION_INVOCATION;
>> + } else if (!strncmp(number, "#31#", 4)) {
>> + number += 4;
>> + clir = OFONO_CLIR_OPTION_SUPPRESSION;
>> + } else
>> + clir = OFONO_CLIR_OPTION_DEFAULT;
>> +
>
> Actually this is not quite right. The clir option is determined by the
> presence of 'I'/'i' characters at the end of the dial string. Refer
to
> 27.007 for more details.
>
> oFono does not actually recognize temporary forms of *31/#31
> invocation yet.
>
I added *31/#31 as I found them in telephony-ofono implementation of
BlueZ HFP AG,
but 27.007 uses I/i,
and HFP 1.5 does not seem to support clir option (ATDdd...dd;)
Should I remove this part of code and only be compatible with HFP specs ?
Might as well handle the I/i and G/g part according to 27.007 since that
is pretty easy and we'll have to do it anyway. *31/#31 is really an MMI
code, it should never be sent to the modem, so please remove that for now.
>> + err = voicecall_dial(vc, number, clir,
emulator_dial_callback, vc);
>> + switch (err) {
>> + case DIAL_NO_ERROR:
>> + result.type = OFONO_ERROR_TYPE_NO_ERROR;
>> + break;
>> +
>> + case DIAL_NO_NETWORK:
>> + result.error = 30;
>> + result.type = OFONO_ERROR_TYPE_CME;
>> + break;
>
> This might need to be NO CARRIER
>
As far as I understand, when there is no network, ATD should reply NO
CARRIER if CMEE error mode is set to 0, or +CME ERROR: 30 if it is set
to 1.
Not quite. CMEE controls the presentation of 'extended' CME ERROR code.
Either as ERROR, CME ERROR: <num> or CME ERROR: <str>. NO CARRIER is
not an extended error code at all, and so is only affected by ATV
setting, not CMEE.
So, I think that voicecall should return an OFONO_ERROR_TYPE_CME 30,
and
ofono_emulator_send_final should take care of replying the right string.
Nope, you have to take your pick, either CME ERROR: 30, or NO CARRIER.
I'd expect most implementations to reply with a NO CARRIER in this case,
but can you check what other implementations do in reality?
Regards,
-Denis