I found the solution.
The problem was that by default our proxys producer is registered with streaming = True
which is not what we want.
The following line will register our proxys producer with streaming = False
ProducerConsumerProxy.iAmStreaming = False
The rest is the same.
I think adding an argument to ProducerConsumerProxy.__init__ about streaming would
be a good idea.
proxy = ProducerConsumerProxy(self.client.transport
dd = FileSender().beginFileTransfer(self.outgoingFile, proxy)