[svn-commits] mjordan: branch oej/oolong-path-support-trunk r381345 - in /team/oej/oolong-p...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Feb 13 06:30:53 CST 2013


Author: mjordan
Date: Wed Feb 13 06:29:08 2013
New Revision: 381345

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=381345
Log:
Resolve findings from review

This patch does the following:
* It adds the LDAP configuration information.

* It adds the 'path' column to the various realtime SQL files

* Minor cleanup in chan_sip

* Copies the Path header in successful responses to a REGISTER request
  that contain said header

* Adds 'path' to the Supported header on messages that would normally
  contain a Supported header

* Updates CHANGES/CREDITS noting the new feature


Modified:
    team/oej/oolong-path-support-trunk/CHANGES
    team/oej/oolong-path-support-trunk/CREDITS
    team/oej/oolong-path-support-trunk/channels/chan_sip.c
    team/oej/oolong-path-support-trunk/channels/sip/include/sip.h
    team/oej/oolong-path-support-trunk/configs/res_ldap.conf.sample
    team/oej/oolong-path-support-trunk/configs/sip.conf.sample
    team/oej/oolong-path-support-trunk/contrib/realtime/mysql/sippeers.sql
    team/oej/oolong-path-support-trunk/contrib/realtime/postgresql/realtime.sql
    team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldap-schema
    team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldif

Modified: team/oej/oolong-path-support-trunk/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/CHANGES?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/CHANGES (original)
+++ team/oej/oolong-path-support-trunk/CHANGES Wed Feb 13 06:29:08 2013
@@ -50,6 +50,13 @@
 
  * Added ECAM command support for Sony Ericsson phones.
 
+chan_sip
+------------------
+ * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
+   using the 'supportpath' setting, either on a global basis or on a peer basis.
+   This setting enables Asterisk to route outgoing out-of-dialog requests via a
+   set of proxies by using a pre-loaded route-set defined by the Path headers in
+   the REGISTER request. See Realtime updates for more configuration information.
 
 Features
 -------------------
@@ -86,6 +93,15 @@
    that the REDIRECTING dialplan function can be used to set the redirecting
    reason to any string. It also allows for custom strings to be read as the
    redirecting reason from SIP Diversion headers.
+
+Realtime
+------------------
+ * Dynamic realtime tables for SIP Users can now include a 'path' field. This
+   will store the path information for that peer when it registers. Realtime
+   tables can also use the 'supportpath' field to enable Path header support.
+
+ * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
+   objectIdentifier. This maps to the supportpath option in sip.conf. 
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 10 to Asterisk 11 --------------------

Modified: team/oej/oolong-path-support-trunk/CREDITS
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/CREDITS?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/CREDITS (original)
+++ team/oej/oolong-path-support-trunk/CREDITS Wed Feb 13 06:29:08 2013
@@ -22,7 +22,7 @@
 	* John Todd, TalkPlus, Inc.  and JR Richardson, Ntegrated Solutions. 
 		for funding the development of SIP Session Timers support.
 
-	* Omnitor AB, Gunnar Hellström, for funding work with videocaps, 
+	* Omnitor AB, Gunnar Hellstr�m, for funding work with videocaps, 
 		T.140 RED, originate with video/text and many more 
 		contributions.
 
@@ -54,7 +54,7 @@
 
 === HARDWARE DONORS === 
 
- We'd like to thank the followwing for granting access to hardware for testing.
+ We'd like to thank the following for granting access to hardware for testing.
 
 	* Thanks to QuickNet Technologies for their donation of an Internet
 		PhoneJack and Linejack card to the project.  
