[asterisk-bugs] [Asterisk 0010354]: [patch] Add Basic Support For RFC 4662 (Subscribe to lists)

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Jul 10 11:14:39 CDT 2009


The following issue has been CLOSED 
====================================================================== 
https://issues.asterisk.org/view.php?id=10354 
====================================================================== 
Reported By:                irroot
Assigned To:                dvossel
====================================================================== 
Project:                    Asterisk
Issue ID:                   10354
Category:                   Channels/chan_sip/NewFeature
Reproducibility:            N/A
Severity:                   feature
Priority:                   normal
Status:                     closed
Asterisk Version:           SVN 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!):  
Request Review:              
Resolution:                 open
Fixed in Version:           
====================================================================== 
Date Submitted:             2007-08-01 07:56 CDT
Last Modified:              2009-07-10 11:14 CDT
====================================================================== 
Summary:                    [patch] Add Basic Support For RFC 4662 (Subscribe to
lists)
Description: 
Preamble to 4662

---
   This document presents an extension to the Session Initiation
   Protocol (SIP)-Specific Event Notification mechanism for subscribing
   to a homogeneous list of resources.  Instead of sending a SUBSCRIBE
   for each resource individually, the subscriber can subscribe to an
   entire list and then receive notifications when the state of any of
   the resources in the list changes.
---

the polycom 601 BLF uses this extension to populate and manage its BLF i
cant see why not to support it in asterisk ??

please see the packet trace (supplied by polycom thx this is invaluable
...) a comparison (summary of progress so far) and a patch against 1.4.9
(obviously this is for 1.6 ...) 
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0004903 [patch] SIP over TCP project
====================================================================== 

---------------------------------------------------------------------- 
 (0107576) dvossel (administrator) - 2009-07-10 11:14
 https://issues.asterisk.org/view.php?id=10354#c107576 
---------------------------------------------------------------------- 
Unfortunately this is not a feature we are going to implement at the
moment.  If anyone is interested in developing it, your contribution is
welcome.  Just make sure it is developed in trunk so it can be committed
into the project.

I've spent sometime with this issue and have a few guidelines to help
anyone interested in developing this.

Resource lists should be configurable in sip.conf as "type =
resourcelist"

------sip.conf example-----
[list1]           ; resourcelist identifier
type=resourcelist ; declaring type resourcelist
context=local ; context in which resource list can be subscribed
monitor=1001 ; extensions/hints to monitor within list
monitor=1002
monitor=1003

--------How to represent an rlist in the code------- 
Resourcelists should be built just like peers using astobj2 and an
ao2_container to store them.  Each rlist should have an internal list of
watchers, which are people who subscribe to them to get updates, as well as
a list of resources to monitor.

struct sip_rlist_resource {
	int stateid;
	int laststate;

	AST_DECLARE_STRING_FIELDS(
		AST_STRING_FIELD(exten);       /*!< This is an extension to watch within
rlist */
		AST_STRING_FIELD(contentid);   /*!< Dialog Content ID */
	);

	AST_LIST_ENTRY(sip_rlist_resource) entry;
};

/* todohere add brief */
struct sip_rlist {
	char name[80];		/*!< This is the extension to subscribe too for list */
	AST_DECLARE_STRING_FIELDS (
		AST_STRING_FIELD(context);
		AST_STRING_FIELD(contentid);  /*!< Dialog Content ID */
	);
	int the_mark;
	int num_watchers;
	int startmonitor;
	AST_LIST_HEAD_NOLOCK(, sip_pvt) watchers;
	AST_LIST_HEAD_NOLOCK(, sip_rlist_resource) resources;
};

If anyone has any questions about this feel free to contact me by email
[dvossel at digium dot com] or in #asterisk-dev where my name is
The_Boy_Wonder. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-07-10 11:14 dvossel        Note Added: 0107576                          
2009-07-10 11:14 dvossel        Status                   assigned => closed  
======================================================================




More information about the asterisk-bugs mailing list