Difference between revisions of "DUM Overview"

From reSIProcate
Jump to navigation Jump to search
(Added link to DUMv2 planning page)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
The DialogUsageManager (or dum) is the main interface to the dum library used by the application. Any dum application needs to create a dum object. In typical applications there would be a single dum object for the entire application. This single dum object could manage multiple user agents. By default the construction of the dum object creates a SipStack. dum has the following roles and responsibilities:
+
The Dialog Usage Manager (also known as DUM) makes writing user agents easy by hiding complex SIP specifics. DUM provides user agent functionality (both UAC and UAS), including the handling of INVITE and SUBSCRIBE/NOTIFY dialogs, registration, and instant messaging. DUM is the main interface to the [http://www.estacado.net/resip/sip/resiprocate/dum/html/ dum library] used by your application. With DUM you can create applications like softphones, back-to-back user agents, and load generators.  
* Manages profiles
+
 
* Manages AppDialogSetFactory
+
DUM provides the following benefits:
* Manages and stores Handlers (DialogSetHandler, InviteSessionHandler, ClientRegistrationHandler, ServerRegistrationHandler, ClientSubscriptionHandler, ServerSubscriptionHandler, ClientPublicationHandler, ServerPublicationHandler, OutOfDialogHandler, ClientPagerMessageHandler, ServerPagerMessageHandler, RegistrationPersistenceManager)
+
* Manages refreshes for you:
 +
** Just set up registration binding and keep it active
 +
** Set up a subscription and keep it active. DUM will let you know when new updates come in via ** NOTIFY requests
 +
** Keep an INVITE session active
 +
** Handles forking for you
 +
** Merged requests
 +
** GRUU
 +
* Implements Offer/Answer (rfc 3264)
 +
* Manages profile information such as authorization
 +
* Manages AppDialogSetFactory, which enables DUM to create your derived AppDialogSet object instead of the default one. An AppDialogSet is equivalent to a call. It is created when a call starts.
 +
* Manages and stores Handlers, which are a way of referencing usages: DialogSetHandler, InviteSessionHandler, ClientRegistrationHandler, ServerRegistrationHandler, ClientSubscriptionHandler, ServerSubscriptionHandler, ClientPublicationHandler, ServerPublicationHandler, OutOfDialogHandler, ClientPagerMessageHandler, ServerPagerMessageHandler, RegistrationPersistenceManager
 
* Manages redirections (RedirectManager)
 
* Manages redirections (RedirectManager)
 
* Manages client authentication (ClientAuthManager)
 
* Manages client authentication (ClientAuthManager)
Line 10: Line 20:
 
* Provides interfaces to create new sessions as a UAC (invite, subscription, publication, registration, pager, others)
 
* Provides interfaces to create new sessions as a UAC (invite, subscription, publication, registration, pager, others)
 
* Provides interfaces to find particular usages based on a DialogId
 
* Provides interfaces to find particular usages based on a DialogId
 +
 +
A dum application creates a dum object, typically a single dum object for the entire application. This single dum object can manage multiple user agents. By default, the construction of the dum object creates a SipStack.
 +
  
 
== Working with the Dialog Usage Manager ==
 
== Working with the Dialog Usage Manager ==
Line 15: Line 28:
 
* [[DUM Internals|DUM Internals]]
 
* [[DUM Internals|DUM Internals]]
 
* [http://www.estacado.net/resip/sip/resiprocate/dum/html/ Doxygen Documentation] (Generated from head periodically)
 
* [http://www.estacado.net/resip/sip/resiprocate/dum/html/ Doxygen Documentation] (Generated from head periodically)
 +
 +
 +
== Planning Pages ==
 +
*[[DUMv2]] - Dumer

Latest revision as of 16:38, 18 April 2007

The Dialog Usage Manager (also known as DUM) makes writing user agents easy by hiding complex SIP specifics. DUM provides user agent functionality (both UAC and UAS), including the handling of INVITE and SUBSCRIBE/NOTIFY dialogs, registration, and instant messaging. DUM is the main interface to the dum library used by your application. With DUM you can create applications like softphones, back-to-back user agents, and load generators.

DUM provides the following benefits:

  • Manages refreshes for you:
    • Just set up registration binding and keep it active
    • Set up a subscription and keep it active. DUM will let you know when new updates come in via ** NOTIFY requests
    • Keep an INVITE session active
    • Handles forking for you
    • Merged requests
    • GRUU
  • Implements Offer/Answer (rfc 3264)
  • Manages profile information such as authorization
  • Manages AppDialogSetFactory, which enables DUM to create your derived AppDialogSet object instead of the default one. An AppDialogSet is equivalent to a call. It is created when a call starts.
  • Manages and stores Handlers, which are a way of referencing usages: DialogSetHandler, InviteSessionHandler, ClientRegistrationHandler, ServerRegistrationHandler, ClientSubscriptionHandler, ServerSubscriptionHandler, ClientPublicationHandler, ServerPublicationHandler, OutOfDialogHandler, ClientPagerMessageHandler, ServerPagerMessageHandler, RegistrationPersistenceManager
  • Manages redirections (RedirectManager)
  • Manages client authentication (ClientAuthManager)
  • Manages server authentication (ServerAuthManager)
  • Interface to add new Transports
  • Manages handles to Usages (HandleManager)
  • Provides interfaces to create new sessions as a UAC (invite, subscription, publication, registration, pager, others)
  • Provides interfaces to find particular usages based on a DialogId

A dum application creates a dum object, typically a single dum object for the entire application. This single dum object can manage multiple user agents. By default, the construction of the dum object creates a SipStack.


Working with the Dialog Usage Manager[edit]


Planning Pages[edit]