When you construct a SipSubscribeServer, you need to provide it with
certain subordinate objects that carry out some of its processing:
SipUserAgent, SipPublishContentMgr, SipSubscriptionMgr, and
SipSubscibeServerEventHandler.

For each event type that you want the Subscribe Server to process, you
have to call SipSubscribeServer::enableEventType.  Within that call, you
can provide alternative subordinate objects for use when processing the
specified event type.

This latter facility is used by no code in sipXecs.  In addition, it is
problematic to implement, because at various points in processing
subscriptions, it is difficult for the code to know the event type
involved, so it must search through all the enabled event types
attempting to find the object that handles the subscription in question.
There are also design problems, in that the
SipSubscribeServerEventHandler's getKeys() method extracts the "real"
event type from the Event header field in an incoming SUBSCRIBE (usually
by deleting irrelevant event parameters), but finding the correct
SipSubscribeServerEventHandler requires (in principle) determining the
"real" event type.

I am proposing to simplify this mess by deleting from
SipSubscribeServer::enableEventType() the ability to specify different
subordinate objects for different event types.  (And as I said, no code
uses this facility.)

Comments?

Dale


_______________________________________________
sipx-dev mailing list [email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev
sipXecs IP PBX -- http://www.sipfoundry.org/

Reply via email to