[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