 
   _handleAudioEnabled: (desiredState, callback) =>
     return callback() unless _.has desiredState, 'audioEnabled'
-    return @Lync.unmute callback if desiredState.audioEnabled
-    return @Lync.mute callback
+    @Lync.getState null, (error, state) =>
+      console.log 'state', JSON.stringify state
+      return callback error if error?
+      return callback() if _.isEmpty state.conversationId
+
+      return @Lync.unmute state.conversationId, callback if desiredState.audioEnabled
+      return @Lync.mute state.conversationId, callback
 
   _handleMeetingUrl: (desiredState, callback) =>
     return callback() unless _.has desiredState, 'meetingUrl'

    return callback()

  onConfig: (device, callback) =>
    desiredState = _.get device, 'desiredState', {}

    @_handleMeetingUrl desiredState, (error) =>


    return @Lync.stopMeetings callback if _.isEmpty meetingUrl

    @Lync.getState null, (error, state) =>
      return callback error if error?
      return callback() if meetingUrl == _.get(state, 'meetingUrl')
      @Lync.joinMeeting meetingUrl, callback