@@ -63,13 +63,12 @@
 	* Thanks to VoipSupply for their donation of Sipura ATAs to the project
 		for T.38 testing. (http://www.voipsupply.com)
 
-
 	* Thanks to Grandstream for their donation of ATAs to the project for
 		T.38 testing. (http://www.grandstream.com)
 
 === MISCELLANEOUS PATCHES ===
 
- We'd like to thank the flollowing for their patches
+ We'd like to thank the following for their patches
 
 	* Jim Dixon - Zapata Telephony and app_rpt
 		http://www.zapatatelephony.org/app_rpt.html
@@ -240,7 +239,8 @@
 		ControlPlayback, and multiple bug fixes See 
 		http://voip-info.org/users/view/sergee serg(AT)voipsolutions.ru
 
-	* Klaus Darillon - the SIPremoveHeader function in chan_sip
+	* Klaus Darillon - the SIPremoveHeader function in chan_sip and SIP Path
+		Support.
 
 	* Moises Silva (moy) - for writing LibOpenR2, and providing support for
 		it in chan_dahdi moises.silva(AT)gmail.com
@@ -252,7 +252,7 @@
 		cdr_tds rewrite, countless other improvements, fixes, and good
 		ideas. sean(AT)malleable.com
 
-	* Jan Kaláb - Calendaring support for Exchange Server 2007+ via 
+	* Jan Kal�b - Calendaring support for Exchange Server 2007+ via 
 		Exchange Web Services.
 
 	* University of Oslo (uio.no), Norway - SIP Max-Forwards setting 

Modified: team/oej/oolong-path-support-trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/channels/chan_sip.c?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/channels/chan_sip.c (original)
+++ team/oej/oolong-path-support-trunk/channels/chan_sip.c Wed Feb 13 06:29:08 2013
@@ -1187,8 +1187,8 @@
 static void free_old_route(struct sip_route *route);
 static void list_route(struct sip_route *route);
 static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards, int resp);
-static void build_path(struct sip_pvt *p, struct sip_peer *peer, struct sip_request *req, char *pathbuf);
-static void copy_route(struct sip_route **d, struct sip_route *s);
+static int build_path(struct sip_pvt *p, struct sip_peer *peer, struct sip_request *req, char *pathbuf);
+static int copy_route(struct sip_route **dst, const struct sip_route *src);
 static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sockaddr *addr,
 					      struct sip_request *req, const char *uri);
 static struct sip_pvt *get_sip_pvt_byid_locked(const char *callid, const char *totag, const char *fromtag);
@@ -5322,7 +5322,7 @@
 	int rtcachefriends = ast_test_flag(&p->flags[1], SIP_PAGE2_RTCACHEFRIENDS);
 	if (sip_cfg.peer_rtupdate &&
 	    (p->is_realtime || rtcachefriends)) {
-		char path[SIPBUFSIZE*2];
+		char path[SIPBUFSIZE * 2];
 		make_route_list(p->path, path, sizeof(path));
 		realtime_update_peer(p->name, &p->addr, p->username, p->fullcontact, p->useragent, expire, p->deprecated_username, p->lastms, path);
 	}
