ChannelResourceAnswer Method |
Namespace: VoiceElements.Client
static void s_TelephonyServer_NewCall(object sender, VoiceElements.Client.NewCallEventArgs e) { try { Log.Write("NewCall Arrival! DNIS: {0} ANI: {1} Caller ID Name: {2}", e.ChannelResource.Dnis, e.ChannelResource.Ani, e.ChannelResource.CallerIdName); // Immediately subscribe to disconnects (hang ups), unles you have a specific reason to not see these events. e.ChannelResource.Disconnected += new Disconnected(ChannelResource_Disconnected); Log.Write("Answering..."); // Use the channel resource passed in with the event args to answer the call. e.ChannelResource.Answer(); Log.Write("Calling My IVR Application"); // Call a class you have created which contains all the scripting and features of the voice interface for the call. // You will find that this class will nee references to the Telephony Server, Channel Resource and Log. You may add more depending on your application. MyIVRApplication ivrApp = new MyIVRApplication(s_TelephonyServer, e.ChannelResource, Log); // Call a method in your main telephony IVR class to execute your scripts ivrApp1.RunScript(); } catch (HangupException) { Log.Write("The Caller Hung Up."); } catch (Exception ex) { Log.WriteException(ex, "IvrApplication::NewCall"); } finally { try { // Unsubscribe the disconnected event. try { e.ChannelResource.Disconnected -= new Disconnected(ChannelResource_Disconnected); } catch { } // Force a Hangup for a safety net try { e.ChannelResource.Disconnect(); } catch { } // Always Dispose of the channel resource object you got along with the initial event for safety. try { e.ChannelResource.Dispose(); } catch { } Log.Write("Call complete."); } catch(Exception ex) { Log.WriteException(ex, "Error in finally block"); } } }