[asterisk-commits] mmichelson: branch group/CCSS r233168 - /team/group/CCSS/channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Dec 4 11:42:54 CST 2009


Author: mmichelson
Date: Fri Dec  4 11:42:49 2009
New Revision: 233168

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=233168
Log:
Add some structures that can make basic PIDF parsing
a bit easier.


Modified:
    team/group/CCSS/channels/chan_sip.c

Modified: team/group/CCSS/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/group/CCSS/channels/chan_sip.c?view=diff&rev=233168&r1=233167&r2=233168
==============================================================================
--- team/group/CCSS/channels/chan_sip.c (original)
+++ team/group/CCSS/channels/chan_sip.c Fri Dec  4 11:42:49 2009
@@ -1652,6 +1652,41 @@
 	enum referstatus status;			/*!< REFER status */
 };
 
+/* SIP PIDF:
+ * PIDF is a mostly loose specification, in the sense that it allows
+ * for much extensibility. Since PIDF parsing support in chan_sip is being
+ * developed for a situation in which we need only the most basic level of
+ * parsing ability, the structures defined here will only deal with the required
+ * elements in the default namespace.
+ */
+struct sip_pidf_doc {
+	struct ast_xml_doc *doc;
+	/* We store the tuples and notes in a list so that it is easy
+	 * to move from one like element to the next. It is also easier
+	 * this way to determine when we are at the last element of a particular
+	 * type. The order of the items in each list is the same as they were
+	 * encountered while parsing the PIDF document
+	 */
+	AST_LIST_HEAD_NOLOCK(, sip_pidf_presence_tuple) tuples;
+	AST_LIST_HEAD_NOLOCK(, ast_xml_node) notes;
+	/* The presence node is provided for two purposes. One is so that
+	 * attributes may be obtained. The other is so that elements not defined
+	 * in the default namespace may be obtained.
+	 */
+	struct ast_xml_node *presence_node;
+};
+
+struct sip_pidf_presence_tuple {
+	/* The status node is required by the PIDF spec. Furthermore,
+	 * only one may be present
+	 */
+	struct ast_xml_node *status_node;
+	/* Like with the sip_pidf_doc struct, the tuple node is being provided
+	 * to retrieve attributes and elements not described in RFC 3863
+	 */
+	struct ast_xml_node *tuple_node;
+};
+
 /* SIP PUBLISH support!
  * PUBLISH support was added to chan_sip due to its use in the call-completion
  * event package. In order to suspend and unsuspend monitoring of a called party,




More information about the asterisk-commits mailing list