comparison libpurple/protocols/jabber/jingle.c @ 23872:1d9a2296d5d2

Stop additional media sessions within a single conversation for grouped contacts.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Fri, 15 Aug 2008 04:07:00 +0000
parents b5ba1ab6ebdc
children 64080c01ee50
comparison
equal deleted inserted replaced
23871:b5ba1ab6ebdc 23872:1d9a2296d5d2
934 GList *contents = jabber_jingle_session_get_contents(session); 934 GList *contents = jabber_jingle_session_get_contents(session);
935 935
936 media = purple_media_manager_create_media(purple_media_manager_get(), 936 media = purple_media_manager_create_media(purple_media_manager_get(),
937 session->js->gc, "fsrtpconference", remote_jid); 937 session->js->gc, "fsrtpconference", remote_jid);
938 938
939 jabber_jingle_session_set_remote_jid(session, remote_jid);
940 jabber_jingle_session_set_initiator(session, initiator);
941
939 if (!media) { 942 if (!media) {
940 purple_debug_error("jingle", "Couldn't create fsrtpconference\n"); 943 purple_debug_error("jingle", "Couldn't create media session\n");
941 return FALSE; 944 return FALSE;
942 } 945 }
943 946
944 for (; contents; contents = g_list_delete_link(contents, contents)) { 947 for (; contents; contents = g_list_delete_link(contents, contents)) {
945 JingleSessionContent *jsc = contents->data; 948 JingleSessionContent *jsc = contents->data;
957 purple_debug_info("jingle", "Created Jingle video session\n"); 960 purple_debug_info("jingle", "Created Jingle video session\n");
958 } 961 }
959 962
960 if (!result) { 963 if (!result) {
961 purple_debug_error("jingle", "Couldn't create stream\n"); 964 purple_debug_error("jingle", "Couldn't create stream\n");
962 purple_media_reject(media);
963 return FALSE; 965 return FALSE;
964 } 966 }
965 } 967 }
966 968
967 jabber_jingle_session_set_remote_jid(session, remote_jid);
968 jabber_jingle_session_set_initiator(session, initiator);
969 jabber_jingle_session_set_media(session, media); 969 jabber_jingle_session_set_media(session, media);
970 970
971 /* connect callbacks */ 971 /* connect callbacks */
972 g_signal_connect_swapped(G_OBJECT(media), "accepted", 972 g_signal_connect_swapped(G_OBJECT(media), "accepted",
973 G_CALLBACK(jabber_jingle_session_send_session_accept), session); 973 G_CALLBACK(jabber_jingle_session_send_session_accept), session);
1282 jabber_jingle_session_content_create_parse(session, content); 1282 jabber_jingle_session_content_create_parse(session, content);
1283 } 1283 }
1284 1284
1285 if (!jabber_jingle_session_initiate_media_internal(session, initiator, initiator)) { 1285 if (!jabber_jingle_session_initiate_media_internal(session, initiator, initiator)) {
1286 purple_debug_error("jingle", "Couldn't start media session with %s\n", initiator); 1286 purple_debug_error("jingle", "Couldn't start media session with %s\n", initiator);
1287 jabber_jingle_session_destroy(session); 1287 jabber_jingle_session_send_session_reject(session);
1288 /* we should create an error iq here */
1289 return; 1288 return;
1290 } 1289 }
1291 1290
1292 for (content = xmlnode_get_child(jingle, "content"); content; 1291 for (content = xmlnode_get_child(jingle, "content"); content;
1293 content = xmlnode_get_next_twin(content)) { 1292 content = xmlnode_get_next_twin(content)) {