-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3699/#review12463
-----------------------------------------------------------



/team/group/rls/res/res_pjsip_pubsub.c
<https://reviewboard.asterisk.org/r/3699/#comment22731>

    Thinking about the error conditions here:
    * If the new_subscribe handler returned the SIP response code as an error, 
that could be returned from this function.
    * The recursive calls to this function would return the result if non-zero
    * That _may_ then allow build_resource_tree to return a more specific error 
condition if something goes wrong when building out the tree



/team/group/rls/res/res_pjsip_pubsub.c
<https://reviewboard.asterisk.org/r/3699/#comment22730>

    If a new_subscribe handler fails, should something be done to reject the 
entire tree?



/team/group/rls/res/res_pjsip_pubsub.c
<https://reviewboard.asterisk.org/r/3699/#comment22733>

    I'd put some debug messages into the construction of the tree, such that 
someone looking at a debug log has an indication what the tree of resources 
looks like for a particular subscribe request. This would also apply to 
build_node_children



/team/group/rls/res/res_pjsip_pubsub.c
<https://reviewboard.asterisk.org/r/3699/#comment22732>

    A debug message saying we are removing a subscription may be warranted


- Matt Jordan


On July 1, 2014, 6:21 p.m., Mark Michelson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3699/
> -----------------------------------------------------------
> 
> (Updated July 1, 2014, 6:21 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-23868
>     https://issues.asterisk.org/jira/browse/ASTERISK-23868
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> This modifies res_pjsip_pubsub to be able to handle inbound SUBSCRIBE 
> requests that set up resource list subscriptions. The main gist of this is 
> creating the tree of ast_sip_subscription structures that will represent the 
> resource list. The changes can be broken into the following categories:
> 
> * Code that gets rid of assumptions that all subscriptions are real 
> subscriptions. Now, code should work equally well with real and virtual 
> subscriptions.
> * Code that has been moved within the file. These are functions that 
> previously were used by only a single caller but now are used by multiple 
> callers. Therefore, the functions have been moved closer to the top of the 
> file so that they may be referenced throughout.
> * Code that builds a resource tree. A resource tree is essentially the front 
> line of handling a resource list SUBSCRIBE. When the SUBSCRIBE is handled the 
> requested resource is looked up, and a tree is built based on the resources 
> in the list. The tree is built by asking subscription handlers if the 
> individual resources in the tree can be subscribed to. Those that can be 
> subscribed to are added to the tree. In addition, as the tree is being built, 
> duplicated resource names and looped lists are eliminated.
> * Code that builds a subscription tree. Once a resource tree is built, it is 
> used to create a tree of ast_sip_subscriptions. It is this tree of 
> subscriptions that will be used throughout the life of the SUBSCRIBE dialog 
> to build notification bodies.
> * XXX comments indicating recognized problem spots that are to be addressed 
> in created ASTERISK issues.
> * Unit tests that check the resource tree algorithms.
> 
> For the most part, I'm satisfied with this change set. The only thing I don't 
> really like is that when subscribing to a resource list, the responses that 
> Asterisk currently can send are either a 200 or 500. I could not think of an 
> elegant way to give more specific responses (e.g. 482 when subscribing to a 
> list that resulted in a loop).
> 
> 
> Diffs
> -----
> 
>   /team/group/rls/res/res_pjsip_pubsub.c 417733 
> 
> Diff: https://reviewboard.asterisk.org/r/3699/diff/
> 
> 
> Testing
> -------
> 
> Given that NOTIFY handling and an rlmi+xml body generator have not yet been 
> written, I can't test this with testsuite tests yet. The best that I could do 
> was to create unit tests for the resource tree algorithms. The tests verify 
> that the resource trees are being built as expected, and they verify that 
> off-nominal test cases (duplicated resources, loops, lists of bad resources) 
> behave as expected. This lends some confidence to the idea that the front 
> line is working, at least.
> 
> 
> Thanks,
> 
> Mark Michelson
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to