I have a SonicWALL Pro 2040 with SonicOS standard, not Enhanced. (Wish I had enhanced because it gives you more control over NAT and PAT policies.)
My setup works great with CallCentric. (using 3CX v6.0.806 and 6.1.0)
Firewall Allow Rule (note on OS standard, the rules are much simpler):
From WAN interface to 3CX Server IP object.
Service: SIP (UDP port 5060)
Bandwidth Management enabled. (For my situation I have 1400 Kb/s guaranteed / priority 0)
VoIP settings: Enable Consistant NAT, Enable SIP Transformations
However, STUN server will always fail with error (10) warnings because the SonicWALL always translates Port Addresses for security reasons. It's OK, however, because SIP Transformations handles everything including setting up and tearing down RTP tunnels. That's why you don't need allow rules for RTP ports or for STUN server. STUN traffic gets through anyway because the requests originate from the inside the LAN.
For SonicOS enhanced, I would delete all services, access rules, adress objects, NAT policies that you created and start over using the Public Server Wizard.
Server Type: Other
Service: SIP
Server Name: 3CX-PBX (or whatever you call yours)
Private IP Address: LAN IP of the 3CX server
Public IP Address: External Static IP
The Wizard will create the following:
Server Address Objects
1. Create '3CX-PBX Private' assigned to LAN Zone for Host 192.168.41.48. (or LAN IP of your 3CX box)
2. Reuse 'WAN Primary IP' address object assigned to WAN Zone for 216.128.112.18. (or external static IP)
Server Service Group Object
1. Create '3CX-PBX Services' with SIP Service.
Server NAT Policies
1. Create Inbound Server NAT Policy to rewrite packets to original destination 'WAN Primary IP' to translated destination '3CX-PBX Private'.
2. Create Outbound Server NAT Policy to rewrite packets from '3CX-PBX Private' to translated source 'WAN Primary IP'.
3. Create Loopback NAT Policy to allow access from all internal zones to the server at public IP address 216.228.174.18.
Server Access Rules
1. WAN > LAN - Allow 'Any' to 'WAN Primary IP' for Service Group '3CX-PBX Services'.
Similar rules will be created from all lower security zones to the LAN zone.
After the access rule has been created, you can go in and enable bandwidth management, based uppon your ISP bandwidth and max number of simultanious calls you will allow.
You should be good to go using standard CallCentric template.