@@ -6429,7 +6429,7 @@
 	ast_clear_flag(&p->flags[1], SIP_PAGE2_FAX_DETECT_T38);
 
 	if (p->options->transfer) {
-		char buf[SIPBUFSIZE/2];
+		char buf[SIPBUFSIZE / 2];
 
 		if (referer) {
 			if (sipdebug)
@@ -11381,12 +11381,14 @@
  *  is supported for this dialog. */
 static int add_supported(struct sip_pvt *pvt, struct sip_request *req)
 {
+	char supported_value[SIPBUFSIZE];
 	int res;
-	if (st_get_mode(pvt, 0) != SESSION_TIMER_MODE_REFUSE) {
-		res = add_header(req, "Supported", "replaces, timer");
-	} else {
-		res = add_header(req, "Supported", "replaces");
-	}
+
+	sprintf(supported_value, "replaces%s%s",
+		(st_get_mode(pvt, 0) != SESSION_TIMER_MODE_REFUSE) ? ", timer" : "",
+		ast_test_flag(&pvt->flags[0], SIP_USEPATH) ? ", path" : "");
+	res = add_header(req, "Supported", supported_value);
+
 	return res;
 }
 
@@ -11562,7 +11564,7 @@
 /*! \brief Add route header into request per learned route */
 static void add_route(struct sip_request *req, struct sip_route *route)
 {
-	char r[SIPBUFSIZE*2];
+	char r[SIPBUFSIZE * 2];
 
 	if (!route)
 		return;
@@ -11868,6 +11870,9 @@
 			char *brackets = strchr(contact_uri, '<');
 			snprintf(contact, sizeof(contact), "%s%s%s;expires=%d", brackets ? "" : "<", contact_uri, brackets ? "" : ">", p->expiry);
 			add_header(resp, "Contact", contact);	/* Not when we unregister */
+		}
+		if (p->method == SIP_REGISTER && ast_test_flag(&p->flags[0], SIP_USEPATH)) {
+			copy_header(resp, req, "Path");
 		}
 	} else if (!ast_strlen_zero(p->our_contact) && resp_needs_contact(msg, p->method)) {
 		add_header(resp, "Contact", p->our_contact);
@@ -15382,6 +15387,7 @@
 	add_header(&req, "To", to);
 	add_header(&req, "Call-ID", p->callid);
 	add_header(&req, "CSeq", tmp);
+	add_supported(p, &req);
 	if (!ast_strlen_zero(global_useragent))
 		add_header(&req, "User-Agent", global_useragent);
 
@@ -15797,7 +15803,7 @@
 static void reg_source_db(struct sip_peer *peer)
 {
 	char data[256];
-	char path[SIPBUFSIZE*2];
+	char path[SIPBUFSIZE * 2];
 	struct ast_sockaddr sa;
 	int expire;
 	char full_addr[128];
@@ -15856,11 +15862,9 @@
 			sip_unref_peer(peer, "remove registration ref"),
 			sip_ref_peer(peer, "add registration ref"));
 	register_peer_exten(peer, TRUE);
-	if (ast_db_get("SIP/RegistryPath", peer->name, path, sizeof(path))) {
-		return;
-	}
-	build_path(0, peer, 0, path);
-
+	if (!ast_db_get("SIP/RegistryPath", peer->name, path, sizeof(path))) {
+		build_path(NULL, peer, NULL, path);
+	}
 }
 
 /*! \brief Save contact header for 200 OK on INVITE */
@@ -16156,12 +16160,15 @@
 		}
 	}
 	pvt->expiry = expire;
-	build_path(pvt, peer, req, 0);
+	if (!build_path(pvt, peer, req, NULL)) {
+		/* Tell the dialog to use the Path header in the response */
+		ast_set2_flag(&pvt->flags[0], 1, SIP_USEPATH);
+	}
 	snprintf(data, sizeof(data), "%s:%d:%s:%s", ast_sockaddr_stringify(&peer->addr),
 		 expire, peer->username, peer->fullcontact);
 	/* We might not immediately be able to reconnect via TCP, but try caching it anyhow */
 	if (!peer->rt_fromcontact || !sip_cfg.peer_rtupdate) {
-		char path[SIPBUFSIZE*2];
+		char path[SIPBUFSIZE * 2];
 		if (peer->path) {
 			make_route_list(peer->path, path, sizeof(path));
 			ast_db_put("SIP/RegistryPath", peer->name, path);
@@ -16336,43 +16343,73 @@
 	}
 }
 
-/*! \brief copy route-set */
-static void copy_route(struct sip_route **d, struct sip_route *s)
+/*! \internal \brief Create a new route
+ * \retval NULL on error
+ * \retval sip_route on success
+ */
+static struct sip_route *create_route(const char *hop, struct sip_route *prev)
+{
+	struct sip_route *route;
+	int len;
+
+	if (ast_strlen_zero(hop)) {
+		return NULL;
+	}
+	len = strlen(hop) + 1;
+
+	/* ast_calloc is not needed because all fields are initialized in
+	 * this block */
+	route = ast_malloc(sizeof(*route) + len);
+	if (!route) {
+		return NULL;
+	}
+	ast_copy_string(route->hop, hop, len);
+
+	route->next = NULL;
+	if (prev) {
+		prev->next = route;
+	}
+	return route;
+}
+
+/*! \internal \brief copy route-set
+ * \retval non-zero on failure
+ * \retval 0 on success
+ */
+static int copy_route(struct sip_route **dst, const struct sip_route *src)
 {
 	struct sip_route *thishop, *head, *tail;
-	/* Build a tailq, then assign it to **d when done.
-	 */
+
+	/* Build a tailq, then assign it to **d when done. */
 	head = NULL;
 	tail = head;
-	while (s) {
-		int len = strlen(s->hop) + 1;
-		if ((thishop = ast_malloc(sizeof(*thishop) + len))) {
-			/* ast_calloc is not needed because all fields are initialized in this block */
-			ast_copy_string(thishop->hop, s->hop, len);
-			ast_debug(2, "copy_route: copied hop: <%s>\n", thishop->hop);
-			thishop->next = NULL;
-			/* Link in at the end */
-			if (tail) {
-				tail->next = thishop;
-			} else {
-				head = thishop;
-			}
-			tail = thishop;
-		}
-		s = s->next;
-	}
-	*d = head;
-}
+	for (; src; src = src->next) {
+		thishop = create_route(src->hop, tail);
+		if (!thishop) {
+			return -1;
+		}
+		if (!head) {
+			head = thishop;
+		}
+		tail = thishop;
+
+		ast_debug(2, "copy_route: copied hop: <%s>\n", thishop->hop);
+	}
+	*dst = head;
+
+	return 0;
+}
+
 /*! \brief Build route list from Path header
  *  RFC 3327 requires that the Path header contains SIP URIs with lr paramter.
  *  Thus, we do not care about strict routing SIP routers
  */
