First of all if you are opening ports manually to your Xbox do not use a DMZ so undo this first, turn off UPnP and all firewall features on the router. Do not turn off NAT.
http://portforward.com/
Follow the instructions from the link above and be sure to set up static ip to the Xbox. It may be worth checking the DHCP list of the router first to get the Mac and IP address of the XBone.
1. In Brown writing near the top of the page pick the one that applies (How to port forward the Xbox one) your console.
2. Then pick your router from the list, Supper hub one and two are made by Netgear. Then scroll down and pick Virgin_Media_Super_Hub_2 from the list.
3. Follow the instructions on how to set static IP and what ports need to be opened for your make of router.
4. Power down the router and Xbox for a minute and then do a multi player network test in settings on XBone. (Nat Open?)
I did read that for call of duty ghosts you may also need port 3075 to be forwarded. This may well be linked only to people that also have a 360 on their network?
Also I have had a problem with XBone mic not working due to the way the kinect associates which profile to who is holding the controller. So you can try turning off Kinect, or before loading your game select settings then kinect. Here you can see yourself with your profile name above your head.
Do you see a controller next to your profile name? If not make sure kinect can see the lights on the front of the controller and press a button. Now you should see a little controller by your name.
I have been drinking so am struggling, I will check back tomorrow.