Trouble sending sms with cinterion tc65
by Reynaldo Baquerizo
Hi everyone,
I would like to know what is Cinterion tc65's status. I am looking for
its sms functionality and it is not working.
I've tried to figure this out for my own, but since I am to new ofono
and not much of a C coder I guess I haven't gone so far.
I've tried running it with the debugger, and as far as I can tell it
doesn't seem to add the atom watch for OFONO_ATOM_TYPE_NETREG because
neither of these conditions are met (in __ofono_modem_add_atom_watch)
> for (l = modem->atoms; l; l = l->next) {
> atom = l->data;
>
> if (atom->type != type || atom->unregister == NULL)
> continue;
>
> notify(atom, OFONO_ATOM_WATCH_CONDITION_REGISTERED, data); }
Then I think I've added ofono_cbs_create in tc65_post_online and after
that "atom->type != type" is met but atom->unregister is null still.
I'd like to volunteer to fix this (if there is anything to fix here),
any hint to further debug this is welcome :-)
Regarding post_sim and post_online, when one enables the modem the
MessageManager is then exposed but one can not send messages, it is only
possible after going online. I find this not clear.
Thanks,
--
Reynaldo
8 years, 10 months
[PATCH] phonesim: Fix AT+CHLD=1x
by Frédéric Danis
AT+CHLD=1x should only hangup active call
---
src/callmanager.cpp | 38 ++++++++++++++++++++++++--------------
1 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/src/callmanager.cpp b/src/callmanager.cpp
index dfa2b9e..7208100 100644
--- a/src/callmanager.cpp
+++ b/src/callmanager.cpp
@@ -441,7 +441,21 @@ void CallManager::hangupConnectedAndHeld()
void CallManager::hangupCall( int id )
{
- chld1x( id );
+ QList<CallInfo> newCallList;
+ for ( int index = 0; index < callList.size(); ++index ) {
+ if ( callList[index].id == id ) {
+ callList[index].state = CallState_Hangup;
+ sendState( callList[index] );
+ } else {
+ newCallList += callList[index];
+ }
+ }
+ callList = newCallList;
+
+ if ( !hasCall( CallState_Active ) && !hasCall( CallState_Held ) )
+ waitingToIncoming();
+
+ emit callStatesChanged( &callList );
}
void CallManager::hangupRemote( int id )
@@ -491,8 +505,10 @@ bool CallManager::chld0()
{
// If there is an incoming call, then that is the one to hang up.
int id = idForIncoming();
- if ( id >= 0 )
- return chld1x( id );
+ if ( id >= 0 ) {
+ hangupCall( id );
+ return true;
+ }
// Bail out if no held calls.
if ( !hasCall( CallState_Held ) )
@@ -540,24 +556,18 @@ bool CallManager::chld1()
bool CallManager::chld1x( int x )
{
- QList<CallInfo> newCallList;
- bool found = false;
for ( int index = 0; index < callList.size(); ++index ) {
- if ( callList[index].id == x ) {
- callList[index].state = CallState_Hangup;
- sendState( callList[index] );
- found = true;
- } else {
- newCallList += callList[index];
+ if ( callList[index].id == x && callList[index].state == CallState_Active) {
+ hangupCall( x );
+ return true;
}
}
- callList = newCallList;
if ( !hasCall( CallState_Active ) && !hasCall( CallState_Held ) )
- waitingToIncoming();
+ waitingToIncoming();
emit callStatesChanged( &callList );
- return found;
+ return false;
}
bool CallManager::chld2()
--
1.7.1
8 years, 10 months
[PATCH 0/2] mmsd: fix problems when unregistering msg
by Ronald Tessier
Please find changes in mmsd in order to fix problems that occurred when
unregistering messages.
1) the messages table contains mms_message object and not uuid, now
every message is unregister with its correct path when the messages
table is destroyed. Furthermore, don't need to remove the message from
the table using g_hash_table_foreach_remove() since
mms_message_unregister() already removed it from the table.
2) use the msg_path (within the debug statement) before removing the
message from the table which free it
Ronald Tessier (2):
service: fix object path when unregistering msg
service: free the msg after tracing its path
src/service.c | 16 ++++++----------
1 files changed, 6 insertions(+), 10 deletions(-)
--
1.7.4.1
8 years, 10 months
[PATCH 1/4] voicecall: Improve transitions check
by Frédéric Danis
Indicators should not be updated if:
- multiple separate calls are active at same time
- a conf call and a call are active at same time
- multiple separate calls are held at same time
- a conf call and a call are held at same time
- a conf call has call in active and held state
---
src/voicecall.c | 29 +++++++++++++++++------------
1 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/src/voicecall.c b/src/voicecall.c
index c128227..dc4fdf5 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -779,6 +779,8 @@ static void notify_emulator_call_status(struct ofono_voicecall *vc)
unsigned int non_mpty = 0;
gboolean multiparty = FALSE;
gboolean held = FALSE;
+ unsigned int non_mpty_held = 0;
+ gboolean multiparty_held = FALSE;
gboolean incoming = FALSE;
gboolean dialing = FALSE;
gboolean alerting = FALSE;
@@ -805,6 +807,12 @@ static void notify_emulator_call_status(struct ofono_voicecall *vc)
case CALL_STATUS_HELD:
held = TRUE;
+ if (g_slist_find_custom(vc->multiparty_list,
+ GINT_TO_POINTER(v->call->id),
+ call_compare_by_id))
+ multiparty_held = TRUE;
+ else
+ non_mpty_held++;
break;
case CALL_STATUS_DIALING:
@@ -838,6 +846,15 @@ static void notify_emulator_call_status(struct ofono_voicecall *vc)
if (waiting && (held == FALSE && call == FALSE))
return;
+ if (non_mpty > 1 || (non_mpty && multiparty))
+ return;
+
+ if (non_mpty_held > 1 || (non_mpty_held && multiparty_held))
+ return;
+
+ if (multiparty && multiparty_held)
+ return;
+
data.status = call || held ? OFONO_EMULATOR_CALL_ACTIVE :
OFONO_EMULATOR_CALL_INACTIVE;
@@ -864,18 +881,6 @@ static void notify_emulator_call_status(struct ofono_voicecall *vc)
if (held)
data.status = call ? OFONO_EMULATOR_CALLHELD_MULTIPLE :
OFONO_EMULATOR_CALLHELD_ON_HOLD;
- else if (non_mpty > 1 || (non_mpty && multiparty))
- /*
- * After call swap, it is possible that all calls move
- * temporarily to active state (depending on call state update
- * order), generating an update of callheld indicator to 0.
- * This will fail PTS test TP/TWC/BV-03-I.
- *
- * So, in case of multiple active calls, or an active call with
- * an active mutiparty call, force update of callheld indicator
- * to 2 (intermediate state allowed).
- */
- data.status = OFONO_EMULATOR_CALLHELD_ON_HOLD;
else
data.status = OFONO_EMULATOR_CALLHELD_NONE;
--
1.7.1
8 years, 10 months
[PATCH] sim900: Add ussd and voice call support
by r.r.zaripov@gmail.com
From: Renat Zaripov <r.r.zaripov(a)gmail.com>
---
plugins/sim900.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/plugins/sim900.c b/plugins/sim900.c
index 1589a33..496faa6 100644
--- a/plugins/sim900.c
+++ b/plugins/sim900.c
@@ -43,6 +43,7 @@
#include <ofono/phonebook.h>
#include <ofono/history.h>
#include <ofono/log.h>
+#include <ofono/voicecall.h>
#include <drivers/atmodem/vendor.h>
@@ -235,6 +236,8 @@ static void sim900_post_online(struct ofono_modem *modem)
DBG("%p", modem);
ofono_netreg_create(modem, OFONO_VENDOR_SIMCOM, "atmodem", data->modem);
+ ofono_ussd_create(modem, 0, "atmodem", data->modem);
+ ofono_voicecall_create(modem, 0, "atmodem", data->modem);
}
static struct ofono_modem_driver sim900_driver = {
--
1.7.7.3
8 years, 10 months
[PATCH 0/1] mmsd TODO
by Sébastien Bianti
The following patch concerns mmsd (for ofono mailing list).
Sébastien Bianti (1):
TODO: remove completed tasks
TODO | 59 -----------------------------------------------------------
1 files changed, 0 insertions(+), 59 deletions(-)
--
1.7.4.4
8 years, 10 months
[PATCH 0/1] mmsd
by Sébastien Bianti
This patch concerns mmsd (for ofono mailing list) and fixes a double free.
Sébastien Bianti (1):
service: mms_request_destroy shouldn't free msg
src/service.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
--
1.7.4.4
8 years, 10 months
Huawei voice output port issue + patch
by Jarkko Lehtoranta
Hi,
Voice output serial port is enabled on some Huawei models (e.g. E169)
without problems, but for example on E173u-2 it is never enabled during
an incoming call. There might also be other Huawei models having the
same issue.
I traced the issue down to "^DDSETEX" AT command, which is used to
notify the device to start streaming audio. It seems that Ofono sends
this command too early on incoming calls. The command should always be
sent *after* the dial "D" or answer "A" command. The patch fixes this
behavior and afterwards voice will also work on E173u-2.
Bug: https://bugs.meego.com/show_bug.cgi?id=25004
Patch: https://bugs.meego.com/attachment.cgi?id=9702
-Jarkko
8 years, 10 months
obtain HFP disconnection event reason code
by Mike
In order to act like a better headset in the HFP HF role, I am in need
of the reason code from the disconnection event. This is so that I
can detect when a disconnect occurs as a result of the units moving
out of range of each other, rather than an intentional disconnect. In
the event of a disconnection based on connection loss, I can then
periodically re-attempt the connection. I have not seen any D-Bus
messages that would indicate such an event.
Any ideas on how to obtain this? I can see that in the hciops version
of bluez, the reason code makes it into bluetoothd just because the
entire disconnect event is transferred. This is not the case in the
mgmtops version. It looks like the reason code also hops along the
L2CAP path, but I haven't yet tracked down where it ends up. I think
ideally it would end up somewhere that Ofono would be able to obtain
it.
Thanks,
Mike
8 years, 10 months
Polling CLCC error handling on Option modem (GTA04)
by Radek Polak
Hi,
first of all QtMoko [1] now supports ofono as another telephony backend [2]. We
have also autogenerated qt bindings [3] which can be interesting also for
other projects.
But now the problem that has already been discussed. If you make call to GTA04
with ofono running, it starts CLCC polling. After you hangup sometimes
everything is ok and the call disappears:
fonod[1027]: App: < \r\n+CLCC: 1,1,4,0,0,"+420608828973",145\r\n\r\nOK\r\n
ofonod[1027]: App: > AT+CLCC\r
ofonod[1027]: App: < \r\nOK\r\n
ofonod[1027]: src/voicecall.c:ofono_voicecall_disconnected() Got disconnection
event for id: 1, reason: 2
ofonod[1027]: App: < \r\n_OSIGQ: 18,0\r\n
ofonod[1027]: src/network.c:ofono_netreg_strength_notify() strength 58
ofonod[1027]: App: > AT+CLCC\r
ofonod[1027]: App: < \r\nOK\r\n
but sometimes the modem returns error:
ofonod[1027]: App: < \r\n+CLCC: 1,1,4,0,0,"+420608828973",145\r\n\r\nOK\r\n
ofonod[1027]: App: > AT+CLCC\r
ofonod[1027]: App: < \r\n+CME ERROR: 100\r\n
ofonod[1027]: We are polling CLCC and received an error
ofonod[1027]: All bets are off for call management
and ofono never reports that the call is removed. The result is that GUI shows
dialed call forever.
I know that modem should not return error, but it would be nice to have at
least some workaround. E.g. assume remote hangup or missed call.
Or anyone has better ideas?
Regards
Radek
[1] http://qtmoko.org
[2]
https://github.com/radekp/qtmoko/tree/master/src/server/phone/telephony/p...
[3] https://github.com/radekp/qtmoko/tree/master/src/libraries/qofono
8 years, 10 months