-static void build_path(struct sip_pvt *p, struct sip_peer *peer, struct sip_request *req, char *pathbuf)
+static int build_path(struct sip_pvt *p, struct sip_peer *peer, struct sip_request *req, char *pathbuf)
 {
 	struct sip_route *thishop, *head, *tail;
 	int start = 0;
 	int len;
-	const char *rr;
+	char *pr;
 
 	if (peer->path) {
 		free_old_route(peer->path);
@@ -16381,25 +16418,24 @@
 
 	if (!ast_test_flag(&peer->flags[0], SIP_USEPATH)) {
 		ast_debug(2, "build_path: do not use Path headers\n");
-		return;
+		return -1;
 	}
 	ast_debug(2, "build_path: try to build pre-loaded route-set by parsing Path headers\n");
 
-	/* Build a tailq, then assign it to peer->path when done.
-	 */
+	/* Build a tailq, then assign it to peer->path when done. */
 	head = NULL;
 	tail = head;
 	/* 1st we pass through all the hops in any Path headers */
 	for (;;) {
 		/* Either loop over the request's Path headers or parse the buffer */
 		if (req) {
-			rr = __get_header(req, "Path", &start);
-			if (*rr == '\0') {
+			pr = ast_strdupa(__get_header(req, "Path", &start));
+			if (*pr == '\0') {
 				break;
 			}
 		} else if (pathbuf) {
 			if (start == 0) {
-				rr = pathbuf;
+				pr = ast_strdupa(pathbuf);
 				start++;
 			} else {
 				break;
@@ -16407,24 +16443,21 @@
 		} else {
 			break;
 		}
-		for (; (rr = strchr(rr, '<')) ; rr += len) { /* Each route entry */
-			++rr;
-			len = strcspn(rr, ">") + 1;
-			/* Make a struct route */
-			if ((thishop = ast_malloc(sizeof(*thishop) + len))) {
-				/* ast_calloc is not needed because all fields are initialized in this block */
-				ast_copy_string(thishop->hop, rr, len);
-				ast_debug(2, "build_path: Path hop: <%s>\n", thishop->hop);
-				/* Link in */
-				thishop->next = NULL;
-				/* Link in at the end */
-				if (tail) {
-					tail->next = thishop;
-				} else {
-					head = thishop;
-				}
-				tail = thishop;
-			}
+		for (; (pr = strchr(pr, '<')) ; pr += (len + 1)) {
+			/* Parse out each route entry */
+			++pr;
+			len = strcspn(pr, ">");
+			*(pr + len) = '\0';
+			thishop = create_route(pr, tail);
+			if (!thishop) {
+				return -1;
+			}
+
+			if (!head) {
+				head = thishop;
+			}
+			tail = thishop;
+			ast_debug(2, "build_path: Path hop: <%s>\n", thishop->hop);
 		}
 	}
 
@@ -16435,6 +16468,7 @@
 	if (p && sip_debug_test_pvt(p)) {
 		list_route(peer->path);
 	}
+	return 0;
 }
 
 /*! \brief builds the sip_pvt's nonce field which is used for the authentication 
@@ -20111,12 +20145,12 @@
 		if (!peer->path) {
 			ast_cli(fd, "N/A\n");
 		} else {
-			struct sip_route *r=peer->path;
+			struct sip_route *r = peer->path;
 			int first = 1;
 			while (r) {
 				ast_cli(fd, "%s<%s>", first ? "" : ", ", r->hop);
 				first = 0;
-				r=r->next;
+				r = r->next;
 			}
 			ast_cli(fd, "\n");
 		}
@@ -23480,7 +23514,7 @@
 {
 	int expires, expires_ms;
 	struct sip_registry *r;
-	r=p->registry;
+	r = p->registry;
 	
 	switch (resp) {
 	case 401:	/* Unauthorized */

Modified: team/oej/oolong-path-support-trunk/channels/sip/include/sip.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/channels/sip/include/sip.h?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/channels/sip/include/sip.h (original)
+++ team/oej/oolong-path-support-trunk/channels/sip/include/sip.h Wed Feb 13 06:29:08 2013
@@ -294,7 +294,7 @@
 #define SIP_PROG_INBAND_NO     (1 << 25)
 #define SIP_PROG_INBAND_YES    (2 << 25)
 
-#define SIP_USEPATH          (1 << 27) /*!< P: Trust and use incoming Path headers? */
+#define SIP_USEPATH          (1 << 27) /*!< GDP: Trust and use incoming Path headers? */
 #define SIP_SENDRPID         (3 << 29) /*!< DP: Remote Party-ID Support */
 #define SIP_SENDRPID_NO      (0 << 29)
 #define SIP_SENDRPID_PAI     (1 << 29) /*!< Use "P-Asserted-Identity" for rpid */

Modified: team/oej/oolong-path-support-trunk/configs/res_ldap.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/configs/res_ldap.conf.sample?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/configs/res_ldap.conf.sample (original)
+++ team/oej/oolong-path-support-trunk/configs/res_ldap.conf.sample Wed Feb 13 06:29:08 2013
@@ -121,6 +121,7 @@
 defaultuser = AstAccountDefaultUser
 regserver = AstAccountRegistrationServer
 lastms = AstAccountLastQualifyMilliseconds
+supportpath = AstAccountPathSupport
 additionalFilter=(objectClass=AsteriskSIPUser)
 
 ;

Modified: team/oej/oolong-path-support-trunk/configs/sip.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/configs/sip.conf.sample?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/configs/sip.conf.sample (original)
+++ team/oej/oolong-path-support-trunk/configs/sip.conf.sample Wed Feb 13 06:29:08 2013
@@ -444,11 +444,15 @@
 ;                                               ; applies for the global proxy, otherwise use the transport= option
 ;supportpath=yes		; This activates parsing and handling of Path header as defined in RFC 3327. This enables
 				; Asterisk to route outgoing out-of-dialog requests via a set of proxies by using a pre-loaded
-				; route-set defined by the Path headers in the REGISTER request. NOTE: As this influences routing
-				; of SIP requests make sure to not trust Path headers provided by the user's SIP client (the proxy
-				; in front of Asterisk should remove existing user provided Path headers).
-				; NOTE: when a peer has both a path and outboundproxy set, the path will be added to
-				; Route: header but routing to next hop is done using the outboundproxy.
+				; route-set defined by the Path headers in the REGISTER request.
+				; NOTE: There are multiple things to consider with this setting:
+				;  * As this influences routing of SIP requests make sure to not trust Path headers provided
+				;    by the user's SIP client (the proxy in front of Asterisk should remove existing user
+				;    provided Path headers).
+				;  * When a peer has both a path and outboundproxy set, the path will be added to Route: header
+				;    but routing to next hop is done using the outboundproxy.
+				;  * If set globally, not only will all peers use the Path header, but outbound REGISTER
+				;    requests from Asterisk will add path to the Supported header.
 
 ;matchexternaddrlocally = yes     ; Only substitute the externaddr or externhost setting if it matches
                                 ; your localnet setting. Unless you have some sort of strange network

Modified: team/oej/oolong-path-support-trunk/contrib/realtime/mysql/sippeers.sql
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/contrib/realtime/mysql/sippeers.sql?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/contrib/realtime/mysql/sippeers.sql (original)
+++ team/oej/oolong-path-support-trunk/contrib/realtime/mysql/sippeers.sql Wed Feb 13 06:29:08 2013
@@ -91,6 +91,7 @@
       `ignoresdpversion` enum('yes','no') DEFAULT NULL,
       `allowtransfer` enum('yes','no') DEFAULT NULL,
       `dynamic` enum('yes','no') DEFAULT NULL,
+      `supportpath` enum('yes','no') DEFAULT NULL,
       PRIMARY KEY (`id`),
       UNIQUE KEY `name` (`name`),
       KEY `ipaddr` (`ipaddr`,`port`),

Modified: team/oej/oolong-path-support-trunk/contrib/realtime/postgresql/realtime.sql
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/contrib/realtime/postgresql/realtime.sql?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/contrib/realtime/postgresql/realtime.sql (original)
+++ team/oej/oolong-path-support-trunk/contrib/realtime/postgresql/realtime.sql Wed Feb 13 06:29:08 2013
@@ -38,6 +38,7 @@
 callgroup character varying(10),
 callerid character varying(80),
 canreinvite character varying(3) DEFAULT 'yes',
+supportpath character varying(3) DEFAULT 'no',
 context character varying(80),
 defaultip character varying(15),
 dtmfmode character varying(7),

Modified: team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldap-schema
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldap-schema?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldap-schema (original)
+++ team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldap-schema Wed Feb 13 06:29:08 2013
@@ -112,7 +112,7 @@
 objectIdentifier AstAccountAllowOverlap AstAttrType:67
 objectIdentifier AstAccountVideoSupport AstAttrType:68
 objectIdentifier AstAccountIgnoreSDPVersion AstAttrType:69
-
+objectIdentifier AstAccountPathSupport AstAttrType:70
 
 #############################################################################
 # Object Class OIDs
@@ -636,6 +636,13 @@
 attributetype ( AstAccountIgnoreSDPVersion
         NAME 'AstAccountIgnoreSDPVersion'
         DESC 'Asterisk account ignore SDP version'
+        EQUALITY caseIgnoreMatch
+        SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( AstAccountPathSupport
+        NAME 'AstAccountPathSupport'
+        DESC 'Asterisk account support Path RFC 3327'
         EQUALITY caseIgnoreMatch
         SUBSTR caseIgnoreSubstringsMatch
         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
@@ -762,7 +769,8 @@
         AstAccountTransport $
         AstAccountType $ 
         AstAccountUserAgent $	
-        AstAccountVideoSupport
+        AstAccountVideoSupport $
+        AstAccountPathSupport
     )
     )
 

Modified: team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldif
URL: http://svnview.digium.com/svn/asterisk/team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldif?view=diff&rev=381345&r1=381344&r2=381345
==============================================================================
--- team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldif (original)
+++ team/oej/oolong-path-support-trunk/contrib/scripts/asterisk.ldif Wed Feb 13 06:29:08 2013
@@ -108,6 +108,7 @@
 olcObjectIdentifier: AstAccountAllowOverlap AstAttrType:67
 olcObjectIdentifier: AstAccountVideoSupport AstAttrType:68
 olcObjectIdentifier: AstAccountIgnoreSDPVersion AstAttrType:69
+olcObjectIdentifier: AstAccountPathSupport AstAttrType:70
 #
 #
 #############################################################################
@@ -632,6 +633,13 @@
 olcAttributeTypes: ( AstAccountIgnoreSDPVersion
         NAME 'AstAccountIgnoreSDPVersion'
         DESC 'Asterisk account ignore SDP version'
+        EQUALITY caseIgnoreMatch
+        SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+#
+olcAttributeTypes: ( AstAccountPathSupport
+        NAME 'AstAccountPathSupport'
+        DESC 'Asterisk account support Path RFC 3327'
         EQUALITY caseIgnoreMatch
         SUBSTR caseIgnoreSubstringsMatch
         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
@@ -758,7 +766,8 @@
         AstAccountTransport $
         AstAccountType $
         AstAccountUserAgent $
-        AstAccountVideoSupport
+        AstAccountVideoSupport $
+        AstAccountPathSupport
     )
     )
 #




More information about the svn-commits mailing list