[svn-commits] mmichelson: branch mmichelson/rls-rlmi r418227 - /team/mmichelson/rls-rlmi/res/
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Wed Jul 9 12:15:21 CDT 2014
Author: mmichelson
Date: Wed Jul 9 12:15:15 2014
New Revision: 418227
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=418227
Log:
Get rid of some of the hard-coded RLMI values.
* resource name
* resource state
Modified:
team/mmichelson/rls-rlmi/res/res_pjsip_pubsub.c
Modified: team/mmichelson/rls-rlmi/res/res_pjsip_pubsub.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/rls-rlmi/res/res_pjsip_pubsub.c?view=diff&rev=418227&r1=418226&r2=418227
==============================================================================
--- team/mmichelson/rls-rlmi/res/res_pjsip_pubsub.c (original)
+++ team/mmichelson/rls-rlmi/res/res_pjsip_pubsub.c Wed Jul 9 12:15:15 2014
@@ -410,6 +410,8 @@
int body_changed;
/*! The current state of the subscription */
pjsip_evsub_state subscription_state;
+ /*! For lists, the current version to place in the RLMI body */
+ unsigned int version;
/*! Name of resource being subscribed to */
char resource[0];
};
@@ -1441,29 +1443,26 @@
return res;
}
-static void add_rlmi_resource(pj_pool_t *pool, pj_xml_node *rlmi, const char *cid)
+static void add_rlmi_resource(pj_pool_t *pool, pj_xml_node *rlmi, const char *cid,
+ const char *resource_name, const char *resource_uri, pjsip_evsub_state state)
{
pj_xml_node *resource;
pj_xml_node *name;
pj_xml_node *instance;
- char uri[PJSIP_MAX_URL_SIZE];
char id[AST_UUID_STR_LEN];
resource = ast_sip_presence_xml_create_node(pool, rlmi, "resource");
name = ast_sip_presence_xml_create_node(pool, resource, "name");
instance = ast_sip_presence_xml_create_node(pool, resource, "instance");
- /* XXX Hardcoding a resource URI for the moment. */
- ast_copy_string(uri, "johndoe at example.org", sizeof(uri));
- ast_sip_presence_xml_create_attr(pool, resource, "uri", uri);
-
- /* XXX This is hardcoded too! */
- pj_strdup2(pool, &name->content, "CAT-URINE");
+ ast_sip_presence_xml_create_attr(pool, resource, "uri", resource_uri);
+
+ pj_strdup2(pool, &name->content, resource_name);
ast_uuid_generate_str(id, sizeof(id));
ast_sip_presence_xml_create_attr(pool, instance, "id", id);
- /* XXX More hardcodedness */
- ast_sip_presence_xml_create_attr(pool, instance, "state", "active");
+ ast_sip_presence_xml_create_attr(pool, instance, "state",
+ state == PJSIP_EVSUB_STATE_TERMINATED ? "terminated" : "active");
ast_sip_presence_xml_create_attr(pool, instance, "cid", ast_strip_quoted(ast_strdupa(cid), "<", ">"));
}
@@ -1488,8 +1487,8 @@
ast_sip_subscription_get_local_uri(sub, uri, sizeof(uri));
ast_sip_presence_xml_create_attr(pool, rlmi, "uri", uri);
- /* XXX Hardcoding RLMI version and fullState attributes for the moment. */
- snprintf(version_str, sizeof(version_str), "%u", 0);
+ /* XXX Hardcoding RLMI fullState attribute for the moment. */
+ snprintf(version_str, sizeof(version_str), "%u", sub->version++);
ast_sip_presence_xml_create_attr(pool, rlmi, "version", version_str);
ast_sip_presence_xml_create_attr(pool, rlmi, "fullState", "true");
@@ -1497,7 +1496,10 @@
pj_strdup2(pool, &name->content, ast_sip_subscription_get_resource_name(sub));
for (i = 0; i < AST_VECTOR_SIZE(cids); ++i) {
- add_rlmi_resource(pool, rlmi, AST_VECTOR_GET(cids, i));
+ /* XXX Using a hardcoded URI for the moment */
+ add_rlmi_resource(pool, rlmi, AST_VECTOR_GET(cids, i),
+ AST_VECTOR_GET(&sub->children, i)->resource, "sip:johndoe at example.org",
+ AST_VECTOR_GET(&sub->children, i)->subscription_state);
}
return rlmi;
More information about the svn-commits
mailing list