Stream problem on ICE reINVITE?

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

 



Hi all

I am experiencing a problem to which I have no answer from this list yet.
Basically, I am using ICE, and the ICE procedures seem to run OK (I can 
see INVITE and reINVITE being exchanged successfully, and the ICE 
connectivity checks as well).
I can also say that the IP/Ports negotiated in  the initial offer / 
answer (relayed candidates) are different from the ones negotiatedin the 
subsequent offer / answer.
I can even hear sound from caller to answerer and vice-versa.

However, it seems to me that there is a problem in *answerer*: it seems 
like its stream negotiated in the initial offer / answer is not closed 
when the re-INVITE occours! Furthermore, it is not closed even when the 
call is terminated (BYE).


Here we can see the problematic stream (strm181D08AC) creation, in 
Initial Offer / Answer, after 180 Ringing, but before 200 OK:

12:27:37.999   strm181D08AC VAD temporarily disabled
 12:27:38.016          rtp.c pjmedia_rtp_session_init: ses=181D0F94, 
default_pt=4, ssrc=0x18be6784
 12:27:38.031          rtp.c pjmedia_rtp_session_init: ses=181D166C, 
default_pt=4, ssrc=0x18be6784
 12:27:38.048       stream.c Stream strm181D08AC created
 12:27:38.064   strm181D08AC Encoder stream started
 12:27:38.084   strm181D08AC Decoder stream started
 12:27:38.353      pasound.c Opened device Microphone (Realtek High 
Defini(MME)/Speaker/HP (Realtek High Defini(MME) for recording and 
playback, sample rate=8000, ch=1, bits=16, 400 samples per frame, input 
latency=100 ms, output latency=100 ms
 12:27:38.370      pasound.c Starting Microphone (Realtek High Defini 
stream..
 12:27:38.390      pasound.c PA message: Pa_StartStream: waveInStart 
returned = 0x0.

 12:27:38.412      pasound.c Done, status=0
 12:27:38.450   echo_speex.c Speex Echo canceller/AEC created, 
clock_rate=8000, samples per frame=400, tail length=800 ms, latency=200 ms
 12:27:38.465      pasound.c Recorder thread started
 12:27:38.487   conference.c Port 1 (strm181D08AC) transmitting to port 
0 (Master/sound)
 12:27:38.524   conference.c Port 0 (Master/sound) transmitting to port 
1 (strm181D08AC)
 12:27:38.540   Master/sound Underflow, buf_cnt=0, will generate 1 frame



Below we can see the stream that works correctly (strm180768AC) being 
created, in Subsequent Offer / Answer, after reINVITE, but before 200 OK:
12:27:41.920   strm180768AC VAD temporarily disabled
12:27:41.972          rtp.c pjmedia_rtp_session_init: ses=18076F94, 
default_pt=4, ssrc=0x2cd672ae
 12:27:42.005 stuntsx181A5D6 STUN client transaction created
 12:27:42.024          rtp.c pjmedia_rtp_session_init: ses=1807766C, 
default_pt=4, ssrc=0x2cd672ae
 12:27:42.064 stuntsx181A5D6 STUN sending message (transmit count=1)
 12:27:42.087       stream.c Stream strm180768AC created
 12:27:42.107 ICEVoiceTransp Check 4: [2] 
172.18.0.51:55806-->172.18.0.72:1192: state changed from Frozen to In 
Progress
 12:27:42.126   strm180768AC Encoder stream started
 12:27:42.171   strm180768AC Decoder stream started
 12:27:42.154 ICEVoiceTransp Performing delayed triggerred check for 
component 2
 12:27:42.172 ICEVoiceTransp Triggered check for check 4 not performed 
because it's in progress. Retransmitting
 12:27:42.221 stuntsx181A5D6 STUN sending message (transmit count=2)
 12:27:42.463      pasound.c Opened device Microphone (Realtek High 
Defini(MME)/Speaker/HP (Realtek High Defini(MME) for recording and 
playback, sample rate=8000, ch=1, bits=16, 400 samples per frame, input 
latency=100 ms, output latency=100 ms
 12:27:42.482      pasound.c Starting Microphone (Realtek High Defini 
stream..
 12:27:42.495   strm181D08AC RTP recv() error: Connection reset by peer 
(WSAECONNRESET) [err:130054]
 12:27:42.538      pasound.c PA message: Pa_StartStream: waveInStart 
returned = 0x0.

 12:27:42.574   Master/sound 200 samples reduced, buf_cnt=1865
 12:27:42.598   Master/sound Buffer size adjusted from 2065 to 1865 
(eff_cnt=1500)
 12:27:42.617      pasound.c Done, status=0
 12:27:42.627      pasound.c Recorder thread started
 12:27:42.669   echo_speex.c Speex Echo canceller/AEC created, 
clock_rate=8000, samples per frame=400, tail length=800 ms, latency=200 ms
 12:27:42.681      pasound.c Player thread started
 12:27:42.704   conference.c Port 2 (strm180768AC) transmitting to port 
0 (Master/sound)
 12:27:42.752   conference.c Port 0 (Master/sound) transmitting to port 
2 (strm180768AC)


After the subsequent offer / answer exchange, all I can see about the 
problematic stream are a lot of connection-error related messages (which 
make some sense, as the other endpoint is no longer valid, as a new 
communication address/port has been negotiated):
strm181D08AC RTP recv() error: Connection reset by peer (WSAECONNRESET) 
[err:130054]


When the call ends, I can see that the stream that works correctly is 
closed:
 12:28:53.726    tsx1803A85C Incoming Response msg 100/BYE/cseq=15724 
(rdata0C44305C) in state Calling
 12:28:53.762    aec14512E80  AEC Info: prefetching (first seq=485)
 12:28:53.813    aec15DF3E80  AEC Info: prefetching (first seq=402)
 12:28:53.876   Master/sound 662 samples reduced, buf_cnt=1635
 12:28:53.877   conference.c Port 2 (strm180768AC) stop transmitting to 
port 0 (Master/sound)
 12:28:53.936   Master/sound 320 samples reduced, buf_cnt=1715
 12:28:53.979   conference.c Port 0 (Master/sound) stop transmitting to 
port 2 (strm180768AC)
 12:28:54.012   Master/sound 216 samples reduced, buf_cnt=1899
 12:28:54.181      pasound.c Stopping stream..
 12:28:54.219      pasound.c PA message: WinMME StopStream: waiting for 
background thread.
 12:28:54.279      pasound.c PA message: WinMME StopStream: waiting for 
background thread.
 12:28:54.307      pasound.c Done, status=0
 12:28:54.279      pasound.c PA message: WinMME StopStream: waiting for 
background thread.
 12:28:54.307      pasound.c Done, status=0


Can someone help me understand why this happens?

Many thanks in advance
Pedro Gon?alves



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux