Hello Denis,
Le 18/05/2011 18:13, Denis Kenzior a écrit :
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.
OK, so I will remove this part and will send a patch on I/i,G/g support
later.
>>> + 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.
OK, thanks for your explanation.
> 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?
In paragraph 6.2.13.11 of tr002v15, in reply to ATD command without
network, the flowchart shows usage of +CME ERROR: 30 or ERROR reply (no
usage of NO CARRIER).
Paragraph 4.33.2 of HFP 1.5 specification said that NO CARRIER (and
BUSY, NO ANSWER, ...) "are in addition to the +CME ERROR: reponses".
My understanding of specs is that we should send the CME ERROR and, if
we want, NO CARRIER in addition.
Regards
Fred
--
Frederic Danis Open Source Technology Centre
frederic.danis(a)intel.com Intel Corporation