All of lore.kernel.org
 help / color / mirror / Atom feed
* Terminating emergency calls
@ 2010-08-12 17:39 Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  2010-08-12 18:23 ` Denis Kenzior
  0 siblings, 1 reply; 7+ messages in thread
From: Sjur =?unknown-8bit?q?Br=C3=A6ndeland?= @ 2010-08-12 17:39 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 326 bytes --]

Hi Denis.

I thought of one more issue with voice calls.
I don't think it is safe to to terminate emergency calls using
release_specific, AT+CHLD=1X.
At least this don't work for STE modems.

I suggest calls in state active should be terminated using hangup_all
or hangup_active.
What do you think?

Regards
Sjur

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Terminating emergency calls
  2010-08-12 17:39 Terminating emergency calls Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
@ 2010-08-12 18:23 ` Denis Kenzior
  2010-08-12 23:10   ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  0 siblings, 1 reply; 7+ messages in thread
From: Denis Kenzior @ 2010-08-12 18:23 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 970 bytes --]

Hi Sjur,

On 08/12/2010 12:39 PM, Sjur Brændeland wrote:
> Hi Denis.
> 
> I thought of one more issue with voice calls.
> I don't think it is safe to to terminate emergency calls using
> release_specific, AT+CHLD=1X.
> At least this don't work for STE modems.
> 
> I suggest calls in state active should be terminated using hangup_all
> or hangup_active.
> What do you think?

So in the case of a single call, the emergency call will be terminated
using hangup_all / hangup_active anyway.  I have relaxed the single call
restriction for active calls when hangup_active is provided by the
driver.  Refer to c7b13ec2fe664b122216a312f2442c9ca26f5f43

For mpty calls this gets tricky.  I'd like some answers to these questions:

- Can Emergency calls participate in mpty?
- Can Emergency calls be HELD?
- How do we recognize Emergency calls?  Is simple string matching of
numbers in EmergencyNumbers of VoiceCallManager enough?

Regards,
-Denis

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Terminating emergency calls
  2010-08-12 18:23 ` Denis Kenzior
@ 2010-08-12 23:10   ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  2010-08-13  2:45     ` Zhang, Zhenhua
  0 siblings, 1 reply; 7+ messages in thread
From: Sjur =?unknown-8bit?q?Br=C3=A6ndeland?= @ 2010-08-12 23:10 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1713 bytes --]

Denis Kenzior <denkenz@gmail.com> wrote:
>> I thought of one more issue with voice calls.
>> I don't think it is safe to to terminate emergency calls using
>> release_specific, AT+CHLD=1X.
>> At least this don't work for STE modems.
>>
>> I suggest calls in state active should be terminated using hangup_all
>> or hangup_active.
>> What do you think?
>
> So in the case of a single call, the emergency call will be terminated
> using hangup_all / hangup_active anyway.  I have relaxed the single call
> restriction for active calls when hangup_active is provided by the
> driver.  Refer to c7b13ec2fe664b122216a312f2442c9ca26f5f43

Yes, it seems to be ok for voicecall_hangup, but in manager_hangup_all
the active call is still terminated with release_specific in
voiceall_release_next.
This implies that if you have an emergency call and terminate it with
manager_hangup_all AT+CHLD=1X still will be used, right?

I suggest we change voicecall_release_next like this:

	if (vc->driver->hangup_active != NULL &&
			(call->call->status == CALL_STATUS_ALERTING ||
				call->call->status == CALL_STATUS_DIALING ||
+				call->call->status == CALL_STATUS_ACTIVE ||
				call->call->status == CALL_STATUS_INCOMING))
		vc->driver->hangup_active(vc, multirelease_callback, vc);
	else
		vc->driver->release_specific(vc, call->call->id,
						multirelease_callback, vc);

> For mpty calls this gets tricky.  I'd like some answers to these questions:
>
> - Can Emergency calls participate in mpty?

I have to verify this with some of my colleagues, but I am pretty sure
emergency calls cannot be applied to the AT+CHLD command. i.e. they cannot
be part of mpty.


Regards
Sjur

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: Terminating emergency calls
  2010-08-12 23:10   ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
