[svn-commits] phsultan: branch phsultan/jingle-support r229907 - in /team/phsultan/jingle-s...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Nov 13 05:39:42 CST 2009


Author: phsultan
Date: Fri Nov 13 05:39:39 2009
New Revision: 229907

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=229907
Log:
Fix advertized content and send our Jingle features list when asked.

Modified:
    team/phsultan/jingle-support/channels/chan_jingle.c
    team/phsultan/jingle-support/res/res_jabber.c

Modified: team/phsultan/jingle-support/channels/chan_jingle.c
URL: http://svnview.digium.com/svn/asterisk/team/phsultan/jingle-support/channels/chan_jingle.c?view=diff&rev=229907&r1=229906&r2=229907
==============================================================================
--- team/phsultan/jingle-support/channels/chan_jingle.c (original)
+++ team/phsultan/jingle-support/channels/chan_jingle.c Fri Nov 13 05:39:39 2009
@@ -411,7 +411,7 @@
 	iks_insert_attrib(jingle, JINGLE_SID, tmp->sid);
 
 	iks_insert_attrib(content, "creator", "initiator");
-	iks_insert_attrib(content, "name", "A");
+	iks_insert_attrib(content, "name", p->audio_content_name);
 	iks_insert_attrib(content, "senders", "both");
 
 	/* insert nodes */

Modified: team/phsultan/jingle-support/res/res_jabber.c
URL: http://svnview.digium.com/svn/asterisk/team/phsultan/jingle-support/res/res_jabber.c?view=diff&rev=229907&r1=229906&r2=229907
==============================================================================
--- team/phsultan/jingle-support/res/res_jabber.c (original)
+++ team/phsultan/jingle-support/res/res_jabber.c Fri Nov 13 05:39:39 2009
@@ -1758,12 +1758,16 @@
 		} else
 			resource->cap->jingle = 0;
 	} else if (pak->subtype == IKS_TYPE_GET) {
-		iks *iq, *disco, *ident, *google, *query;
+		iks *iq, *disco, *ident, *google, *query, *jingle, *jingletransport, *jingleappsrtp, *jingleappsrtpaudio;
 		iq = iks_new("iq");
 		query = iks_new("query");
 		ident = iks_new("identity");
 		disco = iks_new("feature");
 		google = iks_new("feature");
+		jingle = iks_new("feature");
+		jingletransport = iks_new("feature");
+		jingleappsrtp = iks_new("feature");
+		jingleappsrtpaudio = iks_new("feature");
 		if (iq && ident && disco && google) {
 			iks_insert_attrib(iq, "from", client->jid->full);
 			iks_insert_attrib(iq, "to", pak->from->full);
@@ -1775,9 +1779,17 @@
 			iks_insert_attrib(ident, "name", "asterisk");
 			iks_insert_attrib(disco, "var", "http://jabber.org/protocol/disco#info");
 			iks_insert_attrib(google, "var", "http://www.google.com/xmpp/protocol/voice/v1");
+			iks_insert_attrib(jingle, "var", "urn:xmpp:jingle:1");
+			iks_insert_attrib(jingletransport, "var", "urn:xmpp:jingle:transports:ice-udp:1");
+			iks_insert_attrib(jingleappsrtp, "var", "urn:xmpp:jingle:apps:rtp:1");
+			iks_insert_attrib(jingleappsrtpaudio, "var", "urn:xmpp:jingle:apps:rtp:audio");
 			iks_insert_node(iq, query);
 			iks_insert_node(query, ident);
 			iks_insert_node(query, google);
+			iks_insert_node(query, jingle);
+			iks_insert_node(query, jingletransport);
+			iks_insert_node(query, jingleappsrtp);
+			iks_insert_node(query, jingleappsrtpaudio);
 			iks_insert_node(query, disco);
 			ast_aji_send(client, iq);
 		} else
@@ -2833,6 +2845,24 @@
 	iks *cnode = iks_new("c");
 	iks *priority = iks_new("priority");
 	char priorityS[10];
+	char buf[40];
+	char disco[] = "http://jabber.org/protocol/disco#info";
+	char google[] = "http://www.google.com/xmpp/protocol/voice/v1";
+	char jingle[] = "urn:xmpp:jingle:1";
+	char jingleiceudp[] = "urn:xmpp:jingle:transports:ice-udp:1";
+	char jingleappsrtp[] = "urn:xmpp:jingle:apps:rtp:1";
+	char jingleappsrtpaudio[] = "urn:xmpp:jingle:apps:rtp:audio";
+	char features[6*256];
+	//uint8_t sha1[20];
+
+	/* compute capabilities hash according to XEP-115 */
+	snprintf(features, sizeof(features), "%s<%s<%s<%s<%s<%s", disco, google, jingle, jingleiceudp, jingleappsrtp, jingleappsrtpaudio);
+
+	/* cannot use ast_sha1_hash since we need a 20 bytes output according
+	 * to XEP-115 */
+	//ast_sha1_hash_raw(sha1, features);
+	//ast_base64encode(buf, (const unsigned char *)sha1, 20, 30);	
+	ast_sha1_hash(buf, features);
 
 	if (presence && cnode && client && priority) {
 		if (to)
@@ -2843,6 +2873,8 @@
 		iks_insert_cdata(priority, priorityS, strlen(priorityS));
 		iks_insert_node(presence, priority);
 		iks_insert_attrib(cnode, "node", "http://www.asterisk.org/xmpp/client/caps");
+	//	iks_insert_attrib(cnode, "hash", "sha-1");
+//		iks_insert_attrib(cnode, "ver", buf);
 		iks_insert_attrib(cnode, "ver", "asterisk-xmpp");
 		iks_insert_attrib(cnode, "ext", "voice-v1");
 		iks_insert_attrib(cnode, "xmlns", "http://jabber.org/protocol/caps");




More information about the svn-commits mailing list