[svn-commits] mmichelson: branch group/CCSS r248093 - /team/group/CCSS/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Feb 19 14:07:36 CST 2010


Author: mmichelson
Date: Fri Feb 19 14:07:32 2010
New Revision: 248093

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=248093
Log:
Add a presentity to PIDF bodies.


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=248093&r1=248092&r2=248093
==============================================================================
--- team/group/CCSS/channels/chan_sip.c (original)
+++ team/group/CCSS/channels/chan_sip.c Fri Feb 19 14:07:32 2010
@@ -2265,7 +2265,7 @@
 	return 0;
 }
 
-static int construct_pidf_body(enum sip_cc_publish_state state, char *pidf_body, size_t size)
+static int construct_pidf_body(enum sip_cc_publish_state state, char *pidf_body, size_t size, const char *presentity)
 {
 	struct ast_str *body = ast_str_alloca(size);
 	char tuple_id[32];
@@ -2276,8 +2276,7 @@
 	 * body gets a lot more extra junk that isn't necessary, so we'll leave it out here.
 	 */
 	ast_str_append(&body, 0, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-	/* XXX Need to come up with an entity name to put in here. */
-	ast_str_append(&body, 0, "<presence xmlns=\"urn:ietf:params:xml:ns:pidf\" entity=\"?????\">\n");
+	ast_str_append(&body, 0, "<presence xmlns=\"urn:ietf:params:xml:ns:pidf\" entity=\"%s\">\n", presentity);
 	ast_str_append(&body, 0, "<tuple id=\"%s\">\n", tuple_id);
 	ast_str_append(&body, 0, "<status><basic>%s</basic></status>\n", state == CC_OPEN ? "open" : "closed");
 	ast_str_append(&body, 0, "</tuple>\n");
@@ -2333,7 +2332,7 @@
 		 */
 		return 0;
 	}
-	construct_pidf_body(CC_CLOSED, monitor_instance->suspension_entry->body, sizeof(monitor_instance->suspension_entry->body));
+	construct_pidf_body(CC_CLOSED, monitor_instance->suspension_entry->body, sizeof(monitor_instance->suspension_entry->body), monitor_instance->peername);
 	return transmit_publish(monitor_instance->suspension_entry, publish_type, monitor_instance->notify_uri);
 }
 
@@ -2365,7 +2364,7 @@
 		 */
 		return 0;
 	}
-	construct_pidf_body(CC_OPEN, monitor_instance->suspension_entry->body, sizeof(monitor_instance->suspension_entry->body));
+	construct_pidf_body(CC_OPEN, monitor_instance->suspension_entry->body, sizeof(monitor_instance->suspension_entry->body), monitor_instance->peername);
 	return transmit_publish(monitor_instance->suspension_entry, SIP_PUBLISH_MODIFY, monitor_instance->notify_uri);
 }
 
@@ -19609,7 +19608,8 @@
 			 * call leg had not yet notified us that it was ready for recall, it meant that we
 			 * could not yet send a PUBLISH. Now, however, we can.
 			 */
-			construct_pidf_body(CC_CLOSED, monitor_instance->suspension_entry->body, sizeof(monitor_instance->suspension_entry->body));
+			construct_pidf_body(CC_CLOSED, monitor_instance->suspension_entry->body,
+					sizeof(monitor_instance->suspension_entry->body), monitor_instance->peername);
 			transmit_publish(monitor_instance->suspension_entry, SIP_PUBLISH_INITIAL, monitor_instance->notify_uri);
 		} else {
 			ast_cc_monitor_callee_available(monitor_instance->core_id, "SIP monitored callee has become available");




More information about the svn-commits mailing list