Example #1
0
        //-------------------------------------------------------------------------------------------
        public string GetVariable(ref FreeSWITCH.Native.ManagedSession session, string settingName, string expectedType, string regex)
        {
            Debug(ref session, session.HookState.ToString());
               string value = session.GetVariable(settingName);
               if (!String.IsNullOrWhiteSpace(value))
               {
                    session.Execute("log", "INFO Loaded pre-set variable \"" + settingName + "\": '" + value + "'");
                    return value;
               }

               string entered = null;
               while (true)
               {
                    entered = PlayAndGet(ref session, 1, 20, settingName, null).Replace("*", ".");
                    WriteToLog("Entered: " + entered);
                    if (regex == null || Regex.Match(entered, regex).Success)
                    {
                         session.Execute("Playback", @"receivepayment\YouEntered.wav");
                         session.Execute("Say", "en " + expectedType + " masculine " + entered);

                         if (PlayAndGet(ref session, 1, 1, "IsThisCorrect", null) == "1")
                         {
                              session.Execute("Playback", @"receivepayment\ThankYou.wav");
                              break;
                         }
                    }
                    else
                    {
                         string failFile = @"receivepayment\" + settingName + "-TryAgain.wav";
                         session.Execute("Playback", failFile);
                    }
               }
               return entered;
        }
Example #2
0
 //-------------------------------------------------------------------------------------------
 public string PlayAndGet(ref FreeSWITCH.Native.ManagedSession session, int digits, string promptFile, string failFile)
 {
     if (session.getState() == _executeState)
             return session.PlayAndGetDigits(digits, digits, _maxTries, _timeout, "", promptFile, failFile, "", "response", 10000, "0");
        else
             return string.Empty;
 }
Example #3
0
        //-------------------------------------------------------------------------------------------
        private void FreeSwitch_Events(FreeSWITCH.EventBinding.EventBindingArgs args)
        {
            switch_event evt = args.EventObj;
               try
               {
                    Console.WriteLine("Event " + evt.event_id + ":" + Path.GetFileName(evt.last_header.value));// +blockConsole.Text
               }
               catch { }

               if (evt.event_id.ToString() == "SWITCH_EVENT_CUSTOM" &&
                   evt.last_header.value == "UP")
                    Console.WriteLine("Switch Started");
        }
Example #4
0
        //-------------------------------------------------------------------------------------------
        public string PlayAndGet(ref FreeSWITCH.Native.ManagedSession session, int mindigits, int maxdigits, string promptFile, string regex)
        {
            string playFile = @"receivepayment\" + promptFile + ".wav";
               string failFile = @"receivepayment\" + promptFile + "-TryAgain.wav";

               if (session.getState() == "CS_EXECUTE")
               {
                    return session.PlayAndGetDigits(mindigits, maxdigits, 5, 7000, "#", playFile, failFile, regex, "response", 10000, null);
               }
               else
               {
                    throw new Exception("Call is not in the proper state: " + session.getState());
               }
        }
Example #5
0
 //-------------------------------------------------------------------------------------------
 private string xml_search(FreeSWITCH.SwitchXmlSearchBinding.XmlBindingArgs args)
 {
     return null;
 }
Example #6
0
		private string xml_search(FreeSWITCH.SwitchXmlSearchBinding.XmlBindingArgs args) {
			if (args.KeyName != "name" || args.Section != "configuration" || args.TagName != "configuration")
				return null;
			switch (args.KeyValue) {
				case "sofia.conf":
					return generate_xml_config(args.KeyValue, "Sofia Endpoint", sofia.gen_config);
				case "event_socket.conf":
					return generate_xml_config(args.KeyValue, "Socket Client", event_socket.gen_config);
				case "conference.conf":
					return generate_xml_config(args.KeyValue, "Audio Conference", conference.gen_config);
			}
			return null;

		}
Example #7
0
		private void event_handler(FreeSWITCH.EventBinding.EventBindingArgs args) {
			if (Application.Current == null)//can happen during shutdown
				return;
			if (BroadcastHandler == null)
				BroadcastHandler = new BroadcastEventDel(BroadcastEvent);
			Application.Current.Dispatcher.BeginInvoke(BroadcastHandler, new object[] { new FSEvent(args.EventObj) });
		}
Example #8
0
 private string xml_search(FreeSWITCH.SwitchXmlSearchBinding.XmlBindingArgs args)
 {
     if (args.KeyName != "name" || args.Section != "configuration" || args.TagName != "configuration" || args.KeyValue != "sofia.conf")
         return null;
     String config = sofia_config;
     config = config.Replace("SIP_SERVER", sip_server + ":" + sip_port);
     config = config.Replace("SIP_USERNAME", sip_user);
     config = config.Replace("SIP_PASSWORD", sip_password);
     return config;
 }
Example #9
0
 private void event_handler(FreeSWITCH.EventBinding.EventBindingArgs args)
 {
     OnSofiaEvent(args.EventObj);
 }
Example #10
0
 //-------------------------------------------------------------------------------------------
 public void Debug(ref FreeSWITCH.Native.ManagedSession session, string output)
 {
     session.Execute("log", "INFO " + output);
 }
Example #11
0
 private void event_handler(FreeSWITCH.EventBinding.EventBindingArgs args)
 {
     Dispatcher.BeginInvoke(del, new object[]{args.EventObj });
 }