Пример #1
0
// Whether or not the SqldbResource is ready for use by a Sqldb.
bool SqldbResource::isReadyToStart(UtlString& missingResource)
{
   bool dbIsReady;

   // Check to ensure that we can connect to the database.
   OdbcHandle dbHandle = odbcConnect(mDbName, mServer, mUser, mDbDriver, mPassword);
   if (dbHandle)
   {
      odbcDisconnect(dbHandle);
      OsSysLog::add(FAC_SUPERVISOR, PRI_INFO, "SqldbResource::isReadyToStart "
                     "Successfully connected to database '%s'",
                     mDbName.data());
      dbIsReady = true;
   }
   else
   {
      OsSysLog::add(FAC_SUPERVISOR, PRI_ERR, "SqldbResource::isReadyToStart "
                     "Unable to connect to database '%s'",
                     mDbName.data());
      missingResource = "";
      appendDescription(missingResource);
      dbIsReady = false;
   }

   return dbIsReady;
}
bool CallStateEventWriter_DB::openLog()
{
   bool bRet = false;

   if (!mbWriteable)
   {
      if ((mHandle=odbcConnect(mLogName, mLogLocation, mLogUserName, mLogDriver, mLogPassword)) != NULL)
      {
         Os::Logger::instance().log(FAC_CDR, PRI_DEBUG,
                       "%s::openLog connected to database %s", ModuleName, mLogName.data());
         mbWriteable = true;
         bRet = true;
      }
      else
      {
         Os::Logger::instance().log(FAC_CDR, PRI_ERR,
                       "%s::openLog connection to database %s failed",
                       ModuleName, mLogName.data());
      }
   }
   else
   {
     Os::Logger::instance().log(FAC_CDR, PRI_ERR,
                   "%s::openLog log %s already open", ModuleName, mLogName.data());
   }
   return bRet;
}
Пример #3
0
 void testOdbcConnect()
    {
       OdbcHandle handle = NULL;
     
       CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                          "localhost",
                                          POSTGRESQL_USER,
                                          "{PostgreSQL}"))!=NULL);
       
       if (handle)
       {
          CPPUNIT_ASSERT(odbcDisconnect(handle));
       }
    }
Пример #4
0
 void testOdbcValidateObserverData()
    {
       OdbcHandle handle = NULL;
       char sqlStatement[256];
    
       CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                          "localhost",
                                          POSTGRESQL_USER,
                                          "{PostgreSQL}"))!=NULL);
       
       if (handle)
       {
          databaseWrite(handle);
          int cols;            
          
          // Get data from call_state_observer_events
          sprintf(sqlStatement, "SELECT * FROM observer_state_events;");
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
          
          CPPUNIT_ASSERT((cols=odbcResultColumns(handle)) == 6);
          
          CPPUNIT_ASSERT(odbcGetNextRow(handle));
          
          char buffer[256];
          
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0);
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "0") == 0);
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256));
          // When returning a timestamp as string data the fractional component
          // is truncated - this is expected behavior
          CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 12:59:00") == 0);            
   
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "101") == 0);
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 6, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "AuthProxyCseObserver") == 0);    
                         
          CPPUNIT_ASSERT(odbcDisconnect(handle));                           
       }
    }
Пример #5
0
   void tearDown()
      {
         OdbcHandle handle = NULL;
         
         CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                            "localhost",
                                            POSTGRESQL_USER,
                                            "{PostgreSQL}"))!=NULL);
         if (handle)
         {                                                     
            char sqlStatement[256];            
            // Clear tables
            sprintf(sqlStatement, "DELETE FROM call_state_events *;");
            CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
            sprintf(sqlStatement, "DELETE FROM observer_state_events *;");
            CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));             
         }
#ifdef ODBC_LOGGING         
         OsSysLog::flush();
#endif         
      }
Пример #6
0
   void testOdbcValidateEventData()
      {
         OdbcHandle handle = NULL;
         char sqlStatement[256];
      
         CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                            "localhost",
                                            POSTGRESQL_USER,
                                            "{PostgreSQL}"))!=NULL);
         
         if (handle)
         {
            databaseWrite(handle);
            
            int cols;           
          
            // Get data from call_state_events
            sprintf(sqlStatement, "SELECT * FROM call_state_events;");
            CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
            
            CPPUNIT_ASSERT((cols=odbcResultColumns(handle)) == 17);   

            CPPUNIT_ASSERT(odbcGetNextRow(handle));
            
            char buffer[256];            

            // First record
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "1") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256));
            // When returning a timestamp as string data the fractional component
            // is truncated - this is expected behavior
            CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 13:00:00") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "R") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 7, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "call-111111") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 8, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "12345") == 0);    
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 9, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "67890") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 10, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 11, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);                                       
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 12, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.1.71") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 13, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "refer-to") == 0);   
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 14, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "referred-by") == 0);                                                   
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 15, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "0") == 0);                           
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 16, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "No Reason") == 0);                           
            
            CPPUNIT_ASSERT(odbcGetNextRow(handle));            

            // Second record            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "2") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256));
            // When returning a timestamp as string data the fractional component
            // is truncated - this is expected behavior
            CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 13:00:10") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "S") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 7, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "call-111112") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 8, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "54321") == 0);    
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 9, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "09876") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 10, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 11, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);                                       
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 12, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.71") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 13, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "refer-to-2") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 14, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "referred-by-2") == 0);                  
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 15, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "0") == 0);                           
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 16, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "No Reason-2") == 0);                                       
            
            // End of rows 
            CPPUNIT_ASSERT(!odbcGetNextRow(handle));
           
            CPPUNIT_ASSERT(odbcDisconnect(handle));
         }
      }