Solved Call Drops When Transferring To External Number

Status
Not open for further replies.

forrestdean

Premier Customer
Joined
Mar 28, 2019
Messages
26
Reaction score
3
Description:
Anytime anyone tries to transfer a call to an external number outside the network the call drops immediately. The call drops using either attended transfer or blind transfer. All calls transfer successfully to other extensions within the network. However, calls transferred to an external number do transfer successfully if I wait for the phone I am calling to answer before I push the "Transfer" button to complete the transfer. I have been using the 3CX phone system for 17 months now. This just started happening about a week ago. I have made no changes to our firewall, nor have I made any changes to the 3CX server.

Failed Test Scenario:
1) A call is made to Phone A.
2) Phone A answers the call.
3) Phone A pushes the "Transfer" button on the screen. (I also tried pushing the hard transfer button on the phone)
4) Phone A dials phone B, which is an external number. (I have tried both 7 digit and 10 digit numbers)
5) Phone A pushes the "Send" button on the screen.
6) Phone A pushes the "Transfer" button on the screen again before phone B answers the call to complete the transfer.
7) The call is dropped immediately.

Successful Test Scenario:
1) A call is made to Phone A.
2) Phone A answers the call.
3) Phone A pushes the "Transfer" button on the screen.
4) Phone A dials phone B, which is a 7 or 10 digit external number.
5) Phone A pushes the "Send" button on the screen.
6) Phone A waits for phone B to answer.
7) After phone B answers the phone, phone A pushes the "Transfer" button on the screen again to complete the transfer.
8) The call is not dropped and is transferred successfully.

Note: The "Successful Test Scenario" shown above is the only way to get a transfer to work. However, most users on our network prefer to push the "Transfer" button twice before the other person picks up the phone as most users prefer not to talk to the other person unless it is necessary. It's basically a blind transfer but most users prefer to do it this way. Either way, it has always worked before. Besides, the blind transfer doesn't work anyway, which also has always worked before.

Failed Blind Transfer Scenario:
1) A call is made to Phone A.
2) Phone A answers the call.
3) Phone A pushes the "Transfer" button on the screen.
4) Phone A dials phone B, which is a 7 or 10 digit external number.
5) Phone A pushes the "Blind Transfer" button on the screen.
6) The call is dropped immediately.

Also, I am using two different SIP trunk providers. The other SIP trunk we have set up on our 3CX server works just fine with transferring calls. All calls transfer successfully using all the scenarios listed above on the other SIP trunk.

When I check the event log immediately after making a failed transfer, I get the following message:

Call or Registration to 9999999999@(Ln.10001@SIPTRUNK) has failed. 99.999.999.9 replied: 403 Forbidden; from IP:99.999.999.9:5060
SIP Server ID: 12294 06/23/2021 1:22:23 PM

I have extensively searched through Google and the 3CX forums for help with this problem and at least 99% of all the search results say to make sure that "Supports Re-Invite" and "Support Replaces" are unchecked in the SIP trunk "Options" tab. Unfortunately, they were already unchecked from the very beginning, so this was not a solution for me. Just out of curiosity, I checked or enabled the two options just to see what would happen and it still did not work, so I went back and unchecked or disabled the two options. Also, the "Support Re-Invites" and "Support 'Replaces' header" are both checked or enabled on all phone extensions in the "Options" tab.

One thing I noticed different about the two SIP trunks we have set up on our 3CX system is that when dialing an outside line from a phone using the SIP trunk with the failed transfers, the number on the caller ID has a +1 in front of the 10 digit number. When dialing an outside line from a phone using the SIP trunk with the successful transfers, the number only has a 1 in from of the 10 digit number. The + does not show up on the caller ID. So, I figured maybe this + has something to do with it. I tried everything I could to strip this plus from the caller ID by adding a "Source Pattern" in the SIP trunk settings "Caller ID". I tried countless combinations of settings as explained here. Nothing I tried would strip the + from the caller ID. After further researching, I learned that this + is probably controlled by our SIP trunk provider. I contacted them about it but they have not made any changes yet as they want me to try other things first including submitting this help with support and the 3CX forums which I'm doing now. I'm not sure if stripping the + from the caller ID would even fix the problem. But since I have no way of testing that right now, I don't know for sure.

