IAX2 protocol carries both signaling and media on the same port 4569 (by default). SIP signaling port is 5060 (by default), but media goes through other random ports. For IAX2 you only have to make sure port 4569 is clear then the phone calls can be guaranteed, but for SIP, besides port 5060 also other RTP ports need to be guaranteed too for stability of communication. Otherwise you'll encounter no audio or one-way voice problems, especially between different networks.
From the functionality perspective, IAX2 cannot support variety functions like SIP. SIP is the most widely used VoIP protocol so IP phone manufacturers are willing to develop call features based on SIP instead of IAX2.