Toward general purpose SIP2 modules
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SIPServer |
New
|
Undecided
|
Unassigned |
Bug Description
Currently, the SIPServer repo represents two conceptual components: a SIP2 wire protocol parser/generator, and a server component supplying configuration and process management. Ideally, over time we'll split the wire protocol component out into a generalized package useful for any SIP2 purposes.
To that end, the below-identified WIP branch expands (and will further extend) the set of parser definitions to include response messages that a client program would expect to receive from a SIP2 server (including SIPServer).
Separately, the existing structure of the parser/generator API is callback driven, as suits a server. However, this makes writing a client program awkward. In order to bring the utility of the API for client-side use into line with the server, this branch also adds the ability to specify a per-message callback, instead of relying on an internal, hard-coded message handler. Over time, the message handlers defined in the Sip::MsgType module should probably migrate toward the server-specific code, and the server code can use an API to register its default handlers, allowing clean migration from the current monolithic structure to a more modular code layout.
description: | updated |
UPDATE: There now exists a rudimentary message type and handler registration API.