@ 2010-08-13  2:45     ` Zhang, Zhenhua
  2010-08-13 13:44       ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  0 siblings, 1 reply; 7+ messages in thread
From: Zhang, Zhenhua @ 2010-08-13  2:45 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2405 bytes --]

Hi Sjur,

Sjur Br?ndeland wrote:
> Denis Kenzior <denkenz@gmail.com> wrote:
>>> I thought of one more issue with voice calls.
>>> I don't think it is safe to to terminate emergency calls using
>>> release_specific, AT+CHLD=1X. At least this don't work for STE
>>> modems. 
>>> 
>>> I suggest calls in state active should be terminated using
>>> hangup_all or hangup_active. What do you think?
>> 
>> So in the case of a single call, the emergency call will be
>> terminated using hangup_all / hangup_active anyway.  I have relaxed
>> the single call restriction for active calls when hangup_active is
>> provided by the 
>> driver.  Refer to c7b13ec2fe664b122216a312f2442c9ca26f5f43
> 
> Yes, it seems to be ok for voicecall_hangup, but in manager_hangup_all
> the active call is still terminated with release_specific in
> voiceall_release_next.
> This implies that if you have an emergency call and terminate it with
> manager_hangup_all AT+CHLD=1X still will be used, right?
> 
> I suggest we change voicecall_release_next like this:
> 
> 	if (vc->driver->hangup_active != NULL &&
> 			(call->call->status == CALL_STATUS_ALERTING ||
> 				call->call->status == CALL_STATUS_DIALING ||
> +				call->call->status == CALL_STATUS_ACTIVE ||
> 				call->call->status == CALL_STATUS_INCOMING))
> 		vc->driver->hangup_active(vc, multirelease_callback, vc);
> 	else
> 		vc->driver->release_specific(vc, call->call->id,
> 						multirelease_callback, vc);
> 
>> For mpty calls this gets tricky.  I'd like some answers to these
>> questions: 
>> 
>> - Can Emergency calls participate in mpty?
> 
> I have to verify this with some of my colleagues, but I am pretty sure
> emergency calls cannot be applied to the AT+CHLD command. i.e. they
> cannot be part of mpty.

If emergency calls cannot be part of mpty call, we can use either hangup_all or
hangup_active as Denis said. However, your suggested fix will break multiparty call
scenario since multiparty_hangup calls voicecall_release_next as well. Maybe we
should use call->type to indicate whether it's an emergy call. It looks to me that the
type flag in struct ofono_call hasn't been used yet. Correct me if I am wrong.

> 
> Regards
> Sjur
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> http://lists.ofono.org/listinfo/ofono



Regards,
Zhenhua

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Terminating emergency calls
  2010-08-13  2:45     ` Zhang, Zhenhua
@ 2010-08-13 13:44       ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  2010-08-13 19:05         ` Denis Kenzior
  0 siblings, 1 reply; 7+ messages in thread
From: Sjur =?unknown-8bit?q?Br=C3=A6ndeland?= @ 2010-08-13 13:44 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2889 bytes --]

 Zhang, Zhenhua <zhenhua.zhang@intel.com> wrote:
>> Denis Kenzior <denkenz@gmail.com> wrote:
>>>> I thought of one more issue with voice calls.
>>>> I don't think it is safe to to terminate emergency calls using
>>>> release_specific, AT+CHLD=1X. At least this don't work for STE
>>>> modems.
>>>>
>>>> I suggest calls in state active should be terminated using
>>>> hangup_all or hangup_active. What do you think?
>>>
>>> So in the case of a single call, the emergency call will be
>>> terminated using hangup_all / hangup_active anyway.  I have relaxed
>>> the single call restriction for active calls when hangup_active is
>>> provided by the
>>> driver.  Refer to c7b13ec2fe664b122216a312f2442c9ca26f5f43
>>
>> Yes, it seems to be ok for voicecall_hangup, but in manager_hangup_all
>> the active call is still terminated with release_specific in
>> voiceall_release_next.
>> This implies that if you have an emergency call and terminate it with
>> manager_hangup_all AT+CHLD=1X still will be used, right?
>>
>> I suggest we change voicecall_release_next like this:
>>
>>       if (vc->driver->hangup_active != NULL &&
>>                       (call->call->status == CALL_STATUS_ALERTING ||
>>                               call->call->status == CALL_STATUS_DIALING ||
>> +                             call->call->status == CALL_STATUS_ACTIVE ||
>>                               call->call->status == CALL_STATUS_INCOMING))
>>               vc->driver->hangup_active(vc, multirelease_callback, vc);
>>       else
>>               vc->driver->release_specific(vc, call->call->id,
>>                                               multirelease_callback, vc);
>>
>>> For mpty calls this gets tricky.  I'd like some answers to these
>>> questions:
>>>
>>> - Can Emergency calls participate in mpty?
>>
>> I have to verify this with some of my colleagues, but I am pretty sure
>> emergency calls cannot be applied to the AT+CHLD command. i.e. they
>> cannot be part of mpty.

Initial testing on STE modem indicates that emergency call cannot
participate in multi call or be put on hold.

>
> If emergency calls cannot be part of mpty call, we can use either hangup_all or
> hangup_active as Denis said. However, your suggested fix will break multiparty call
> scenario since multiparty_hangup calls voicecall_release_next as well.

Yes, you're right using hangup_active will terminate all active calls
participating in a multi call.
So my proposal will not work as is. Maybe we need to know if
release_next was called for multi call?

>Maybe we
> should use call->type to indicate whether it's an emergy call. It looks to me that the
> type flag in struct ofono_call hasn't been used yet. Correct me if I am wrong.

Regards
Sjur

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Terminating emergency calls
  2010-08-13 13:44       ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
@ 2010-08-13 19:05         ` Denis Kenzior
  2010-08-16 12:55           ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  0 siblings, 1 reply; 7+ messages in thread
