Skip to content

[BUG] SDPMid and SDPMLineIndex are consistently null #41460

@samadDotDev

Description

@samadDotDev

Reproduction steps

Even with multiple media streams present in the SDP, the SDK is generating and sending the ICE candidates with null SDPMid and SDPMLineIndex.

Client/controller end:

[DMG] 		{
[DMG] 			CommandPathIB =
[DMG] 			{
[DMG] 				EndpointId = 0x0,
[DMG] 				ClusterId = 0x554,
[DMG] 				CommandId = 0x2,
[DMG] 			},
[DMG]
[DMG] 			CommandFields =
[DMG] 			{
[DMG] 				0x0 = 20 (unsigned),
[DMG] 				0x1 = [
[DMG]
[DMG] 					{
[DMG] 						0x0 = "a=candidate:4 1 UDP 2130705663 fd70:deef:425d:dc32:2ecf:67ff:fe38:d582 33092 typ host" (85 chars),
[DMG] 						0x1 = NULL
[DMG] 						0x2 = NULL
[DMG] 					},
[DMG] 					{
[DMG] 						0x0 = "a=candidate:5 1 UDP 2130705407 fd7a:115c:a1e0::cb01:2e5e 33092 typ host" (71 chars),
[DMG] 						0x1 = NULL
[DMG] 						0x2 = NULL
[DMG] 					},
[DMG] 					{
[DMG] 						0x0 = "a=candidate:1 1 UDP 2122317823 192.168.0.126 33092 typ host" (59 chars),
[DMG] 						0x1 = NULL
[DMG] 						0x2 = NULL
[DMG] 					},
[DMG] 					{
[DMG] 						0x0 = "a=candidate:2 1 UDP 2122317567 192.168.0.136 33092 typ host" (59 chars),
[DMG] 						0x1 = NULL
[DMG] 						0x2 = NULL
[DMG] 					},
[DMG] 					{
[DMG] 						0x0 = "a=candidate:3 1 UDP 2122317311 100.84.46.55 33092 typ host" (58 chars),
[DMG] 						0x1 = NULL
[DMG] 						0x2 = NULL
[DMG] 					},
[DMG] 				],
[DMG] 			},
[DMG] 		},

Server/device end:


