Patent ID: 8477761

Claim:
A method, comprising: interfacing, via an application interface residing in a session initiation protocol (SIP) user agent, with an associated application and a session, wherein the step of interfacing comprises: interfacing the application with a third party SIP stack to enable call control functionality and network address translator (NAT) traversal functionality associated with the session via a configuration and control interface that resides in the SIP user agent, wherein the third party SIP stack is external to the SIP user agent and comprises multiple SIP stacks implemented by a plurality of external SIP stack vendors; and indicating SIP events that the application needs to be aware of to the application through a system of callbacks via an event notification interface that resides in the SIP user agent, wherein the SIP events are associated with the call control functionality and the NAT traversal functionality; managing, via the server interoperation module residing in the SIP user agent, registration and proxying services associated with the session using the third party SIP stack upon enabling the call control functionality and the NAT traversal functionality; tracking, via a call state/session manager residing in the SIP user agent, a call state and session properties across multiple calls associated with the session while managing the registration and proxying services associated with the session; managing, via a basic SIP services module coupled to the call state/session manager and residing in the SIP user agent, a basic set of SIP services associated with the application and the session using the third party SIP stack and the tracked call state and session properties, wherein the configuration and control interface translates and sends user commands to the call state/session manager, the server interoperation module, and the basic SIP services module; determining and advertising, via a media negotiator module coupled to the basic SIP services module and residing in the SIP user agent, media capabilities of devices associated with the session; and implementing, via an NAT traversal system module coupled to the basic SIP services module and the server interoperation module and residing in the SIP user agent, a method of an NAT device traversal transparent to a user and the application.