Currently, as a test I setup a trunk(with an incoming and outbound rule directing to my extension only) as a test in this way in 3cx under the trunk configuration;
For server/host/registrar : I'm using the AT&T Border element that responds(12.194.107.69)
no proxy address entered.
I have the first of our 10 DIDs added
In Options I've selected to "Use this IP Address" and then entered the AT&T "Signaling Address" this way the outbound call sends what AT&T expects to see.
Last night I had a thought and did some Wireshark captures while making some calls out and comparing to inbound, to me it really seemed like our firewall was not routing something properly as a failed call was generating an error(then emailing me) of this:
@JustinTaylor
So I looked on the 3cx server at it's routes("CMD" > "route print"), 0.0.0.0 is the default route(nothing special pointing to the Default Gateway.
In the past I've had to configure static routes to route traffic for 3cx for some implementations, I didn't think I would need to in this one, but it's starting to make me feel like I might.
In this implementation we are using the same AT&T router as you. For us we had AT&T split the Data service and the SIP traffic to separate interfaces as I initially thought it would make sense to physically route the cable directly to a server(passing through a vSwitch to the VM of course). That would end up with no firewall(aside from windows) on a "public interface" of the server, maybe that's ok since AT&T is the only host directly connected. We would at that point need to use a "second interface" on the VM to access the phone VLAN. All of that seemed contrary to the recommendation of 3CX in suing a single network adapter.
So what I ended up doing was
- Setup the VM with 1x interface to make it "simple" for 3CX, placing it in our Voice VLAN.
- On our router(company, not AT&T) I used our 2nd WAN interface to connect to the SIP port of the AT&T router(ASR-1001X).
- I set the IP of the WAN2 interface to what AT&T provided as the SIGNALING ADDRESS and the Default Gateway to the MEDIA ADDRESS. I am able to ping the AT&T ASR1001X from our company router so all seems good there. I can also ping one of the Border Elements(not the other)
- I then set a flow preference(Cisco-Meraki) that;
- any traffic originating from;
- the Voice-VLAN
- or 3CX server IP
- that is destined for;
- The WAN2 Gateway IP(ATT LAN/MEDIA ADDRESS)
- the Border Element(SBC[Session Border Controller], SIP Proxy 1)
- the Border Element(SBC[Session Border Controller], SIP Proxy 2)
- direct it through the WAN2 interface
- So with the above config I can ping from the 3CX server to
- the WAN2(our router)
- the LAN(ASR-1001X)
- One of the Border Elements
- not the other border elements
- Tracert shows correct routing as well
- this all makes me believe the routing it proper
Inbound calls work(flawless afaik after repeated testing). However Outbound calls only work if an inbound call was made "recently." I have not figured out what this is, but I've attempted to adjust the "ReRegister Timeout" selection in Options from the default value of 600 to as low as 30 with mixed results. At one point I could make calls 3 minutes after first making an inbound call, but then I went 1 minute and was unable to make calls. I've asked AT&T this morning for what they expect REGISTER to be sent at, awaiting that response. I also do not know if they support "REINVITES" or if it's a relevant setting.