[jitsi-dev] jingle protocol error


#1

Hi all,

Not sure if this is something for the developers list or users, but I presume this is the place where most protocol knowledge is to be found...

When I create a audio-call between pidgin and jingle all works well, but
When I try to setup an AV-call between pidgin and jingle I get an jingle-protocol error.

Of course AV-calls between identical product works ok, (so I expect each product to blame the other :wink:
But is there perhaps a change in the jingle-protocol-specification that either product has not implemented yet???
Or is this uncharted territory?

Kind regards, Hans

路路路

______________________________________________________________________
Dit bericht kan informatie bevatten die niet voor u is bestemd. Indien u niet de geadresseerde bent of dit bericht abusievelijk aan u is toegezonden, wordt u verzocht dat aan de afzender te melden en het bericht te verwijderen. De Staat aanvaardt geen aansprakelijkheid voor schade, van welke aard ook, die verband houdt met risico's verbonden aan het elektronisch verzenden van berichten.

This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. The State accepts no liability for damage of any kind resulting from the risks inherent in the electronic transmission of messages.


#2

Hi all,

Not sure if this is something for the developers list or users, but I
presume this is the place where most protocol knowledge is to be
found...

Yes, this one's OK.

When I create a audio-call between pidgin and jingle all works well,
but When I try to setup an AV-call between pidgin and jingle I get an
jingle-protocol error.

Of course AV-calls between identical product works ok, (so I expect
each product to blame the other :wink:

I don't think this is likely to happen. We'd just need to look at traces
and figure out what exactly is going on.

But is there perhaps a change in
the jingle-protocol-specification that either product has not
implemented yet??? Or is this uncharted territory?

Last time I checked pidgin did not support Jingle but only the Google
variant.

We also support that but when we first implemented it it turned out that
pidgin had a few other problems too but unfortunately I can't remember
what they were.

Having a look at the traces will hopefully refresh my memory. Could you
please send some over? We could maybe start a common discussion with the
pidgin folks.

Cheers,
Emil

Kind regards, Hans

______________________________________________________________________

Dit bericht kan informatie bevatten die niet voor u is bestemd. Indien u
niet de geadresseerde bent of dit bericht abusievelijk aan u is
toegezonden, wordt u verzocht dat aan de afzender te melden en het
bericht te verwijderen. De Staat aanvaardt geen aansprakelijkheid voor
schade, van welke aard ook, die verband houdt met risico's verbonden aan
het elektronisch verzenden van berichten.

路路路

On 10.09.12, 17:52, J.Witvliet@mindef.nl wrote:

This message may contain information that is not intended for you. If
you are not the addressee or if this message was sent to you by
mistake, you are requested to inform the sender and delete the
message. The State accepts no liability for damage of any kind
resulting from the risks inherent in the electronic transmission of
messages.

--
Emil Ivov, Ph.D. 67000 Strasbourg,
Project Lead France
Jitsi
emcho@jitsi.org PHONE: +33.1.77.62.43.30
http://jitsi.org FAX: +33.1.77.62.47.31


#3

Hi Emil,

See for further comment below...

路路路

-----Original Message-----

From: Emil Ivov [mailto:emcho@jitsi.org]

Sent: Saturday, September 15, 2012 10:44 AM
To: dev@jitsi.java.net
Cc: Witvliet, J, CDC/IV/DCOPS/I&S/HIN
Subject: [jitsi-dev] Re: jingle protocol error

On 10.09.12, 17:52, J.Witvliet@mindef.nl wrote:

When I create a audio-call between pidgin and jingle all works well,
but When I try to setup an AV-call between pidgin and jingle I get an
jingle-protocol error.

Of course AV-calls between identical product works ok, (so I expect
each product to blame the other :wink:

I don't think this is likely to happen. We'd just need to look at traces
and figure out what exactly is going on.

But is there perhaps a change in
the jingle-protocol-specification that either product has not
implemented yet??? Or is this uncharted territory?

Last time I checked pidgin did not support Jingle but only the Google
variant.

We also support that but when we first implemented it it turned out that
pidgin had a few other problems too but unfortunately I can't remember
what they were.

Having a look at the traces will hopefully refresh my memory. Could you
please send some over? We could maybe start a common discussion with the
pidgin folks.

Cheers,
Emil

Kind regards, Hans

______________________________________________________________________

-----Original Message-----

In spite of the configuration, pidgin refuses to log the event.
All I get the the pop-up for accepting an incoming call...

On Jitsi-side (where I initiate the AV-call) I get this in the log:
[hope you can detect something]

===========================================================================================================

13:50:40.208 INFO: impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.createOutgoingCall().267 creating outgoing call...
13:50:40.213 INFO: impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.createOutgoingCall().455 re.dingemanse@kc3219.kc.mindef.nl/17298622801347881023245407: jingle supported
13:50:40.214 INFO: impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.createOutgoingCall().470 Choose one is: re.dingemanse@kc3219.kc.mindef.nl/17298622801347881023245407 1
13:50:42.586 INFO: impl.protocol.jabber.IceUdpTransportManager.createIceAgent().172 Auto discovered harvester is null
13:50:42.593 INFO: impl.protocol.jabber.IceUdpTransportManager.createIceAgent().278 End gathering harvester within 8 ms
13:50:42.593 INFO: org.ice4j.ice.Agent.createMediaStream() Create media stream for audio
13:50:42.593 INFO: org.ice4j.ice.Agent.createComponent() Create component audio.1
13:50:42.594 INFO: org.ice4j.ice.Agent.gatherCandidates() Gather candidates for component audio.1
13:50:42.600 INFO: org.ice4j.ice.harvest.HostCandidateHarvester.harvest() End candidate harvest within 6 ms, for org.ice4j.ice.harvest.HostCandidateHarvester, component: 1
13:50:42.605 INFO: impl.protocol.jabber.JingleNodesHarvester.harvest().79 harvest Jingle Nodes
13:50:42.608 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest within 3 ms, for net.java.sip.communicator.impl.protocol.jabber.JingleNodesHarvester, component: 1
13:50:42.609 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.setEnabled() disabling harvester: net.java.sip.communicator.impl.protocol.jabber.JingleNodesHarvester@260aff5
13:50:42.609 INFO: org.ice4j.ice.harvest.StunCandidateHarvest.sendRequest() Failed to send BINDING-REQUEST(0x1)[attrib.count=2 len=24 tranID=0xB0EC10D43901F24A5D00311A] through /10.49.196.196:5030/udp to stun.jitsi.net:3478/udp
java.lang.IllegalArgumentException: unresolved address
聽聽聽聽聽聽聽聽at java.net.DatagramPacket.setSocketAddress(DatagramPacket.java:313)
聽聽聽聽聽聽聽聽at java.net.DatagramPacket.<init>(DatagramPacket.java:140)
聽聽聽聽聽聽聽聽at org.ice4j.stack.Connector.sendMessage(Connector.java:264)
聽聽聽聽聽聽聽聽at org.ice4j.stack.NetAccessManager.sendMessage(NetAccessManager.java:376)
聽聽聽聽聽聽聽聽at org.ice4j.stack.StunClientTransaction.sendRequest0(StunClientTransaction.java:299)
聽聽聽聽聽聽聽聽at org.ice4j.stack.StunClientTransaction.sendRequest(StunClientTransaction.java:277)
聽聽聽聽聽聽聽聽at org.ice4j.stack.StunStack.sendRequest(StunStack.java:424)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvest.sendRequest(StunCandidateHarvest.java:1206)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvest.startResolvingCandidate(StunCandidateHarvest.java:1313)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvester.startResolvingCandidate(StunCandidateHarvester.java:321)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvester.harvest(StunCandidateHarvester.java:237)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.CandidateHarvesterSet$CandidateHarvesterSetElement.harvest(CandidateHarvesterSet.java:419)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.CandidateHarvesterSet$1CandidateHarvesterSetTask.run(CandidateHarvesterSet.java:160)
聽聽聽聽聽聽聽聽at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
聽聽聽聽聽聽聽聽at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
聽聽聽聽聽聽聽聽at java.util.concurrent.FutureTask.run(FutureTask.java:166)
聽聽聽聽聽聽聽聽at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
聽聽聽聽聽聽聽聽at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
聽聽聽聽聽聽聽聽at java.lang.Thread.run(Thread.java:679)
13:50:42.609 INFO: org.ice4j.ice.harvest.StunCandidateHarvester.startResolvingCandidate() Failed to start resolving host candidate candidate:null 1 udp 0 10.49.196.196 5030 typ host
org.ice4j.StunException: unresolved address
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvest.sendRequest(StunCandidateHarvest.java:1227)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvest.startResolvingCandidate(StunCandidateHarvest.java:1313)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvester.startResolvingCandidate(StunCandidateHarvester.java:321)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvester.harvest(StunCandidateHarvester.java:237)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.CandidateHarvesterSet$CandidateHarvesterSetElement.harvest(CandidateHarvesterSet.java:419)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.CandidateHarvesterSet$1CandidateHarvesterSetTask.run(CandidateHarvesterSet.java:160)
聽聽聽聽聽聽聽聽at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
聽聽聽聽聽聽聽聽at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
聽聽聽聽聽聽聽聽at java.util.concurrent.FutureTask.run(FutureTask.java:166)
聽聽聽聽聽聽聽聽at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
聽聽聽聽聽聽聽聽at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
聽聽聽聽聽聽聽聽at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IllegalArgumentException: unresolved address
聽聽聽聽聽聽聽聽at java.net.DatagramPacket.setSocketAddress(DatagramPacket.java:313)
聽聽聽聽聽聽聽聽at java.net.DatagramPacket.<init>(DatagramPacket.java:140)
聽聽聽聽聽聽聽聽at org.ice4j.stack.Connector.sendMessage(Connector.java:264)
聽聽聽聽聽聽聽聽at org.ice4j.stack.NetAccessManager.sendMessage(NetAccessManager.java:376)
聽聽聽聽聽聽聽聽at org.ice4j.stack.StunClientTransaction.sendRequest0(StunClientTransaction.java:299)
聽聽聽聽聽聽聽聽at org.ice4j.stack.StunClientTransaction.sendRequest(StunClientTransaction.java:277)
聽聽聽聽聽聽聽聽at org.ice4j.stack.StunStack.sendRequest(StunStack.java:424)
聽聽聽聽聽聽聽聽at org.ice4j.ice.harvest.StunCandidateHarvest.sendRequest(StunCandidateHarvest.java:1206)
聽聽聽聽聽聽聽聽... 11 more
13:50:42.610 WARNING: org.ice4j.ice.harvest.StunCandidateHarvester.startResolvingCandidate() harvest did not start, removed: org.ice4j.ice.harvest.StunCandidateHarvest@c013862
13:50:42.610 INFO: org.ice4j.ice.harvest.StunCandidateHarvester.harvest() harvest / stream.component: STUN harvester for srvr: stun.jitsi.net:3478/udp / audio / 1found 0 candidates.
13:50:42.610 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest within 5 ms, for org.ice4j.ice.harvest.StunCandidateHarvester, component: 1
13:50:42.610 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.setEnabled() disabling harvester: STUN harvester for srvr: stun.jitsi.net:3478/udp
13:50:42.611 INFO: org.ice4j.ice.harvest.UPNPHarvester.harvest() Begin UPnP harvesting
13:50:44.113 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest within 1505 ms, for org.ice4j.ice.harvest.UPNPHarvester, component: 1
13:50:44.114 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.setEnabled() disabling harvester: org.ice4j.ice.harvest.UPNPHarvester@4b92d1d8
13:50:44.114 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest for all harvesters within 1513 ms, component: 1
13:50:44.115 INFO: org.ice4j.ice.Agent.createComponent() /fe80:0:0:0:3ed9:2bff:fe60:6d77:5030/udp (host)
13:50:44.115 INFO: org.ice4j.ice.Agent.createComponent() /10.49.196.196:5030/udp (host)
13:50:44.115 INFO: org.ice4j.ice.Agent.createComponent() Create component audio.2
13:50:44.115 INFO: org.ice4j.ice.Agent.gatherCandidates() Gather candidates for component audio.2
13:50:44.117 INFO: org.ice4j.ice.harvest.HostCandidateHarvester.harvest() End candidate harvest within 2 ms, for org.ice4j.ice.harvest.HostCandidateHarvester, component: 2
13:50:44.117 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest for all harvesters within 0 ms, component: 2
13:50:44.118 INFO: org.ice4j.ice.Agent.createComponent() /fe80:0:0:0:3ed9:2bff:fe60:6d77:5031/udp (host)
13:50:44.118 INFO: org.ice4j.ice.Agent.createComponent() /10.49.196.196:5031/udp (host)
13:50:44.118 INFO: org.ice4j.ice.Agent.createMediaStream() Create media stream for video
13:50:44.119 INFO: org.ice4j.ice.Agent.createComponent() Create component video.1
13:50:44.119 INFO: org.ice4j.ice.Agent.gatherCandidates() Gather candidates for component video.1
13:50:44.120 INFO: org.ice4j.ice.harvest.HostCandidateHarvester.harvest() End candidate harvest within 1 ms, for org.ice4j.ice.harvest.HostCandidateHarvester, component: 1
13:50:44.121 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest for all harvesters within 0 ms, component: 1
13:50:44.121 INFO: org.ice4j.ice.Agent.createComponent() /fe80:0:0:0:3ed9:2bff:fe60:6d77:5032/udp (host)
13:50:44.121 INFO: org.ice4j.ice.Agent.createComponent() /10.49.196.196:5032/udp (host)
13:50:44.121 INFO: org.ice4j.ice.Agent.createComponent() Create component video.2
13:50:44.122 INFO: org.ice4j.ice.Agent.gatherCandidates() Gather candidates for component video.2
13:50:44.132 INFO: org.ice4j.ice.harvest.HostCandidateHarvester.harvest() End candidate harvest within 10 ms, for org.ice4j.ice.harvest.HostCandidateHarvester, component: 2
13:50:44.132 INFO: org.ice4j.ice.harvest.CandidateHarvesterSet.harvest() End candidate harvest for all harvesters within 0 ms, component: 2
13:50:44.132 INFO: org.ice4j.ice.Agent.createComponent() /fe80:0:0:0:3ed9:2bff:fe60:6d77:5033/udp (host)
13:50:44.132 INFO: org.ice4j.ice.Agent.createComponent() /10.49.196.196:5033/udp (host)
13:50:44.133 INFO: impl.protocol.jabber.CallPeerMediaHandlerJabberImpl.harvestCandidates().1649 End candidate harvest within 1540 ms
13:50:46.256 INFO: org.ice4j.ice.Component.addRemoteCandidate() Add remote candidate for audio.2: /10.49.196.30:48341/udp
13:50:46.256 INFO: org.ice4j.ice.Component.addRemoteCandidate() Add remote candidate for audio.1: /10.49.196.30:41156/udp
13:50:46.256 INFO: org.ice4j.ice.Component.addRemoteCandidate() Add remote candidate for video.2: /10.49.196.30:59000/udp
13:50:46.256 INFO: org.ice4j.ice.Component.addRemoteCandidate() Add remote candidate for video.1: /10.49.196.30:53572/udp
13:50:46.257 INFO: org.ice4j.ice.Agent.startConnectivityEstablishment() Start ICE connectivity establishment
13:50:46.257 INFO: org.ice4j.ice.Agent.initCheckLists() Init checklist for stream audio
13:50:46.257 INFO: org.ice4j.ice.Agent.initCheckLists() Init checklist for stream video
13:50:46.258 INFO: org.ice4j.ice.Agent.startConnectivityEstablishment() Trigger checks for pairs that were received before running state
13:50:46.258 INFO: org.ice4j.ice.ConnectivityCheckClient.startChecks() Start connectivity checks!
13:50:46.377 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5030/udp -> /10.49.196.30:41156/udp (audio.1)
13:50:46.382 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair validated: /10.49.196.196:5030/udp -> /10.49.196.30:41156/udp (audio.1)
13:50:46.382 INFO: org.ice4j.ice.DefaultNominator.strategyNominateFirstValid() Nominate (first valid): /10.49.196.196:5030/udp -> /10.49.196.30:41156/udp (audio.1)
13:50:46.382 INFO: org.ice4j.ice.Agent.nominate() verify if nominated pair answer again
13:50:46.382 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:false
13:50:46.383 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5032/udp -> /10.49.196.30:53572/udp (video.1)
13:50:46.384 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair validated: /10.49.196.196:5032/udp -> /10.49.196.30:53572/udp (video.1)
13:50:46.384 INFO: org.ice4j.ice.DefaultNominator.strategyNominateFirstValid() Nominate (first valid): /10.49.196.196:5032/udp -> /10.49.196.30:53572/udp (video.1)
13:50:46.384 INFO: org.ice4j.ice.Agent.nominate() verify if nominated pair answer again
13:50:46.385 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:false
13:50:46.418 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5031/udp -> /10.49.196.30:48341/udp (audio.2)
13:50:46.418 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair validated: /10.49.196.196:5031/udp -> /10.49.196.30:48341/udp (audio.2)
13:50:46.419 INFO: org.ice4j.ice.DefaultNominator.strategyNominateFirstValid() Nominate (first valid): /10.49.196.196:5031/udp -> /10.49.196.30:48341/udp (audio.2)
13:50:46.419 INFO: org.ice4j.ice.Agent.nominate() verify if nominated pair answer again
13:50:46.419 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:false
13:50:46.423 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5033/udp -> /10.49.196.30:59000/udp (video.2)
13:50:46.423 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair validated: /10.49.196.196:5033/udp -> /10.49.196.30:59000/udp (video.2)
13:50:46.424 INFO: org.ice4j.ice.DefaultNominator.strategyNominateFirstValid() Nominate (first valid): /10.49.196.196:5033/udp -> /10.49.196.30:59000/udp (video.2)
13:50:46.424 INFO: org.ice4j.ice.Agent.nominate() verify if nominated pair answer again
13:50:46.424 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:false
13:50:46.458 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5030/udp -> /10.49.196.30:41156/udp (audio.1)
13:50:46.459 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:true
13:50:46.459 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Nomination confirmed for pair: /10.49.196.196:5030/udp -> /10.49.196.30:41156/udp (audio.1)
13:50:46.459 INFO: org.ice4j.ice.CheckList.handleNominationConfirmed() Selected pair for stream audio.1: /10.49.196.196:5030/udp -> /10.49.196.30:41156/udp (audio.1)
13:50:46.463 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5032/udp -> /10.49.196.30:53572/udp (video.1)
13:50:46.464 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:true
13:50:46.464 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Nomination confirmed for pair: /10.49.196.196:5032/udp -> /10.49.196.30:53572/udp (video.1)
13:50:46.464 INFO: org.ice4j.ice.CheckList.handleNominationConfirmed() Selected pair for stream video.1: /10.49.196.196:5032/udp -> /10.49.196.30:53572/udp (video.1)
13:50:46.499 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5031/udp -> /10.49.196.30:48341/udp (audio.2)
13:50:46.499 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:true
13:50:46.501 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Nomination confirmed for pair: /10.49.196.196:5031/udp -> /10.49.196.30:48341/udp (audio.2)
13:50:46.501 INFO: org.ice4j.ice.CheckList.handleNominationConfirmed() Selected pair for stream audio.2: /10.49.196.196:5031/udp -> /10.49.196.30:48341/udp (audio.2)
13:50:46.501 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() CheckList of stream audio is COMPLETED
13:50:46.504 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Pair succeeded: /10.49.196.196:5033/udp -> /10.49.196.30:59000/udp (video.2)
13:50:46.505 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() IsControlling: true USE-CANDIDATE:true
13:50:46.505 INFO: org.ice4j.ice.ConnectivityCheckClient.processSuccessResponse() Nomination confirmed for pair: /10.49.196.196:5033/udp -> /10.49.196.30:59000/udp (video.2)
13:50:46.505 INFO: org.ice4j.ice.CheckList.handleNominationConfirmed() Selected pair for stream video.2: /10.49.196.196:5033/udp -> /10.49.196.30:59000/udp (video.2)
13:50:46.505 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() CheckList of stream audio is COMPLETED
13:50:46.506 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() CheckList of stream video is COMPLETED
13:50:46.506 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() ICE state is COMPLETED
13:50:46.508 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() Harvester selected for audio.1 host
13:50:46.508 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() Harvester selected for audio.2 host
13:50:46.508 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() Harvester selected for video.1 host
13:50:46.509 INFO: org.ice4j.ice.Agent.checkListStatesUpdated() Harvester selected for video.2 host
13:50:46.880 SEVERE: impl.protocol.jabber.CallPeerMediaHandlerJabberImpl.throwOperationFailedException().2555 Remote party sent an invalid Jingle answer.
13:50:46.880 INFO: impl.protocol.jabber.CallPeerJabberImpl.processSessionAccept().597 Failed to process a session-accept
net.java.sip.communicator.service.protocol.OperationFailedException: Remote party sent an invalid Jingle answer.
聽聽聽聽聽聽聽聽at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.throwOperationFailedException(ProtocolProviderServiceJabberImpl.java:2558)
聽聽聽聽聽聽聽聽at net.java.sip.communicator.impl.protocol.jabber.CallPeerMediaHandlerJabberImpl.processContent(CallPeerMediaHandlerJabberImpl.java:1103)
聽聽聽聽聽聽聽聽at net.java.sip.communicator.impl.protocol.jabber.CallPeerMediaHandlerJabberImpl.processAnswer(CallPeerMediaHandlerJabberImpl.java:1253)
聽聽聽聽聽聽聽聽at net.java.sip.communicator.impl.protocol.jabber.CallPeerJabberImpl.processSessionAccept(CallPeerJabberImpl.java:592)
聽聽聽聽聽聽聽聽at net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.processJingleIQ(OperationSetBasicTelephonyJabberImpl.java:1064)
聽聽聽聽聽聽聽聽at net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.processPacket(OperationSetBasicTelephonyJabberImpl.java:913)
聽聽聽聽聽聽聽聽at org.jivesoftware.smack.Connection$ListenerWrapper.notifyListener(Connection.java:813)
聽聽聽聽聽聽聽聽at org.jivesoftware.smack.PacketReader$ListenerNotification.run(PacketReader.java:453)
聽聽聽聽聽聽聽聽at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
聽聽聽聽聽聽聽聽at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
聽聽聽聽聽聽聽聽at java.util.concurrent.FutureTask.run(FutureTask.java:166)
聽聽聽聽聽聽聽聽at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
聽聽聽聽聽聽聽聽at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
聽聽聽聽聽聽聽聽at java.lang.Thread.run(Thread.java:679)
13:50:46.881 INFO: org.ice4j.ice.Agent.free() Free ICE agent
13:50:46.881 INFO: org.ice4j.ice.Agent.runInStunKeepAliveThread() KeepAliveThread ends
13:50:46.882 INFO: org.ice4j.ice.Agent.free() remove streams
13:50:46.885 INFO: org.ice4j.ice.Agent.free() remove stream audio
13:50:46.885 INFO: org.ice4j.ice.Agent.free() remove stream video
13:50:46.886 INFO: org.ice4j.ice.Agent.free() ICE agent freed
13:50:49.509 INFO: org.ice4j.ice.Agent.run() ICE state is TERMINATED

Mind you, this is _only_ for an AV-call.
An ordinary audio-only call works (sort of :wink:

Kind regards, Hans

______________________________________________________________________
Dit bericht kan informatie bevatten die niet voor u is bestemd. Indien u niet de geadresseerde bent of dit bericht abusievelijk aan u is toegezonden, wordt u verzocht dat aan de afzender te melden en het bericht te verwijderen. De Staat aanvaardt geen aansprakelijkheid voor schade, van welke aard ook, die verband houdt met risico's verbonden aan het elektronisch verzenden van berichten.

This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. The State accepts no liability for damage of any kind resulting from the risks inherent in the electronic transmission of messages.


#4

Hello Hanz,

The log shows that Pidgin send an "invalid Jingle answer". Could you send us the ".pcap" file [0] corresponding to this log, or at least copy the XML of the Pidgin jingle answer (it might be a session-accept packet).

Best regards,
Vincent

[0] - https://jitsi.org/index.php/Documentation/FAQ#logs

路路路

On 9/17/12 2:07 PM, J.Witvliet@mindef.nl wrote:

13:50:46.880 SEVERE: impl.protocol.jabber.CallPeerMediaHandlerJabberImpl.throwOperationFailedException().2555 Remote party sent an invalid Jingle answer.

--
Vincent Lucas, Ph.D. Jitsi developer
chenzo@jitsi.org http://jitsi.org