I am trying to integrate Wowza with a external CDN provider with Wowza as a origin RTMP server. Unfortunately we cannot go to any other architecture since we are heavily invested in the current CDN provider.
The issue I have is
1) Edge CDN connects to Wowza
a) Initial Handshake is OK
b) Wowza responds to connect('live') with success
c) Now edge CDN sends createstream() with negative number in the RTMP body
The issue I have is Wowza doesn't respond to this at all. Completely ignores the message and so the session setup fails at that. Time to time the edge CDN also send the same request with positive number. At that point Wowza responds and continues setup the session.
These are things I have tried so far.
1) extend createStream() via ModuleBase
Capture the negative number and make it a positive and using invokePrevious() continue the code. This makes Wowza respond to edge server request. However edge server doesn't continue since it doesn't know anything about the positive number.
Capture request and forcefully send a response via AMFDataItem object and invokePrevious() to continue the Wowza using the original negative number. This make wowza respond to the createStream() request with valid response, this makes the edge server respond with setBufferLength and Play() request. However Wowza doesn't respond since Wowza side of the session setup has continued due to the negative number.
I need some help with ideas what else can be done.
There is not much you can do on the Wowza side. The session appears to need to be a positive Int. I have tried a few connections to Wowza and unless it is positive the process will drop the connection.
You need to talk to your CDN provider and make them update the code to be a positive connection. Looking through all the information posted about the AMF format for clientid they only ever reference positive numbers.