Cisco IP7940 Cause: 404 Not Found/INVITE from

Status
Not open for further replies.

kronos79

Free User
Joined
Jun 13, 2020
Messages
5
Reaction score
0
Hi,

I have an extension registered successfully on a Cisco 7940 IP phone running the correct firmware.

Previously, after setting up a SIP VoIP provider with Sipgate and registering this trunk/service on 3CX, I was able to call the associated landline number and the Cisco phone would ring. I am also able to make outbound calls from the 7940 with an Outbound Rule set for 11 digits only.

There are no Inbound caller ID transforms and the SIP Trunk is configured to deliver calls to my primary extension (Cisco 7940 phone).

The phone has been provisioned from my local TFTP server and cfg files, I am not using the PBX for provisioning.

Now, inbound calls are immediately dropped with the following error...

06/13/2020 4:24:28 PM - Call to T:Extn:1000@[Dev:sip:[email protected]:50480;transport=udp] from L:33.1[Extn:4000] failed, cause: Cause: 404 Not Found/INVITE from XXX.XXX.XXX.XXX:50480

Ext 1000 is the registered extension on the Cisco phone. The PBX is installed on a VM in Azure with a Static IP address and the handset is on my home network.

Interestingly, pointing the SIP trunk at an extension used in the 3CX app works fine. But I cannot call between exts as well, ext 1000 is Not Found on the app.

Have I missed something fundamental in the settings for this device? Any advice welcome!
 
Call to T:Extn:1000@[Dev:sip:[email protected]:50480
So the set is not local to the server? I don't recall those sets having the ability to use STUN. You say it was working, in the past. What changed, did you update something? Is the IP, you X'd out, the public IP of your router, or the local, private IP, of the set? Is the port (50480) the local port you assigned to the set? Have you set up any port forwarding on the local router? The 3CX App probably works, because (I assume) it is using the 3CX tunnel.
 
No, the set is on my home network behind a NAT router and the PBX is in Azure. The XXX IP address is the ISP assigned address to my broadband connection and is dynamic. (Changes every so often).

The 50480 seems to be a random port used by the Cisco handset when it connects to the PBX on 5060. As communication is initiated from inside my network, I believe I do not need specific Port Forwarding setup (this is handled by my router). All Port Forwarding has been done on the PBX side.

The handset has been completely factory reset and has reloaded its SIP config from scratch. I noticed the media port range for this handset is 16384 to 32766 (cannot be changed) which is different from the defaults on 3CX (9000-10999). There is no setting in the phone for STUN.

I can call between extensions if the Cisco handset is the caller but not if I try and call its extension.
 
So what changed between when it worked , and now? If the IP, is that of your router, and the port is that used by the set during registration, then, in theory, the set should be reachable by 3CX. If you place a call , from the set (which you have said works), does the port used match the one 3CX is using to contact the set, when it tries sending a call? It's been a while since I manually configured a 7940, but I looked up a printout of a configuration file I used, and the local port was defined under sip_control_port as 5060. Could your router be changing the port to 50480?
 
There is no port forwarding rule on my network for 5060 to this handset and I do not think the router is changing anything. If I set port forwarding rules I can only have a single handset, I am looking to add more eventually. Once 5060 is used I cannot use it for multiple handsets! Plus my network uses Dynamic IPs, I wouldn't set static IPs for IP phones.

When 3CX attempts to route a call to a remote location what does it need? Are there default ports it uses or does it try and use the port recorded during the handset register?

With regards to changes, the only things recently was an update to my 3CX version and the Cisco 7940 was power cycled.

EDIT*** Now I cannot make outbound calls, probably my playing around has tripped something. I will completely remove the SIP Trunk, extensions and rules and start again
 
You said that the 3CX App was working, if it still is, there there is no reason to change 3CX, or the trunk settings.

If I set port forwarding rules I can only have a single handset, I am looking to add more eventually. Once 5060 is used I cannot use it for multiple handsets! Plus my network uses Dynamic IPs, I wouldn't set static IPs for IP phones.
You can use multiple handsets (STUN), and usually you must use port forwarding, if you have more than a couple of handsets behind a router, and yes , each will require a unique local port. So the first one uses 5060, the next 5062, 5064, etc..

https://www.3cx.com/docs/firewall-checker-client/

https://www.3cx.com/docs/manual/configuring-ip-phones/#h.ul2fzupi6t22/ (see the NOTES at the end of this link)

I always assign static private IPs to local devices, as it make it much easier to make any later changes, and identify the device.

I have to assume that the 7940 does not respond to, or is not receiving an Invite, when it is sent to port 50480. If that port is not defined, as the local SIP port in the set, and that is the port your router is sending to, then the set will ignore.

https://www.3cx.com/community/threads/cisco-7940-connecting-remotely-to-3cx-server.12295/

https://www.3cx.com/sip-phones/cisco-7940g-7960g/ (note the limitations at the bottom)
 
Last edited:
In the cfg file for the handset I set nat_enable = 1 and voip_control_port = 5060. I have now setup a Port Forward for 5060 through my router and statically assigned an IP address to the handset.

I also rebooted the router to be doubly sure and now everything is working as before! The nat_enable flag formats the REGISTER request as below

Contact: sip:lineN_name@nat_address:voip_control_port

nat_address defaults to my public IP.

It seems the 50480 port was causing the issue as this wasn't explicitly opened on my firewall.

When I add additional handsets, I will simply assign different voip_control_port numbers as recommended.

I have checked External to Internal, Internal to Internal and Internal to External calls. All are working.

I believe this thread can be closed, thanks for your assistance
 
Glad to hear it worked out for you. You may want to consider using a more up-to-date set for future additions.
 
The 7940's were a batch buy from eBay! But yes, newer kit might not be a bad idea.
 
Status
Not open for further replies.

Forum statistics

Threads
111,953
Messages
589,911
Members
164,846
Latest member
Richard77