[Freeswitch-svn] [commit] r14016 - in freeswitch/trunk/contrib/mod/endpoints/mod_khomp: . src

FreeSWITCH SVN raulfragoso at freeswitch.org
Sat Jun 27 19:55:30 PDT 2009


Author: raulfragoso
Date: Sat Jun 27 21:55:30 2009
New Revision: 14016

Log:
Fixed the find_channel function;

Modified:
   freeswitch/trunk/contrib/mod/endpoints/mod_khomp/mod_khomp.cpp
   freeswitch/trunk/contrib/mod/endpoints/mod_khomp/src/khomp_pvt.cpp

Modified: freeswitch/trunk/contrib/mod/endpoints/mod_khomp/mod_khomp.cpp
==============================================================================
--- freeswitch/trunk/contrib/mod/endpoints/mod_khomp/mod_khomp.cpp	(original)
+++ freeswitch/trunk/contrib/mod/endpoints/mod_khomp/mod_khomp.cpp	Sat Jun 27 21:55:30 2009
@@ -396,7 +396,16 @@
 
         if (outbound_profile) 
         {
-            tech_pvt = KhompPvt::find_channel(outbound_profile->destination_number, *new_session, &cause);
+            snprintf(name, sizeof(name), "%s", outbound_profile->destination_number);
+            
+            if ((argc = switch_separate_string(outbound_profile->destination_number, '/', argv, (sizeof(argv) / sizeof(argv[0])))) < 3)
+            {
+                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid dial string. Should be on the format:[Khomp/BoardID (or A for first free board)/CHANNEL (or A for first free channel)]\n");
+                switch_core_session_destroy(new_session);
+                return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
+            }
+
+            tech_pvt = KhompPvt::find_channel(name, *new_session, &cause);
 
             if(tech_pvt == NULL || cause != SWITCH_CAUSE_SUCCESS)
             {

Modified: freeswitch/trunk/contrib/mod/endpoints/mod_khomp/src/khomp_pvt.cpp
==============================================================================
--- freeswitch/trunk/contrib/mod/endpoints/mod_khomp/src/khomp_pvt.cpp	(original)
+++ freeswitch/trunk/contrib/mod/endpoints/mod_khomp/src/khomp_pvt.cpp	Sat Jun 27 21:55:30 2009
@@ -62,8 +62,10 @@
 
     switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel selection: board (%d-%d), channel (%d-%d)!\n", board_low, board_high, channel_low, channel_high);
     
-    for (int board = board_low ; board < board_high; board++)
+    for (int board = board_low ; board <= board_high; board++)
     {
+        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Checking board %d\n", board);
+        
         if(pvt != NULL)
             break;
         
@@ -82,7 +84,7 @@
             }
         }
         
-        for (int channel = channel_low ; channel < channel_high ; channel++) 
+        for (int channel = channel_low ; channel <= channel_high ; channel++) 
         {
             switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Checking if (%d-%d) is free\n", board, channel);
             try 



More information about the Freeswitch-svn mailing list