How to Develop a SIP Profile Agent Plug-in using the SIP Profile Agent API

A SIP Profile Agent plug-in is an ECOM plug-in that is used by the SIP Profile server to register the corresponding SIP profiles. For example, if the SIP Profile type is IETF, the profile server uses the IETF plug-in to register the profile.

In the following illustration, the SIP Profile Agent plug-in implements interfaces, uses APIs, and inherits a class.

The following steps describe how to develop a SIP Profile Agent plug-in.

  1. Derive a profile agent plug-in class from CSIPProfileAgent, which provides an ECOM interface for SIP Profile Agent plug-ins.

  2. Implement the following interfaces in the plug-in class:

  3. Derive and implement the following classes in the profile context and connection context classes:

    • Implement the MSIPProfileContext interface in the profile context class to get and set the information about the profile when it is in a particular state.

    • Implement the MSIPConnectionObserver interface in the connection context class to receive requests, responses, connection state notifications, and error notifications from the SIP stack.

    • Implement the MSIPProxyResolverObserver interface to receive notifications about the state of the asynchronous request to resolve proxy.

    • Derive the profile context and the connection context classes from CBase to create the objects on the heap.

  4. Create instances of the CSIP and CSIPConnection classes, and monitor the states of CSIPConnection object.

    Note: SIP Profile registration is performed when the state of CSIPConnection object is CSIPConnection::EActive.

  5. Create instances of the CSIPRegistrationBinding class to perform SIP profile registrations.

  6. Implement the SIP profile registration state machine. The state machine responds to the state changes to CSIPConnection instances and SIP profile registrations.

The following illustration shows the relationship between the SIP Profile Agent plug-in and other components used by it.

Figure 1. SIP Profile Agent plug-in relationship diagram