--- chan_gtalk.c.original 2008-01-09 19:59:09.000000000 +0300 +++ chan_gtalk.c.patched 2008-03-31 12:19:55.000000000 +0400 @@ -723,15 +723,14 @@ struct sockaddr_in sin; struct sockaddr_in dest; struct in_addr us; - iks *iq, *gtalk, *candidate, *transport; + iks *iq, *gtalk, *candidate; char user[17], pass[17], preference[5], port[7]; iq = iks_new("iq"); gtalk = iks_new("session"); candidate = iks_new("candidate"); - transport = iks_new("transport"); - if (!iq || !gtalk || !candidate || !transport) { + if (!iq || !gtalk || !candidate ) { ast_log(LOG_ERROR, "Memory allocation error\n"); goto safeout; } @@ -740,11 +739,8 @@ if (!ours1 || !ours2) goto safeout; - iks_insert_attrib(transport, "xmlns","http://www.google.com/transport/p2p"); iks_insert_node(iq, gtalk); - iks_insert_node(gtalk,transport); - iks_insert_node(transport, candidate); - + iks_insert_node(gtalk,candidate); for (; p; p = p->next) { if (!strcasecmp(p->sid, sid)) break; @@ -801,7 +797,7 @@ iks_insert_attrib(iq, "type", "set"); iks_insert_attrib(iq, "id", c->mid); ast_aji_increment_mid(c->mid); - iks_insert_attrib(gtalk, "type", "transport-info"); + iks_insert_attrib(gtalk, "type", "candidates"); iks_insert_attrib(gtalk, "id", sid); iks_insert_attrib(gtalk, "initiator", (p->initiator) ? to : from); iks_insert_attrib(gtalk, "xmlns", GOOGLE_NS); @@ -838,8 +834,6 @@ iks_delete(gtalk); if (candidate) iks_delete(candidate); - if(transport) - iks_delete(transport); return 1; } @@ -1160,6 +1154,8 @@ sin.sin_port = htons(tmp->port); snprintf(username, sizeof(username), "%s%s", tmp->username, p->ourcandidates->username); +// snprintf(username, sizeof(username), "%s", tmp->username); + /* Find out the result of the STUN */ ast_rtp_get_peer(p->rtp, &aux);