@@ -106,14 +106,21 @@ def _setupListeners(self, peerConnection: RTCPeerConnection = None):
106106 # }); 
107107 # }; 
108108
109+  @peerConnection .on ('icegatheringstatechange' ) 
110+  def  peerconn_icegatheringstatechange ():
111+  if  peerConnection .iceGatheringState  ==  'complete' :
112+  log .warning ('Local ICE candidates gathered.' )
113+ 
109114 @peerConnection .on ('iceconnectionstatechange' ) 
110115 def  peerconn_oniceconnectionstatechange ():
111116 state_change  =  BaseEventEmitter ()
112117 @state_change .once ("failed" ) 
113-  def  on_failed ():
118+  def  on_failed (error = None ):
114119 log .warning (
115-  f"iceConnectionState is failed, " 
116-  "closing connections to {peerId}" 
120+  "\n  IceConnectionState failed with error %s " 
121+  "\n  Closing connections to peer id %s" ,
122+  error ,
123+  peerId 
117124 )
118125 self .connection .emit (
119126 ConnectionEventType .Error ,
@@ -148,7 +155,7 @@ def on_disconnected():
148155
149156 @state_change .once ("completed" ) 
150157 def  on_completed ():
151-  log .info (
158+  log .warning (
152159 'iceConnectionState completed for peer id %s' ,
153160 peerId 
154161 )
@@ -160,6 +167,10 @@ def on_completed():
160167 # peerconn_onicecandidate) 
161168 pass 
162169
170+  log .warning (
171+  'iceConnectionState event: %s' ,
172+  peerConnection .iceConnectionState 
173+  )
163174 # forward connection stage change event to local handlers 
164175 state_change .emit (peerConnection .iceConnectionState )
165176 # notify higher level connection listeners 
@@ -171,9 +182,8 @@ def on_completed():
171182 # Fired between offer and answer, so options should already be saved 
172183 # in the options hash. 
173184 @peerConnection .on ("datachannel" ) 
174-  def  peerconn_ondatachanel (evt ):
175-  log .info ("Received data channel." )
176-  dataChannel  =  evt .channel 
185+  def  peerconn_ondatachanel (dataChannel ):
186+  log .warning ("Received data channel %r" , dataChannel )
177187 connection  =  provider .getConnection (peerId , connectionId )
178188 connection .initialize (dataChannel )
179189
@@ -207,7 +217,10 @@ async def cleanup(self) -> None:
207217 dataChannelNotClosed  =  dataChannel .readyState  and  \
208218 dataChannel .readyState  !=  "closed" 
209219 if  peerConnectionNotClosed  or  dataChannelNotClosed :
210-  await  peerConnection .close ()
220+  try :
221+  await  peerConnection .close ()
222+  except  Exception  as  err :
223+  log .exception ('Error while closing connection' , err )
211224
212225 async  def  _makeOffer (self ):
213226 peerConnection  =  self .connection .peerConnection 
@@ -262,21 +275,23 @@ async def _makeAnswer(self) -> None:
262275 provider  =  self .connection .provider 
263276 try :
264277 answer  =  await  peerConnection .createAnswer ()
265-  log .info ('\n  Created answer: \n  %r' , answer )
266-  log .info ('\n  Connection options: %r' ,
267-  self .connection .options )
268278 sdpTransformFunction  =  \
269279 self .connection .options .get ('sdpTransform' , None )
270280 if  sdpTransformFunction  and  \
271281 callable (sdpTransformFunction ):
272282 answer .sdp  =  sdpTransformFunction (answer .sdp ) \
273283 or  answer .sdp 
274-  json_answer  =  object_to_string (answer )
284+  log .info ('\n  Created answer header: \n  %r' , answer )
285+  log .info ('\n  Connection options: %r' ,
286+  self .connection .options )
275287 try :
288+  log .info ('Gathering ICE candidates to complete answer...' )
276289 await  peerConnection .setLocalDescription (answer )
277-  log .info (f"Set localDescription: { answer }  " 
278-  f"for:{ self .connection .peer }  " )
279- 
290+  answer  =  peerConnection .localDescription 
291+  json_answer  =  object_to_string (answer )
292+  log .warning ('\n  Sending SDP ANSWER to peer id %s: \n  %r ' ,
293+  self .connection .peer ,
294+  json_answer )
280295 await  provider .socket .send ({
281296 'type' : ServerMessageType .Answer ,
282297 'payload' : {
@@ -299,12 +314,12 @@ async def handleSDP(self, type: str = None, sdp: str = None) -> None:
299314 rsd  =  RTCSessionDescription (type = type , sdp = sdp )
300315 peerConnection  =  self .connection .peerConnection 
301316 provider  =  self .connection .provider 
302-  log .info ( " Setting remote session description %r" , rsd )
317+  log .debug ( " \n   Setting remote session description  \n  %r" , rsd )
303318 try :
304319 await  peerConnection .setRemoteDescription (rsd )
305-  log .info ( ' Set remoteDescription type: %s'
306-  ' for peer: %r' ,
307-  type , self .connection .peer )
320+  log .debug ( ' \n   Set remoteDescription type: %s'
321+    ' \n   for peer: %r' ,
322+    type , self .connection .peer )
308323 if  type  ==  "offer" :
309324 await  self ._makeAnswer ()
310325 except  Exception  as  err :
0 commit comments