We are using PushSharp to send GCM (Google Android) Notifications. In the future we will also be using the IOS and WinPhone parts of the lib.
There are a few events like:
I have never seen these events triggered after quite some testing. I now suspect that the communication might be asynchronous, and that we might need some ports opened to the machine running the service that hosts PushSharp.
If that is the case, which ports should be forwarded and is there any way to configure or tweak the endpoints?
No inbound ports are required. GCM requires the normal HTTP or HTTPS outbound ports (for the HTTP GCM Connection Server. The GCM Cloud Connection Server is different, but I'm quite sure it doesn't require inbound ports either, and anyway, PushSharp is probably using the HTTP GCM Server). APNS requires outbound 2195 and 2196 ports.
The events you mentioned are probably triggered by PushSharp when it gets an error response from GCM or APNS (or, for APNS, when it gets device tokens from the Feedback Service). In GCM the communication is synchronous (assuming PushSharp uses the HTTP GCM Connection Server). In APNS the communication is asynchronous, but the error responses are read by the client (i.e. your 3rd party server) from the same socket used to send the messages, so the APNS server is not initiating any communication with your server.