<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: DesignBais Tip - Getting Client Info</title>
	<link>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html</link>
	<description>Welcome to the Nebula</description>
	<pubDate>Sun, 27 Jul 2008 02:00:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>

	<item>
		<title>By: sjdorst</title>
		<link>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-32</link>
		<author>sjdorst</author>
		<pubDate>Wed, 06 Sep 2006 15:08:08 +0000</pubDate>
		<guid>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-32</guid>
		<description>Tony,
I never envisioned that handling INCOMING calls could do without a process running on the client's desktop (whether it's a thick desktop or a desktop on a Windows Server accessed through a thin client.) There obviously has to be some process that responds to the incoming call notification and fires up the URL. Nice thing about DB vs Accuterm (what we're currently using, NOT the GUI) is that firing up another window doesn't take up another seat.
As far as HOW this applet logs on to/establishes a connection with our phone system, we've got a few choices of communication path. TAPI is one (and you end up talking with the phone system's GUI client - Doesn't work unless the client is running, but this is actually a GOOD thing in our case, since we don't want a DB page to fire up UNLESS the user is logged into the phone system!) and there is another that connects directly to the server.
I actually haven't done much research, just a general knowledge of what's necessary, with further refinements based on &#34;Aha!&#34; moments when people (such as yourself) talk about something that triggers an &#34;Oh! That's how I can do this.&#34; thought.
--Steve</description>
		<content:encoded><![CDATA[<p>Tony,<br />
I never envisioned that handling INCOMING calls could do without a process running on the client&#8217;s desktop (whether it&#8217;s a thick desktop or a desktop on a Windows Server accessed through a thin client.) There obviously has to be some process that responds to the incoming call notification and fires up the URL. Nice thing about DB vs Accuterm (what we&#8217;re currently using, NOT the GUI) is that firing up another window doesn&#8217;t take up another seat.<br />
As far as HOW this applet logs on to/establishes a connection with our phone system, we&#8217;ve got a few choices of communication path. TAPI is one (and you end up talking with the phone system&#8217;s GUI client - Doesn&#8217;t work unless the client is running, but this is actually a GOOD thing in our case, since we don&#8217;t want a DB page to fire up UNLESS the user is logged into the phone system!) and there is another that connects directly to the server.<br />
I actually haven&#8217;t done much research, just a general knowledge of what&#8217;s necessary, with further refinements based on &quot;Aha!&quot; moments when people (such as yourself) talk about something that triggers an &quot;Oh! That&#8217;s how I can do this.&quot; thought.<br />
&#8211;Steve</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Gravagno</title>
		<link>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-31</link>
		<author>Tony Gravagno</author>
		<pubDate>Mon, 04 Sep 2006 01:44:45 +0000</pubDate>
		<guid>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-31</guid>
		<description>&lt;p&gt;Sounds like you still need to work out another issue though. Unless you have the client polling the server you have no way of getting the call from the server to the end-user. There is the DBTIMER variable which will fire an After Display event on each timeout, and from there you can check to see if there is a call waiting, but this isn't appropriate for a real-time app. You can, however, load an executable on the end-user's PC which will respond to server events via mv.NET. This can fire up a browser instance to your DB app which the user can use to process the call. Really, it doesn't need to fire up a new browser instance, this component can be a thick container which displays a browser interface. It's a thin client within a thick client, so to speak, and can be deployed using SmartClient technology.&lt;/p&gt;
&lt;p&gt;Real-time processing of server-initiated transactions over the internet can be very tricky. There&#160;are issues with&#160;latency, security, deployment, and error handling. This won't be a slam-dunk. To make sure your end product is stable for various environments I think you're looking at a thicker solution than you had hoped.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Sounds like you still need to work out another issue though. Unless you have the client polling the server you have no way of getting the call from the server to the end-user. There is the DBTIMER variable which will fire an After Display event on each timeout, and from there you can check to see if there is a call waiting, but this isn&#8217;t appropriate for a real-time app. You can, however, load an executable on the end-user&#8217;s PC which will respond to server events via mv.NET. This can fire up a browser instance to your DB app which the user can use to process the call. Really, it doesn&#8217;t need to fire up a new browser instance, this component can be a thick container which displays a browser interface. It&#8217;s a thin client within a thick client, so to speak, and can be deployed using SmartClient technology.</p>
<p>Real-time processing of server-initiated transactions over the internet can be very tricky. There&nbsp;are issues with&nbsp;latency, security, deployment, and error handling. This won&#8217;t be a slam-dunk. To make sure your end product is stable for various environments I think you&#8217;re looking at a thicker solution than you had hoped.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sjdorst</title>
		<link>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-30</link>
		<author>sjdorst</author>
		<pubDate>Sun, 03 Sep 2006 22:50:51 +0000</pubDate>
		<guid>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-30</guid>
		<description>Yow! Passing the query string to DBW3CQSTRING is GREAT news! I've been thinking about how to get our MV app to RESPOND to an incoming call with caller ID through TAPI. Having the query string available solves half the problem.
NOW all I need is an app sitting in the background that listens for incoming calls in TAPI, then when one with a caller ID number comes in, fire up an IE session to an appropriate URL with the number in the query string, then design the form (contact management) to pull up the contact (if only 1 found), choice of contacts (if more than 1 found) or create contact (if not found!)</description>
		<content:encoded><![CDATA[<p>Yow! Passing the query string to DBW3CQSTRING is GREAT news! I&#8217;ve been thinking about how to get our MV app to RESPOND to an incoming call with caller ID through TAPI. Having the query string available solves half the problem.<br />
NOW all I need is an app sitting in the background that listens for incoming calls in TAPI, then when one with a caller ID number comes in, fire up an IE session to an appropriate URL with the number in the query string, then design the form (contact management) to pull up the contact (if only 1 found), choice of contacts (if more than 1 found) or create contact (if not found!)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Gravagno</title>
		<link>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-29</link>
		<author>Tony Gravagno</author>
		<pubDate>Fri, 25 Aug 2006 07:57:56 +0000</pubDate>
		<guid>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-29</guid>
		<description>&lt;p&gt;According to DBI today: &#34;&lt;font size="2"&gt;Version 4 will keep the users IP in DBSOURCEIP - you will also be able to pass a query string through to DBW3CQSTRING&#34;.&lt;/font&gt;&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>According to DBI today: &quot;<font size="2">Version 4 will keep the users IP in DBSOURCEIP - you will also be able to pass a query string through to DBW3CQSTRING&quot;.</font></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: symeonb</title>
		<link>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-23</link>
		<author>symeonb</author>
		<pubDate>Tue, 22 Aug 2006 13:52:47 +0000</pubDate>
		<guid>http://Nebula-RnD.com/blog/general/2006/08/dbtip-clientinfo1.html#comment-23</guid>
		<description>Alternativley, you can use the approach already documented on here for file uploads (ie. you create a work variable and set&#160; to html code to insert an iframe in your page with source of an asp or asp.net page on your IIS box and with the designbais session id passed in). The asp or asp.net code then needs to get the client ip address using request.ServerVariables(&#34;REMOTE_ADDR&#34;) and then use the filesystem object to write this to disk with an id of the designbais session id. Your Databasic can then read this in.rgdsSym.</description>
		<content:encoded><![CDATA[<p>Alternativley, you can use the approach already documented on here for file uploads (ie. you create a work variable and set&nbsp; to html code to insert an iframe in your page with source of an asp or asp.net page on your IIS box and with the designbais session id passed in). The asp or asp.net code then needs to get the client ip address using request.ServerVariables(&quot;REMOTE_ADDR&quot;) and then use the filesystem object to write this to disk with an id of the designbais session id. Your Databasic can then read this in.rgdsSym.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