From: Denis Kenzior @ 2010-08-13 19:05 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1229 bytes --]

Hi Sjur,

>>> I have to verify this with some of my colleagues, but I am pretty sure
>>> emergency calls cannot be applied to the AT+CHLD command. i.e. they
>>> cannot be part of mpty.
> 
> Initial testing on STE modem indicates that emergency call cannot
> participate in multi call or be put on hold.

What about a somewhat backdoor of putting call on hold on some modems:
If a call is active, and you dial another call, the active call is
automatically put on hold.  So if an emergency call is active and we
dial another number, what happens?

> 
>>
>> If emergency calls cannot be part of mpty call, we can use either hangup_all or
>> hangup_active as Denis said. However, your suggested fix will break multiparty call
>> scenario since multiparty_hangup calls voicecall_release_next as well.
> 
> Yes, you're right using hangup_active will terminate all active calls
> participating in a multi call.
> So my proposal will not work as is. Maybe we need to know if
> release_next was called for multi call?

I have commited a fix for this that I think should work just fine.  Can
you please check bab23b39767b664061ac2bcba747fe2b96561ca7 and let me
know if it solves the issue?

Regards,
-Denis

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Terminating emergency calls
  2010-08-13 19:05         ` Denis Kenzior
@ 2010-08-16 12:55           ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
  0 siblings, 0 replies; 7+ messages in thread
From: Sjur =?unknown-8bit?q?Br=C3=A6ndeland?= @ 2010-08-16 12:55 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1546 bytes --]

Denis Kenzior <denkenz@gmail.com> wrote:
> Hi Sjur,
>
>>>> I have to verify this with some of my colleagues, but I am pretty sure
>>>> emergency calls cannot be applied to the AT+CHLD command. i.e. they
>>>> cannot be part of mpty.
>>
>> Initial testing on STE modem indicates that emergency call cannot
>> participate in multi call or be put on hold.
>
> What about a somewhat backdoor of putting call on hold on some modems:
> If a call is active, and you dial another call, the active call is
> automatically put on hold.  So if an emergency call is active and we
> dial another number, what happens?

On the STE modem I get NO CARRIER if I try to put an emergency call on
hold this way.
fonod[27624]: > ATD911;\r
ofonod[27624]: < \r\nOK\r\n
...
ofonod[27624]: > ATD+4425993004494;\r
ofonod[27624]: < \r\nNO CARRIER\r\n

However the other way around works, by having a normal call and then
dialing an emergency number
puts the regular call on hold.

...
>> Yes, you're right using hangup_active will terminate all active calls
>> participating in a multi call.
>> So my proposal will not work as is. Maybe we need to know if
>> release_next was called for multi call?
>
> I have commited a fix for this that I think should work just fine.  Can
> you please check bab23b39767b664061ac2bcba747fe2b96561ca7 and let me
> know if it solves the issue?

Yes, it does. I can now use hangup_all on an emergency call :-)

I think this closes the last voice call issue for STE modems (for now).

Regards
Sjur

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-08-16 12:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-12 17:39 Terminating emergency calls Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
2010-08-12 18:23 ` Denis Kenzior
2010-08-12 23:10   ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
2010-08-13  2:45     ` Zhang, Zhenhua
2010-08-13 13:44       ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
2010-08-13 19:05         ` Denis Kenzior
2010-08-16 12:55           ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.