Hi 추준엽
I see two slightly different use cases
1- input timeout management
bot ask something to user, but this do not reply (for some seconds as in your example).
2- “push notification” / management
how can the bot init a “new” conversation without a previous call flow?
ChatScript is a synchronous system, reacting for each incoming request, without any a priori timing logic.
As Bruce suggested, you have to manage any time events logic with a layer external to CS engine.
user messages
^
|
v
.---------------------. .------------------.
| intermediate layer |<----| events generator |
.---------------------. .------------------.
^
| user messages + OOB events
v
.----------------------------------------.
| CS |
.----------------------------------------.
In your example, the layer have to manage a callback function that, after N second since last user message, send a “fake user message” OOB message to CS like
[5 seconds passed]
and CS script have to manage a specific pattern like
u: ( [5 seconds timeout] )
# some logic to manage timeout, based on context (that could be tricky)
what your name?
In case of an event due to some application logic (let say some news to communicate to user) the behaviour is not so different: the intermediate layer have to send an OOB message to CS bot, like:
[news: bla bla bla]
and CS script have to manage a specific pattern like
u: ( [news: _*] )
_0