 
   isRealtimeSessionActive: (id, callback) ->
 
-    kallback = =>
-      options = { title: @getRealtimeFileName id }
-      @rtm.fetchFileByTitle options, (err, file) =>
-        return callback no  if err
-
-        if file.result.items.length > 0
-        then callback yes, file
-        else callback no
-
-
-    if @rtm then kallback()
-    else
-      @rtm = new RealtimeManager
-      @rtm.ready => kallback()
+    title = @getRealtimeFileName id
+
+    @rtm or= new RealtimeManager
+    @rtm.ready => realtimeHelpers.isSessionActive @rtm, title, callback
 
 
   getCollaborationData: (callback = kd.noop) ->

      @isRealtimeSessionActive channel.id, (isActive, file) =>
        if isActive
          @whenRealtimeReady => @continuePrivateMessage callback
          return @loadCollaborationFile file.result.items[0].id

        @statusBar.share.show()
        @chat.emit 'CollaborationNotInitialized'

      kd.utils.killRepeat @pollInterval
      return

    id = @getSocialChannelId()

    @isRealtimeSessionActive id, (isActive) =>

      return  if isActive

