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
- 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.