개인용 디바이스의 보급률이 늘어나면서 디바이스를 사용한 다양한 서비스들이 등장하였다. VoIP 서비스는 디바이스를 이용해 사용자간 통화를 할 수 있게 해주며 서비스를 위해 패킷 데이터 망을 기존의 전화망처럼 사용하여야 한다. 패킷 데이터 망을 서킷 망처럼 사용하기 위해 VoIP 에서는 디바이스 사이의 통신에 SIP 프로토콜을 사용 한다.
현재 패킷 데이터 망을 이용하는 각종 디바이스들이 많아지면서 IP주소가 부족하게 되어 IPv6와 NAT기술이 등장하였다. NAT 기술은 이런 주소 부족 문제의 단기적인 해결법이고 IPv6 는 장기적인 해결 방법이다. 현재는 IPv6가 활성화 되어 있지 않고 NAT를 주로 사용하고 있다. NAT는 하나의 공인 주소에 여러 사설 주소를 설정하여 주소 부족을 해결한다. 주소의 변환을 위해서 NAT는 패킷 헤더의 IP 주소를 변환하는 동작을 한다. 이러한 동작은 SIP를 이용한 VoIP 서비스에서 NAT Traversal을 일으키게 된다.
NAT Traversal은 NAT가 패킷 헤더의 IP주소만을 변경하기 때문에 SIP처럼 어플리케이션 헤더의 IP주소를 참고하는 프로토콜에서 목적지를 찾아가지 못하는 경우를 해결하는 기술을 말한다. 이러한 문제를 해결하기 위한 기술에는 STUN, TURN, ICE등이 있고 이 기술들의 장단점을 살펴보고 NAT Traversal을 해결할 수 있는 기술인 ICE를 오픈 소스인 Linphone을 사용하여 적용 시켜 보고 Linphone의 중복된 프로세스를 최소화 하여 통화 대기 시간을 줄였다.