pidgin.vv.yahoo.voice: 56d7b0b0: Partially handle hold and resume request...

maiku at pidgin.im maiku at pidgin.im
Sat Aug 29 20:52:02 EDT 2009


-----------------------------------------------------------------
Revision: 56d7b0b0513bb8141437809366e21d4709c9c64d
Ancestor: eb388989020c606fb52bbd62b9ed1d22f243ef18
Author: maiku at pidgin.im
Date: 2009-08-30T00:27:34
Branch: im.pidgin.pidgin.vv.yahoo.voice
URL: http://d.pidgin.im/viewmtn/revision/info/56d7b0b0513bb8141437809366e21d4709c9c64d

Modified files:
        libpurple/protocols/yahoo/yahoo_sip.c

ChangeLog: 

Partially handle hold and resume requests.

-------------- next part --------------
============================================================
--- libpurple/protocols/yahoo/yahoo_sip.c	b4b4a1084bd7330104aea58a77ef0d340e114175
+++ libpurple/protocols/yahoo/yahoo_sip.c	f9c07e06639a2aaf10b5f24c09511d24c6c381d0
@@ -304,8 +304,26 @@ event_callback(nua_event_t event, int st
 		PurpleMedia *media;
 		PurpleAccount *account = magic;
 		GParameter param;
+		sip_unknown_t *iter = sip_unknown(sip);
+
 		purple_debug_info("yahoo", "INVITE status %d display: %s\n",
 				status, name);
+
+		for (; iter;  iter = iter->un_next) {
+			if (!strcmp(iter->un_name, "Y-Invite-Type")) {
+				if (!strcmp(iter->un_value, "hold")) {
+					purple_debug_info("yahoo",
+							"sip: remote end is holding\n");
+					/* Switch to send only */
+				} else if (!strcmp(iter->un_value, "resume")) {
+					purple_debug_info("yahoo",
+							"sip: remote end is resuming\n");
+					/* Switch back to sendrecv */
+				}
+				return;
+			}
+		}
+
 		nua_respond(nh, 180, "Ringing", TAG_END());
 		media = purple_media_manager_create_media(
 				purple_media_manager_get(),


More information about the Commits mailing list