[1760490774.755] [4286:4286] [EM] >>> [E:8136r S:62246 M:98182316] (S) Msg RX from 1:C76D490DCFC47A9A [99C8] to 1DA78709B6782CD0 --- Type 0001:08 (IM:InvokeCommandRequest) (B:1547)
[1760490774.755] [4286:4286] [EM] Handling via exchange: 8136r, Delegate: 0xaaaadd7af188
[1760490774.755] [4286:4286] [DMG] InvokeRequestMessage =
[1760490774.755] [4286:4286] [DMG] {
[1760490774.755] [4286:4286] [DMG] 	suppressResponse = false,
[1760490774.755] [4286:4286] [DMG] 	timedRequest = false,
[1760490774.755] [4286:4286] [DMG] 	InvokeRequests =
[1760490774.755] [4286:4286] [DMG] 	[
[1760490774.755] [4286:4286] [DMG] 		CommandDataIB =
[1760490774.755] [4286:4286] [DMG] 		{
[1760490774.755] [4286:4286] [DMG] 			CommandPathIB =
[1760490774.755] [4286:4286] [DMG] 			{
[1760490774.755] [4286:4286] [DMG] 				EndpointId = 0x1,
[1760490774.755] [4286:4286] [DMG] 				ClusterId = 0x553,
[1760490774.755] [4286:4286] [DMG] 				CommandId = 0x4,
[1760490774.755] [4286:4286] [DMG] 			},
[1760490774.755] [4286:4286] [DMG]
[1760490774.755] [4286:4286] [DMG] 			CommandFields =
[1760490774.755] [4286:4286] [DMG] 			{
[1760490774.755] [4286:4286] [DMG] 				0x0 = 20 (unsigned),
[1760490774.755] [4286:4286] [DMG] 				0x1 = "v=0
o=- 8100482321213643854 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS ARDAMS1
m=audio 15212 UDP/TLS/RTP/SAVPF 111
c=IN IP4 54.89.79.97
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2854668272 1 udp 2122260223 10.247.89.185 41040 typ host generation 0 network-id 3 network-cost 10
a=candidate:2531825069 1 udp 1686052607 210.94.41.89 41040 typ srflx raddr 10.247.89.185 rport 41040 generation 0 network-id 3 network-cost 10
a=candidate:2629743448 1 udp 41885695 54.89.79.97 15212 typ relay raddr 210.94.41.89 rport 41040 generation 0 network-id 3 network-cost 10
a=ice-ufrag:oXso
a=ice-pwd:TOvSvMeokQX+XEUBHGT+VYwR
a=ice-options:trickle
a=fingerprint:sha-256 9D:6A:3A:88:E3:56:B5:54:FE:E7:38:58:89:14:F3:38:7A:06:65:95:91:58:8E:7F:86:2C:F8:22:82:4B:F5:8C
a=setup:active
a=mid:audio
a=sendrecv
a=msid:ARDAMS1 ARDAMSa0
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=ssrc:3853957952 cname:HkUVDbED/q69hD3U
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:oXso
a=ice-pwd:TOvSvMeokQX+XEUBHGT+VYwR
a=ice-options:trickle
a=fingerprint:sha-256 9D:6A:3A:88:E3:56:B5:54:FE:E7:38:58:89:14:F3:38:7A:06:65:95:91:58:8E:7F:86:2C:F8:22:82:4B:F5:8C
a=setup:active
a=mid:video
a=recvonly
a=rtcp-mux
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
" (1477 chars),
[1760490774.755] [4286:4286] [DMG] 			},
[1760490774.755] [4286:4286] [DMG] 			Ref = 0x0,
[1760490774.755] [4286:4286] [DMG] 		},
[1760490774.755] [4286:4286] [DMG]
[1760490774.755] [4286:4286] [DMG] 	],
[1760490774.755] [4286:4286] [DMG]
[1760490774.755] [4286:4286] [DMG] 	InteractionModelRevision = 11
[1760490774.755] [4286:4286] [DMG] },
[1760490774.755] [4286:4286] [DMG] AccessControl: checking f=1 a=c s=0xC76D490DCFC47A9A t=0x00000001 c=0x0000_0553 e=1 p=o r=i
[1760490774.755] [4286:4286] [DMG] AccessControl: allowed
[1760490774.755] [4286:4286] [DMG] AccessControl: checking f=1 a=c s=0xC76D490DCFC47A9A t=0x00000001 c=0x0000_0553 e=1 p=o r=i
[1760490774.755] [4286:4286] [DMG] AccessControl: allowed
[1760490774.755] [4286:4286] [DMG] Received command for Endpoint=1 Cluster=0x0000_0553 Command=0x0000_0004
[1760490774.755] [4286:4286] [ZCL] WebRTCTransportProvider: InvokeCommand called with CommandId=0x00000004
[1760490774.755] [4286:4286] [CAM] HandleProvideAnswer called with sessionId: 20
[1760490774.756] [4286:4286] [CAM] WebrtcTransport moving to [ SendingICECandidates ]
[1760490774.756] [4286:4286] [CAM] ScheduleICECandidatesSend called.
[1760490774.756] [4286:4286] [DMG] Command handler moving to [NewRespons]
[1760490774.756] [4286:4286] [DMG] Command handler moving to [ Preparing]
[1760490774.756] [4286:4286] [DMG] Command handler moving to [AddingComm]
[1760490774.756] [4286:4286] [DMG] Command handler moving to [AddedComma]
[1760490774.756] [4286:4286] [DMG] Decreasing reference count for CommandHandlerImpl, remaining 1
[1760490774.756] [4286:4286] [DMG] Decreasing reference count for CommandHandlerImpl, remaining 0
[1760490774.756] [4286:4286] [DMG] Command handler moving to [AwaitingDe]
[1760490774.756] [4286:4286] [EM] <<< [E:8136r S:62246 M:60956112] (S) Msg TX from 1DA78709B6782CD0 to 1:C76D490DCFC47A9A [99C8] [TCP:[fe80::7d42:3274:362f:6df1%eth0]:60732] --- Type 0001:09 (IM:InvokeCommandResponse) (B:67)
[1760490774.756] [4286:4286] [DMG] Command response sender moving to [AllInvokeR]
[1760490774.756] [4286:4286] [CAM] Sending ICECandidates command to node C76D490DCFC47A9A
[1760490774.756] [4286:4286] [CSM] FindOrEstablishSession: PeerId = [1:C76D490DCFC47A9A]
[1760490774.756] [4286:4286] [CSM] FindOrEstablishSession: No existing OperationalSessionSetup instance found
[1760490774.756] [4286:4286] [DIS] Found an existing secure session to [1:C76D490DCFC47A9A]!
[1760490774.756] [4286:4286] [DIS] OperationalSessionSetup[1:C76D490DCFC47A9A]: State change 1 --> 5
[1760490774.756] [4286:4286] [CAM] CASE session established, sending command with Command Type: 3, for sessionID: 20
[1760490774.756] [4286:4286] [DMG] ICR moving to [AddingComm]
[1760490774.756] [4286:4286] [DMG] ICR moving to [AddedComma]
[1760490774.756] [4286:4286] [EM] <<< [E:22944i S:62246 M:60956113] (S) Msg TX from 1DA78709B6782CD0 to 1:C76D490DCFC47A9A [99C8] [TCP:[fe80::7d42:3274:362f:6df1%eth0]:60732] --- Type 0001:08 (IM:InvokeCommandRequest) (B:443)

Notice the video & audio stream tags in the SDP, yet the ICE candidates sent to the controller are not associated with either of those tags.

Bug prevalence

Consistent

GitHub hash of the SDK that was being used

a7245f8

Platform

other

Platform Version(s)

No response

Anything else?

No response

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions