Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Data;
- using MySql.Data.MySqlClient;
- using FreeSWITCH.Native;
- namespace FreeSWITCH.Managed.DP_Fxmx
- {
- public class DP_Fxmx : IAppPlugin
- {
- public void Run(AppContext context)
- {
- context.Session.HangupFunction = () => HandleHangup();
- context.Session.Answer();
- IDbConnection dbcon = dbConnect(context.Session);
- if( dbcon.State != ConnectionState.Open )
- return;
- int ret;
- do {
- ret = processStep(dbcon, context.Session);
- } while( ret == 1 );
- dbcon.Close();
- return;
- }
- public int processStep(IDbConnection dbcon, ManagedSession session)
- {
- /* Simply read the 'command' from our DB table, and process it appropriately. */
- session.PlayAndGetDigits(1, 4, 3, 20, "#", "ivr/ivr-welcome_to_freeswitch.wav", "", "", "test");
- return -1;
- }
- public void HandleHangup()
- {
- Log.WriteLine(LogLevel.Info, "Client hung up.");
- }
- public IDbConnection dbConnect(ManagedSession session)
- {
- IDbConnection dbcon;
- string dbType = session.GetVariable("db_type");
- string dbUser = session.GetVariable("db_username");
- string dbPass = session.GetVariable("db_password");
- string dbHost = session.GetVariable("db_hostname");
- string dbBase = session.GetVariable("db_database");
- string dbPort = session.GetVariable("db_port");
- if( dbType != "mysql" )
- {
- Log.WriteLine(LogLevel.Error, "Currently, only MySQL is supported.");
- return null;
- }
- string connectionString =
- "Server="+dbHost+";" +
- "Port="+dbPort+";" +
- "Database="+dbBase+";" +
- "User ID="+dbUser+";" +
- "Password="+dbPass+";" +
- "Pooling=true";
- dbcon = new MySqlConnection(connectionString);
- dbcon.Open();
- if( dbcon.State != ConnectionState.Open )
- {
- Log.WriteLine(LogLevel.Error,"Failed to open database.");
- return dbcon;
- }
- return dbcon;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement