Exemplo n.º 1
0
        private async Task ProcessEvent(AnswerEvent ev, TinyIoCContainer container)
        {
            var phoneNumber      = container.Resolve <string>("phoneNumber");
            var agentPhoneNumber = container.Resolve <string>("agentPhoneNumber");

            if (ev.From == phoneNumber && ev.To == agentPhoneNumber && !string.IsNullOrEmpty(ev.Tag))
            {
                // "agent" answered call
                var ids            = ev.Tag.Split(':');
                var incomingCallId = ids[0];
                var conferenceId   = ids[1];
                var conference     = await Conference.Get(conferenceId);

                var incomingCall = await Call.Get(incomingCallId);

                //join it to the conference
                await conference.CreateMember(new Dictionary <string, object>
                {
                    { "callId", ev.CallId }
                });

                //answer incoming call (to the app number)
                await incomingCall.AnswerOnIncoming();

                //and join this call to the conference too
                await conference.CreateMember(new Dictionary <string, object>
                {
                    { "callId", incomingCallId }
                });
            }
        }