I am developing a bot for Skype channel, which can send proactive messages.
I followed the example project https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/16.proactive-messages , and this works for my need.
I host my bot on a shared hosting service, not Azure.
I registered my bot in Azure Channel Registration, tested on skype. Bot responds to me, and when i send request to proactive endpoint, i get proactive message. Everything is fine.
Then i realized, after some time, proactive request get 500 (Internal Server Error). After that, i typed something to bot from skype, then send proactive request again, bot sended the proactive message.
I investigated this issue, and found two things. First, enable AlwaysOn within IIS, but i am on shared hosting, i can't do that. Second, send some requests to bot regularly to keep bot alive.
Than i noticed, i can do this with DirectLine channel. I set up my code to start conversation, send some message, and receive it before i send proactive notification. It was easy to start conversation from DirectLine, i sended a message, and i received response. Since this is a request to bot, i think this can solve my 500(Internal Server Error) response status with proactive. But it didn't.
I can only receive proactive messages in Skype, only if i type something to bot from skype in short period of time. Otherwise, Skype proactive message request gets 500 error.
I don't know how to get this done.