This page describes the flow of the messages for an incoming call. The flow is the same no matter the protocol used by the incoming call or to which protocol the call will go to.
Incoming Call Setup
Flow of messages:
When a channel detects an incoming call(1), it sends a call.route(2) message for a decision on where the call should be routed to. The call.route message maps a called number to a call target.
When the call target is known, the incoming channel attaches its CallEndPoint to a call.execute message(4). On receiving this message, the destination channel connects its own CallEndPoint to the CallEndPoint of the incoming channel. While waiting for call acceptance, the destination channel may send call.ringing(6). On call acceptance call.answered(7) is sent.
During the call
During the call chan.dtmf messages(8,9) may be sent in both directions.
When the incoming channel detects hangup(10), it disconnects its CallEndPoint. This results in chan.disconnected and eventually chan.hangup messages (not included in the diagram) sent by both channels.