Re: [Ekiga-devel-list] Incoming calls not detected [latest]



Hi,

I came up with a fix for this problem. Don't merge
this patch into the cvs stream yet because it might
break something else, and could be much cleaner (I
think).
But test it and let me know if you have any problem.

Andre



 
____________________________________________________________________________________
It's here! Your new message!  
Get new email alerts with the free Yahoo! Toolbar.
http://tools.search.yahoo.com/toolbar/features/mail/
--- ./build_01/ekiga/src/endpoints/manager.h	2006-11-05 05:27:45.000000000 -0800
+++ ./build/ekiga/src/endpoints/manager.h	2007-02-01 16:01:46.000000000 -0800
@@ -247,6 +247,11 @@
    * 		     OnShowIncoming will be called on the PCSS Endpoint.
    * PRE          :  /
    */
+
+  BOOL OnIncomingConnection(OpalConnection &,
+                            unsigned,
+                            OpalConnection::StringOptions *);
+
   BOOL OnIncomingConnection (OpalConnection &,
 			     int,
 			     PString);
--- ./build_01/ekiga/src/endpoints/manager.cpp	2007-02-01 16:04:18.000000000 -0800
+++ ./build/ekiga/src/endpoints/manager.cpp	2007-02-01 16:10:21.000000000 -0800
@@ -837,6 +837,16 @@
   }
 }
 
+BOOL
+GMManager::OnIncomingConnection (OpalConnection &connection,
+                                 unsigned reason,     
+                                 OpalConnection::StringOptions * extra)
+{
+//PString tmp("");
+//return OnIncomingConnection(connection, reason, tmp);
+
+  return OnIncomingConnection(connection, reason, PString(NULL));
+}
 
 BOOL
 GMManager::OnIncomingConnection (OpalConnection &connection,
@@ -892,6 +902,7 @@
     break;
     
   case 2:
+
     connection.ForwardCall (extra);
     res = FALSE;
     short_reason = g_strdup (_("Forwarding incoming call"));
@@ -899,6 +910,7 @@
       g_strdup_printf (_("Forwarding incoming call from %s to %s"), 
 		       utf8_name, (const char *) extra);
     break;
+
     
   case 4:
     res = TRUE;
@@ -907,7 +919,17 @@
 				   (const char *) utf8_name);
   default:
   case 0:
-    res = OpalManager::OnIncomingConnection (connection);
+    OpalCall & call = connection.GetCall();
+
+    // See if we already have a B-Party in the call. If not, make one.
+    if (call.GetOtherPartyConnection(connection) != NULL){
+      res = TRUE;
+      break;
+    }
+    else
+      // Use a routing algorithm to figure out who the B-Party is, then make a connection
+      res = MakeConnection(call, OnRouteConnection(connection), NULL, 0, NULL);
+
     break;
   }
   


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]