cannot receive incoming call for iPhone users

Status
Not open for further replies.

Kwang Mien

Silver Partner
Advanced Certified
Joined
May 14, 2020
Messages
255
Reaction score
17
Hi ,

We are using 3cx version 20. Currently, when call to our iPhone users , their 3cx did not ring.

The error is "Failed to send APNS PUSH to device iPhone14,3iPhone(Ext.703)"

We have tried to restart the 3cx Database Server service and also tried rebooting the 3cx server.
However, it did not resolve the issue.

Can anyone advise on how to resolve the incoming call issue to iPhone users ?

Thanks

Regards
Kwang Mien
 
Hi ,

We are using 3cx version 20. Currently, when call to our iPhone users , their 3cx did not ring.

The error is "Failed to send APNS PUSH to device iPhone14,3iPhone(Ext.703)"

We have tried to restart the 3cx Database Server service and also tried rebooting the 3cx server.
However, it did not resolve the issue.

Can anyone advise on how to resolve the incoming call issue to iPhone users ?

Thanks

Regards
Kwang Mien

Do you perform outgoing traffic control on the 3CX PBX?

Do you block the PBX from reaching certain destinations?
 
Do you perform outgoing traffic control on the 3CX PBX?

Do you block the PBX from reaching certain destinations?
Hi Guillaume

It was found that our 3cx is having IPv4 and IPv6 addresses. During the Push notifications, there was some communications to IPv6 address. However, our Network do not route IPv6.

Do you have any idea if I were to disable the IPv6 interface in 3cx server, will this resolve the issue ?

Regards,
Kwang Mien

 
Yes, it’s possible that this could be the cause of the problem. I’ve often encountered similar issues with IPv6 when the network doesn’t fully support it (and doesn’t support NAT64).

Before making any changes, I recommend taking a full backup of your system (or a snapshot if possible). While this works fine for us, I wouldn’t want you to be upset with me if it doesn’t give the same result.

On Linux, to disable IPv6, use this command:

Bash:
clear && ip -6 addr show | grep inet6 >/dev/null && echo "" && echo "Currently active IPv6 addresses before modification:" && echo "" && ip -6 addr show | grep inet6 && echo "" && (echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf > /dev/null && sudo sysctl -p > /dev/null && echo "IPv6 now disabled." && echo "" && ip -6 addr show | grep inet6 || echo "No IPv6 addresses found after modification." && echo "") || echo "No IPv6 addresses found before modification, skipping disable." && echo ""




Here’s a detailed breakdown of what each part of the previous commands line does:

1.
Code:
clear
- Clears the terminal to ensure a clean start.

2.
Code:
ip -6 addr show | grep inet6 >/dev/null
- Checks for active IPv6 addresses silently.

3.
Code:
echo ""
- Adds a blank line for spacing.

4.
Code:
echo "Currently active IPv6 addresses before modification:"
- Informs the user about the output context.

5.
Code:
ip -6 addr show | grep inet6
- Displays the active IPv6 addresses.

6.
Code:
echo ""
- Inserts a blank line after the IPv6 addresses.

7. Command Block:
- Executes if IPv6 addresses are found:
- Adds disable rule to sysctl.conf and reloads config
- Displays "IPv6 now disabled."
- Checks again for IPv6 addresses and reports if none are found

8. No IPv6 check:
- If no IPv6 addresses are found initially:
Code:
echo "No IPv6 addresses found before modification, skipping disable."

9. Final blank line:
- Adds a blank line for a clean conclusion.







When done, reboot your system
 
Last edited:
Yes, it’s possible that this could be the cause of the problem. I’ve often encountered similar issues with IPv6 when the network doesn’t fully support it (and doesn’t support NAT64).

Before making any changes, I recommend taking a full backup of your system (or a snapshot if possible). While this works fine for us, I wouldn’t want you to be upset with me if it doesn’t give the same result.

On Linux, to disable IPv6, use this command:

Bash:
clear && ip -6 addr show | grep inet6 >/dev/null && echo "" && echo "Currently active IPv6 addresses before modification:" && echo "" && ip -6 addr show | grep inet6 && echo "" && (echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf > /dev/null && sudo sysctl -p > /dev/null && echo "IPv6 now disabled." && echo "" && ip -6 addr show | grep inet6 || echo "No IPv6 addresses found after modification." && echo "") || echo "No IPv6 addresses found before modification, skipping disable." && echo ""




Here’s a detailed breakdown of what each part of the previous commands line does:

1.
Code:
clear
- Clears the terminal to ensure a clean start.

2.
Code:
ip -6 addr show | grep inet6 >/dev/null
- Checks for active IPv6 addresses silently.

3.
Code:
echo ""
- Adds a blank line for spacing.

4.
Code:
echo "Currently active IPv6 addresses before modification:"
- Informs the user about the output context.

5.
Code:
ip -6 addr show | grep inet6
- Displays the active IPv6 addresses.

6.
Code:
echo ""
- Inserts a blank line after the IPv6 addresses.

7. Command Block:
- Executes if IPv6 addresses are found:
- Adds disable rule to sysctl.conf and reloads config
- Displays "IPv6 now disabled."
- Checks again for IPv6 addresses and reports if none are found

8. No IPv6 check:
- If no IPv6 addresses are found initially:
Code:
echo "No IPv6 addresses found before modification, skipping disable."

9. Final blank line:
- Adds a blank line for a clean conclusion.







When done, reboot your system
Hi Guillaume

Thanks for the advice and the command to disable IPv6

Can the below steps work as well for disabling IPv6 in Debian ?

1726563404039.png
 
That’s exactly what I use, except that I first verify whether IPv6 addresses are actually in use (that they haven’t already been disabled). After that, I proceed, and then I recheck to ensure the task was completed

Bash:
clear && ip -6 addr show | grep inet6 >/dev/null && echo "" && echo "Currently active IPv6 addresses before modification:" && echo "" && ip -6 addr show | grep inet6 && echo "" && (echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf > /dev/null && sudo sysctl -p > /dev/null && echo "IPv6 now disabled." && echo "" && ip -6 addr show | grep inet6 || echo "No IPv6 addresses found after modification." && echo "") || echo "No IPv6 addresses found before modification, skipping disable." && echo ""
 
That’s exactly what I use, except that I first verify whether IPv6 addresses are actually in use (that they haven’t already been disabled). After that, I proceed, and then I recheck to ensure the task was completed

Bash:
clear && ip -6 addr show | grep inet6 >/dev/null && echo "" && echo "Currently active IPv6 addresses before modification:" && echo "" && ip -6 addr show | grep inet6 && echo "" && (echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf > /dev/null && sudo sysctl -p > /dev/null && echo "IPv6 now disabled." && echo "" && ip -6 addr show | grep inet6 || echo "No IPv6 addresses found after modification." && echo "") || echo "No IPv6 addresses found before modification, skipping disable." && echo ""
Thanks for the advice.
 
Status
Not open for further replies.

Forum statistics

Threads
111,954
Messages
589,921
Members
164,851
Latest member
DrunkeMeister