• V20: 3CX Re-engineered. Get V20 for increased security, better call management, a new admin console and Windows softphone. Learn More.

Standard Android call running (no 3CX) + 3CX call incoming => incoming call gets kicked out of the l

Status
Not open for further replies.

mamo

Forum User
Joined
Aug 22, 2016
Messages
39
Reaction score
2
Hi,
I have noticed a very strange and annoying Problem on the Android app.

The problem occurs reproduceable when I am in a call on my smartphone (just plain standard Android call via my mobile carrier, no 3CX, no other SIP or whatsoever). If now someone calls me at my landline number, firstly the softphone on my Windows PC starts ringing. A second later push reaches my Android phone. I hear an unpleasant beep and at the same time the person who is calling me gets kicked out of the line with the error message "the person you are calling is not available presently".

Easiest way to reproduce the issue is to just call yourself via your smartphone (use mobile carrier and dial SIP number that gets routed to the same smartphone via 3CX). It will ring once, beep once and play the error message thereafter.

My phone is an LG G5 with all available updates (currently running Android 6.0.1).
3CX and the Android app are also up to date (just newly installed the whole system last week and now running some tests the uncovered the problem I am describing here).
 
This is a missed opportunity in the android client.

The 3CX client running on a smartphone with an active phone call over the default mobile carrier should by indicated in the 3CX as busy! It is not logic to transfer a call to a device that is occupied.
 
LVQ said:
The 3CX client running on a smartphone with an active phone call over the default mobile carrier should by indicated in the 3CX as busy! It is not logic to transfer a call to a device that is occupied.
So how do you suggest to make the PBX aware that a particular device is in a GSM (mobile carrier) call? And how you would handle SIP forked ID?
 
Vali_3CX said:
So how do you suggest to make the PBX aware that a particular device is in a GSM (mobile carrier) call?
Logically there seem to be only two possible ways:


  1. As soon as a GSM call starts, the app sends a status message to the PBX system, indicating that the extension is busy. Afterwards it repeats this message every few minutes (timeout as a fail save in case the battery dies or something similar) and finally it sends another status message as soon as the GSM call is ended.
    --OR--
  2. The app just continues to wait for a push signal from PBX, and in case one arrives while in a GSM call, it replies: "I am busy".

If you want to treat a smartphone as a fully qualified phone that is equal to other phones, then solution number one seems by far to be the best choice. The most apparent advantage being that you can fully support BLF status indicators on other phones. Also for better handling of other problems like the one with forked IDs, you mentioned, this might be desirable (see below).

But if there are technical issues causing problems with this approach, solution two might also be just fine.

Vali_3CX said:
And how you would handle SIP forked ID?
Again, to me, there seem to be only two sensible possibilities:

  • Handle the ID as busy and act according to the forwarding rules set for this ID and current status.
    --OR--
  • Ring all other phones that are associated with this ID, regardless.

For this, I would suggest to just stick to the already existing setting "Accept multiple calls". If this option is not ticked you would end up with A. If it is ticked, the result will be option B.

Might also depend on what you choose above. Combination 2A might be problematic, as it probably takes too long to wait for an answer from the smartphone in order to be able to decide if other phones should ring or not.


-------------------------------------

Although the details laid out above are important to consider, it is slightly besides the point of my initial problem.
The best way to describe the current behavior is probably to just add another point to the list above:

....C. Drop incoming calls and disregard all other settings

Obviously this is not acceptable. Incoming calls should always be forwarded somewhere (worst case: to the mailbox) or ring somewhere (worst case: on a desk that is not occupied).
The decision, which one of the 4 solutions presented above (1A, 1B, 2A or 2B) will be implemented is ultimately up to the 3CX developers. But clearly one of these should be implemented and working properly. The current behavior is something, I would clearly count as a bug.
 
mamo said:
As soon as a GSM call starts, the app sends a status message to the PBX system, indicating that the extension is busy. [...]
So, bottom line, your proposal is to have the 3CXPhone app running continuously, 24/7, in order to detect when device has a GSM call initiated?
 
Vali_3CX said:
So, bottom line, your proposal is to have the 3CXPhone app runing continuously, 24/7, in order to detect when device has a GSM call?
Isn't the currently the case anyway?
Of course it does not keep a permanent internet connection and relies on push instead, which is a very good thing. But on the phone itself it usually stays open as far as I can tell. At least that is how I interpret the notification, I currently see 24/7 on my lock screen...

Also: While on standby it seems logical to avoid any unnecessary activity in order to save as much battery as possible. But if I am already in an active GSM call... it probably won't make any noticeable difference to wake up the app at the same time as the rest of the phone and transmit some status messages.
 
OK, to end this discussion...

FYI, we had this feature implemented in the iOS client for about six months, and it proved unreliable, so we dropped it. When I say "unreliable" I mean there were always particular cases when app was unable to perform well, confusing users. And when your app tends to become a collection of solve-this-particular-possible-issue, better drop it. Example:
Customer: why my extension does appear on the PBX as DoNotDisturb "in a GSM call" since I'm not in any GSM call?
Reason: he lost WiFi mid-call.
 
Well, in this case...
mamo said:
But if there are technical issues causing problems with this approach, solution two might also be just fine.
But nice to know that you already did test this. :)

For me, the real bottom line is that I just do not want to loose incoming calls. Calls being dropped with a error message from the provider ("the person you are calling is not available presently") instead ringing elsewhere or being forwarded to voice mailbox is probably the worst possible thing that could happen.
 
Because 3CX is relying on Google Push for notification rather than wasting battery by running in the background, there is no two way communication initially, to let the PBX know that the caller in engaged. A simple solution would be, if the phone was already on a call when the push notification came in, the 3CX App would simply fail to start. The call would go off to voicemail as if the caller didn't answer. Some missed call icon might be placed in the task bar.
 
To me, the post immediately above is the best answer...

To repeat the answer, "A simple solution would be, if the phone was already on a call when the push notification came in, the 3CX App would simply fail to start. The call would go off to voicemail as if the caller didn't answer. Some missed call icon might be placed in the task bar."

The question is, is it possible?

This is a big problem for many, and becoming a bigger problem with the increased popularity of the 3CX Client.
 
Status
Not open for further replies.

Getting Started - Admin

Latest Posts

Forum statistics

Threads
141,619
Messages
748,854
Members
144,731
Latest member
jaayb512
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.