|
||
A SIP Profile Agent plug-in is an ECom plug-in that provides a SIP service provider specific registration behaviour. This ECom plug-in is used by the SIP Profile server to register corresponding SIP profiles. For example, if the SIP Profile type is IETF, the profile server uses the IETF plug-in to register the profile.
The following diagram shows the relationship between a SIP Profile Agent plug-in and other components used by it:
As per the diagram above, your SIP Profile Agent plug-in must implement a few interfaces, use a few APIs and inherit a class. The following the guidelines help you in developing a SIP Profile Agent plug-in:
Derive a profile agent plug-in class from
CSIPProfileAgent
, which provides an ECom interface for SIP
Profile Agent plug-ins.
You must implement the following interfaces in your plug-in class:
MSIPProfileAgentObserver
- To receive
notifications of profile registration, update and deregistration events, and
any errors reported while performing these tasks.
MSIPProfileFSMUser
- To receive profile
state change notifications.
MSIPObserver
- To receive SIP requests from
the SIP connections that were not initialised by you.
MSIPHttpDigestChallengeObserver2
- To
provide HTTP Digest authentication for SIP registrations by using an instance
of the CSIPHttpDigest
class.
Apart from implementing the above listed classes and the interfaces in your plug-in class, derive and implement the following classes in your profile context and connection context classes:
Implement the MSIPProfileContext
interface
in the profile context class to get and set information about the profile while
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 both the profile context and connection context classes
from CBase
to be able to create their objects on the heap.
Create instances of the classes, CSIP
and
CSIPConnection
and monitor the states of
CSIPConnection
object.
Note: SIP Profile registration can be performed only
when the state of CSIPConnection
object is
CSIPConnection::EActive
.
Create instance(s) of the class,
CSIPRegistrationBinding
to perform SIP profile
registrations using the instance(s).
Implement the SIP profile registration state machine. The state
machine reacts to the state changes to CSIPConnection
instances and SIP profile registrations.
For related information, see: