telepathy-rakia: Don't wait for codecs to publish Endpoint on incoming m=

Olivier Crête tester at kemper.freedesktop.org
Tue May 8 10:03:03 PDT 2012


Module: telepathy-rakia
Branch: master
Commit: 48e2310d2d0f10b2107b91c2235c5ccc703008b6
URL:    http://cgit.freedesktop.org/telepathy/telepathy-rakia/commit/?id=48e2310d2d0f10b2107b91c2235c5ccc703008b6

Author: Olivier Crête <olivier.crete at collabora.com>
Date:   Mon Mar 26 17:20:59 2012 -0400

Don't wait for codecs to publish Endpoint on incoming m=

We wait for the codecs to publish an Endpoint only if the candidates and
codecs have changed on an on-going call.

	with-session-bus-30231.pid

---

 rakia/sip-media.c              |    6 ++++--
 tests/twisted/voip/calltest.py |   18 ++++++++++--------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/rakia/sip-media.c b/rakia/sip-media.c
index 14c867c..3e5e7b3 100644
--- a/rakia/sip-media.c
+++ b/rakia/sip-media.c
@@ -911,8 +911,10 @@ rakia_sip_media_set_remote_media (RakiaSipMedia *media,
   if (transport_changed)
     {
       /* Make sure we stop sending before we use the new set of codecs
-       * intended for the new connection */
-      if (codecs_changed)
+       * intended for the new connection
+       * This only applies if we were already sending to somewhere else before.
+       */
+      if (codecs_changed && old_media)
         {
           priv->push_candidates_on_new_codecs = TRUE;
           if (priv->remote_candidates != NULL)
diff --git a/tests/twisted/voip/calltest.py b/tests/twisted/voip/calltest.py
index 9af078c..f038d72 100644
--- a/tests/twisted/voip/calltest.py
+++ b/tests/twisted/voip/calltest.py
@@ -140,7 +140,12 @@ class CallTest:
         assertEquals([], smedia_props['STUNServers'])
         assertEquals([], smedia_props['RelayInfo'])
         assertEquals(True, smedia_props['HasServerInfo'])
-        assertEquals([], smedia_props['Endpoints'])        
+        if incoming:
+            assertLength(1, smedia_props['Endpoints'])
+            self.check_endpoint(content, smedia_props['Endpoints'][0])
+
+        else:
+            assertEquals([], smedia_props['Endpoints'])        
         assertEquals(False, smedia_props['ICERestartPending'])
 
     def get_md(self, content):
@@ -200,13 +205,9 @@ class CallTest:
                                  cmedia_props['MediaDescriptionOffer'][0])
             md.Accept(self.context.get_audio_md_dbus(self.remote_handle))
             o = self.q.expect_many(
-                EventPattern('dbus-signal', signal='EndpointsChanged'),
                 EventPattern('dbus-signal', signal='MediaDescriptionOfferDone'),
                 EventPattern('dbus-signal', signal='LocalMediaDescriptionChanged'),
                 EventPattern('dbus-signal', signal='RemoteMediaDescriptionsChanged'))
-            assertLength(1, o[0].args[0])
-            assertEquals([], o[0].args[1])
-            self.check_endpoint(content, o[0].args[0][0])
 
         return content                   
 
@@ -383,10 +384,12 @@ class CallTest:
         ack_cseq = "%s ACK" % self.invite_event.cseq.split()[0]
         del self.invite_event
 
+        events = self.content_dbus_signal_event('NewMediaDescriptionOffer') + \
+            self.stream_dbus_signal_event('EndpointsChanged')
         o = self.q.expect_many(
             EventPattern('sip-ack', cseq=ack_cseq),
             # Call accepted
-            *self.content_dbus_signal_event('NewMediaDescriptionOffer'))
+            *events)
 
         for i in o:
             if i.type != 'dbus-signal' or \
@@ -397,8 +400,7 @@ class CallTest:
 
         o = self.q.expect_many(
             # Call accepted
-            EventPattern('dbus-signal', signal='CallStateChanged'),
-            *self.stream_dbus_signal_event('EndpointsChanged'))
+            EventPattern('dbus-signal', signal='CallStateChanged'))
 
         assertEquals(cs.CALL_STATE_ACCEPTED, o[0].args[0])
 



More information about the telepathy-commits mailing list