فهرست منبع

Found a better solution for the hot desking problem removed the previous solution and implemented the better approach.

Mark Crane 13 سال پیش
والد
کامیت
6188bb16a5
1فایلهای تغییر یافته به همراه15 افزوده شده و 28 حذف شده
  1. 15 28
      includes/install/scripts/dial_string.lua

+ 15 - 28
includes/install/scripts/dial_string.lua

@@ -49,10 +49,10 @@
 
 if ( session:ready() ) then
 	session:answer();
-	domain_name = session:getVariable("domain_name");
 	pin_number = session:getVariable("pin_number");
 	sounds_dir = session:getVariable("sounds_dir");
 	sip_from_user = session:getVariable("sip_from_user");
+	sip_from_host = session:getVariable("sip_from_host");
 	direction = session:getVariable("direction"); --in, out, both
 	extension = tostring(session:getVariable("extension")); --true, false
 	dial_string = tostring(session:getVariable("dial_string"));
@@ -109,7 +109,7 @@ if ( session:ready() ) then
 			freeswitch.consoleLog("NOTICE", "sql: ".. sql .. "\n");
 		end
 		dbh:query(sql, function(row)
-			--domain_uuid = row.domain_uuid;
+			db_domain_uuid = row.domain_uuid;
 			db_extension_uuid = row.extension_uuid;
 			db_dial_string = row.dial_string;
 			db_dial_user = row.dial_user;
@@ -128,31 +128,18 @@ if ( session:ready() ) then
 			--add the dial string
 				if (direction == "in") then
 					if (string.len(dial_string) == 0) then
-						dial_string = [[{sip_invite_domain=]] .. domain_name .. [[,presence_id=]] .. sip_from_user .. [[@]] .. domain_name .. [[}${sofia_contact(]] .. sip_from_user .. [[@]] .. domain_name .. [[)}]];
+						dial_string = [[{sip_invite_domain=]] .. sip_from_host .. [[,presence_id=]] .. sip_from_user .. [[@]] .. sip_from_host .. [[}${sofia_contact(]] .. sip_from_user .. [[@]] .. sip_from_host .. [[)}]];
 					end
-					if (string.len(db_dial_user) > 0) then
-						sql = "UPDATE v_extensions SET ";
-						sql = sql .. "dial_string = null, ";
-						sql = sql .. "dial_user = null, ";
-						sql = sql .. "dial_domain = null ";
-						sql = sql .. "WHERE extension_uuid = '" .. db_extension_uuid .."' ";
-						if (debug["sql"]) then
-							freeswitch.consoleLog("NOTICE", "[dial_string] sql: ".. sql .. "\n");
-						end
-						dbh:query(sql);
-						session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/voicemail/vm-deleted.wav");
-					else
-						sql = "UPDATE v_extensions SET ";
-						sql = sql .. "dial_string = '" .. dial_string .."', ";
-						sql = sql .. "dial_user = '" .. sip_from_user .."', ";
-						sql = sql .. "dial_domain = '" .. domain_name .."' ";
-						sql = sql .. "WHERE extension_uuid = '" .. db_extension_uuid .."' ";
-						if (debug["sql"]) then
-							freeswitch.consoleLog("NOTICE", "[dial_string] sql: ".. sql .. "\n");
-						end
-						dbh:query(sql);
-						session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/voicemail/vm-saved.wav");
+					sql = "UPDATE v_extensions SET ";
+					sql = sql .. "dial_string = '" .. dial_string .."', ";
+					sql = sql .. "dial_user = '" .. sip_from_user .."', ";
+					sql = sql .. "dial_domain = '" .. sip_from_host .."' ";
+					sql = sql .. "WHERE extension_uuid = '" .. db_extension_uuid .."' ";
+					if (debug["sql"]) then
+						freeswitch.consoleLog("NOTICE", "[dial_string] sql: ".. sql .. "\n");
 					end
+					dbh:query(sql);
+					session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/voicemail/vm-saved.wav");
 				end
 			--remove the dialstring
 				if (direction == "out") then
@@ -185,12 +172,12 @@ if ( session:ready() ) then
 					else
 						--if the dial string is empty then set the dial string
 						if (string.len(dial_string) == 0) then
-							dial_string = [[{sip_invite_domain=]] .. domain_name .. [[,presence_id=]] .. sip_from_user .. [[@]] .. domain_name .. [[}${sofia_contact(]] .. sip_from_user .. [[@]] .. domain_name .. [[)}]];
+							dial_string = [[{sip_invite_domain=]] .. sip_from_host .. [[,presence_id=]] .. sip_from_user .. [[@]] .. sip_from_host .. [[}${sofia_contact(]] .. sip_from_user .. [[@]] .. sip_from_host .. [[)}]];
 						end
 						sql = "UPDATE v_extensions SET ";
 						sql = sql .. "dial_string = '" .. dial_string .."', ";
 						sql = sql .. "dial_user = '" .. sip_from_user .."', ";
-						sql = sql .. "dial_domain = '" .. domain_name .."' ";
+						sql = sql .. "dial_domain = '" .. sip_from_host .."' ";
 						sql = sql .. "WHERE extension_uuid = '" .. db_extension_uuid .."' ";
 						if (debug["sql"]) then
 							freeswitch.consoleLog("NOTICE", "[dial_string] sql: ".. sql .. "\n");
@@ -207,7 +194,7 @@ if ( session:ready() ) then
 
 	--log to the console
 		if (debug["var"]) then
-			freeswitch.consoleLog("NOTICE", "domain_name: ".. domain_name .. "\n");
+			freeswitch.consoleLog("NOTICE", "sip_from_host: ".. sip_from_host .. "\n");
 			freeswitch.consoleLog("NOTICE", "extension_uuid: ".. extension_uuid .. "\n");
 			freeswitch.consoleLog("NOTICE", "dial_string: ".. dial_string .. "\n");
 		end