summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2012-03-26 17:20:59 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2012-03-26 17:20:59 -0400
commit48e2310d2d0f10b2107b91c2235c5ccc703008b6 (patch)
treeaccdfaed927d417be1da70bc316c0911f86b8797
parent363d9e01e86f9390ea9e2217e0a28f9cd4ce8d86 (diff)
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
-rw-r--r--rakia/sip-media.c6
-rw-r--r--tests/twisted/voip/calltest.py18
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])