I have also done tons of packet capturing while making these failed transfers using both Wireshark and Colasoft Capsa, but I could find no irregularities anywhere within the packet capture logs.

Our Current 3CX Setup:
All phones are Yealink T48s
Yealink firmware is 66.85.0.5
3CX Server product is Enterprise Annual, version 16.0.9
Number of Simultaneous Calls is 24
Number of G729 Channels is 24

Any help would be greatly appreciated.
 
Call or Registration to 9999999999@(Ln.10001@SIPTRUNK) has failed. 99.999.999.9 replied: 403 Forbidden; from IP:99.999.999.9:5060
From the provided log entry it seems that the SIP Provider is rejecting the call with a "403 Forbidden" message so that means that the call is indeed being sent out successfully by the 3CX PBX.

Is this a 3CX Supported Provider? Could you provide all relevant information mentioned here that has not already been provided?

Also, from the description of the issue I take it that direct calls to an external number through that same SIP Trunk work. If this is the case, you might want to make such a call and check if the Caller ID sent out differs in that situation. If it does not, it probably has nothing to do with the issue. I'm not sure how you are currently checking the caller ID but ideally you should check it before it leaves the 3CX PBX by enabling verbose logging mode in Dashboard >> Activity Log >> Settings and then checking the activity log for that call. You could of course check a packet capture instead if you prefer.
 
  • Like
Reactions: leejor
  • Server OS, Windows Datacenter Server 2019
  • Is the 3CX Server Hosted and where? Yes. On site.
  • Provisioning Method: Local / VPN / STUN / SBC Local
  • Trunk Provider or Gateway Make/Model: TEC
  • Has the Firewall Checker passed: YES
  • Are custom Phone Templates being used: YES
The SIP trunk I'm using is not a 3CX supported provider. Yes, all direct calls to an external number through that same SIP trunk work great. I just checked to make sure and the caller ID is the same from the phone using either a direct call or transferring a call. They do not differ. I checked the activity log with verbose logging mode enabled and the caller ID looks correct. I even compared the activity log with the SIP trunk that does transfer successfully.

All I see when I look through the activity log is a ton of "Terminated", "Forbidden", and "Failed" messages coming from the SIP trunk provider's IP address.
 
Last edited:
If you are not able to determine why you are getting the Forbidden messages, you might want to involve your provider. they should be able to clarify.

Compare, in the Activity Logs, a direct dialled number, then a call transferred to the same number, that then fails with a Forbidden. What is different, in the INVITE, to the provider?.
 
Ok, I finally figured out the problem. Apparently there was a conflict in the Outbound Rules. Since I had two SIP trunk providers, I had two separate outbound rules one for each SIP provider because I was not able to combine them together because of other reasons. After troubleshooting and researching the issue with the Outbound Rules, I was finally able to combine both SIP trunks into one set of outbound rules. Once I was able to do this, the transfers starting working successfully on the SIP trunk with the failed transfers. However, I'm not sure why the transfers stopped working a week or so ago since I've had these outbound rules setup for many months now. The outbound rules for the SIP trunk with the successful transfers were at the top of the list with specific extensions in the "Calls from extension(s)" parameter. There were not that many extensions for this particular SIP trunk so I listed them individually. The outbound rules for the SIP trunk with the failed transfers were at the bottom of the list with all extensions in the "Calls from extension(s)" parameter and was specified as 0000-9999.

After looking through these outbound rules for each SIP trunk, I honestly don't know how the transfers ever worked to begin with. But in any case, it is now working, and the outbound rules are now set up properly.

Thank you very much for your assistance.
 
  • Like
Reactions: ChrisC_3CX
You're very welcome! Glad to see you were able to identify the cause of the issue and reach a resolution!

Please feel free to start a new thread should you require additional assistance or information.
 
Status
Not open for further replies.

Forum statistics

Threads
111,974
Messages
590,081
Members
164,899
Latest member
mazet