diff options
author | Mikel Astiz <mikel.astiz@bmw-carit.de> | 2013-01-21 16:30:24 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2013-01-21 09:41:54 -0600 |
commit | 843bd71169e721780b7305e5623196764171da9e (patch) | |
tree | d4ce3e66158ac7e1a5c48bcf25932c60128c4a8d /plugins/calypso.c | |
parent | cbb784e734e1d4e42e21eb887d6bb1eaeeefa71d (diff) | |
download | ofono-843bd71169e721780b7305e5623196764171da9e.tar.bz2 |
hfpmodem: Fix release-and-swap without +CIEV
Some phones do not send the corresponding call state update (+CIEV)
after a successful release-and-swap operation (AT+CHLD=1).
This has been observed with a Nokia 500, while testing ReleaseAndSwap()
while an active and a held call exist:
ofonod[20414]: > AT+CLCC\r
ofonod[20414]: < \r\n+CLCC: 1,0,1,0,0,"<number1>",145\r\n
ofonod[20414]: < \r\n+CLCC: 2,0,0,0,0,"<number2>",145\r\n
ofonod[20414]: < \r\nOK\r\n
ofonod[20414]: > AT+CHLD=1\r
ofonod[20414]: < \r\nOK\r\n
After this, no +CIEV is received, but the call has been hung up.
The proposed approach to solve this consists of using AT+CLCC, unless
a call release has been received within a specific time period.
The result fixes the problem as can be seen below:
ofonod[20847]: < \r\n+CLCC: 1,0,1,0,0,"<number1>",145\r\n
ofonod[20847]: < \r\n+CLCC: 2,0,0,0,0,"<number2>",145\r\n
ofonod[20847]: < \r\nOK\r\n
ofonod[20847]: > AT+CHLD=1\r
ofonod[20847]: < \r\nOK\r\n
ofonod[20847]: > AT+CLCC\r
ofonod[20847]: < \r\n+CLCC: 1,0,0,0,0,"<number1>",145\r\n
ofonod[20847]: < \r\nOK\r\n
ofonod[20847]: < \r\n+CIEV: 5,2\r\n
ofonod[20847]: < \r\n+CIEV: 5,0\r\n
Diffstat (limited to 'plugins/calypso.c')
0 files changed, 0 insertions, 0 deletions