<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Armbruster IT Blog &#187; gnome</title>
	<atom:link href="http://blog.armbruster-it.de/tag/gnome/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.armbruster-it.de</link>
	<description>Real world fun with Java, Grails, Groovy, Zope, Plone, Linux and much others.</description>
	<lastBuildDate>Tue, 11 Oct 2011 11:42:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Gnome and CTI (computer-telephone-integration)</title>
		<link>http://blog.armbruster-it.de/2009/09/gnome-and-cti-computer-telephone-integration/</link>
		<comments>http://blog.armbruster-it.de/2009/09/gnome-and-cti-computer-telephone-integration/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 11:50:26 +0000</pubDate>
		<dc:creator>Stefan Armbruster</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cti]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.armbruster-it.de/?p=8</guid>
		<description><![CDATA[On my desk, there&#8217;s a Siemens Gigaset SX353 connected to the desktop PC via USB. There&#8217;s a nice command line tool for managing the telephone, esp. dialing numbers is possible using gigacontr --dev /dev/ttyGB0 --dial 1 &#60;number&#62; 10 Unfortunately when passing in a international number with the &#8220;+&#8221; notation, e.g. +49163123456 the phone will not [...]]]></description>
			<content:encoded><![CDATA[<p>On my desk, there&#8217;s a Siemens Gigaset SX353 connected to the desktop PC via USB. There&#8217;s a <a href="http://gigaset307x.sourceforge.net/">nice command line tool</a> for managing the telephone, esp. dialing numbers is possible using</p>
<pre>gigacontr --dev /dev/ttyGB0 --dial 1 &lt;number&gt; 10</pre>
<p>Unfortunately when passing in a international number with the &#8220;+&#8221; notation, e.g. <a title="Rufnummernauswahl öffnen" href="callto:+49163123456">+49163123456</a> the phone will not use the &#8220;+&#8221;. This could be easily solved with a small python wrapper script <strong>gigadial.py</strong>:</p>

<div class="wp_syntax"><div class="wp_syntax_download"><div class="wp_syntax_download_filename"><a name="file-#!/usr/bin/python%0D%0Aimport%20sys,%20os%0D%0Aassert%20len(sys.argv)==2%0D%0Adevice%20=%20%22/dev/ttyGB0%22%0D%0Ainternal_number%20=%20%2210%22%0D%0Acommand%20=%20%22/usr/local/sbin/gigacontr%20--dev%20%s%20--dial%201%20%s%20%s%22%0D%0Anumber%20=%20sys.argv%5B1%5D%0D%0A%0D%0Anumber%20=%20number.replace(%22+%22,%20%2200%22)%0D%0Aif%20len(number)%20&amp;gt;%208%20and%20number%5B0:2%5D=='49':%0D%0A%09number%20=%20%2200%s%22%20%%20(number)%0D%0A%0D%0Acommand%20=%20command%20%%20(device,%20number,%20internal_number)%0D%0Aos.system(command)" href="#file-%23%21%2Fusr%2Fbin%2Fpython%0D%0Aimport+sys%2C+os%0D%0Aassert+len%28sys.argv%29%3D%3D2%0D%0Adevice+%3D+%22%2Fdev%2FttyGB0%22%0D%0Ainternal_number+%3D+%2210%22%0D%0Acommand+%3D+%22%2Fusr%2Flocal%2Fsbin%2Fgigacontr+--dev+%25s+--dial+1+%25s+%25s%22%0D%0Anumber+%3D+sys.argv%5B1%5D%0D%0A%0D%0Anumber+%3D+number.replace%28%22%2B%22%2C+%2200%22%29%0D%0Aif+len%28number%29+%26gt%3B+8+and+number%5B0%3A2%5D%3D%3D%2749%27%3A%0D%0A%09number+%3D+%2200%25s%22+%25+%28number%29%0D%0A%0D%0Acommand+%3D+command+%25+%28device%2C+number%2C+internal_number%29%0D%0Aos.system%28command%29" title="#!/usr/bin/python
import sys, os
assert len(sys.argv)==2
device = &quot;/dev/ttyGB0&quot;
internal_number = &quot;10&quot;
command = &quot;/usr/local/sbin/gigacontr --dev %s --dial 1 %s %s&quot;
number = sys.argv[1]

number = number.replace(&quot;+&quot;, &quot;00&quot;)
if len(number) &amp;gt; 8 and number[0:2]=='49':
	number = &quot;00%s&quot; % (number)

command = command % (device, number, internal_number)
os.system(command)">#!/usr/bin/python
import sys, os
assert len(sys.argv)==2
device = "/dev/ttyGB0"
internal_number = "10"
command = "/usr/local/sbin/gigacontr --dev %s --dial 1 %s %s"
number = sys.argv[1]

number = number.replace("+", "00")
if len(number) &amp;gt; 8 and number[0:2]=='49':
	number = "00%s" % (number)

command = command % (device, number, internal_number)
os.system(command)</a></div><div class="wp_syntax_download_actions"><a href="http://blog.armbruster-it.de/wp-content/plugins/wp-syntax-download-extension/wp-syntax-download-extension.php/8/#!/usr/bin/python%0D%0Aimport%20sys,%20os%0D%0Aassert%20len(sys.argv)==2%0D%0Adevice%20=%20%22/dev/ttyGB0%22%0D%0Ainternal_number%20=%20%2210%22%0D%0Acommand%20=%20%22/usr/local/sbin/gigacontr%20--dev%20%s%20--dial%201%20%s%20%s%22%0D%0Anumber%20=%20sys.argv%5B1%5D%0D%0A%0D%0Anumber%20=%20number.replace(%22+%22,%20%2200%22)%0D%0Aif%20len(number)%20&amp;gt;%208%20and%20number%5B0:2%5D=='49':%0D%0A%09number%20=%20%2200%s%22%20%%20(number)%0D%0A%0D%0Acommand%20=%20command%20%%20(device,%20number,%20internal_number)%0D%0Aos.system(command)">raw</a> <a href="http://blog.armbruster-it.de/wp-content/plugins/wp-syntax-download-extension/wp-syntax-download-extension.php/8/download/#!/usr/bin/python%0D%0Aimport%20sys,%20os%0D%0Aassert%20len(sys.argv)==2%0D%0Adevice%20=%20%22/dev/ttyGB0%22%0D%0Ainternal_number%20=%20%2210%22%0D%0Acommand%20=%20%22/usr/local/sbin/gigacontr%20--dev%20%s%20--dial%201%20%s%20%s%22%0D%0Anumber%20=%20sys.argv%5B1%5D%0D%0A%0D%0Anumber%20=%20number.replace(%22+%22,%20%2200%22)%0D%0Aif%20len(number)%20&amp;gt;%208%20and%20number%5B0:2%5D=='49':%0D%0A%09number%20=%20%2200%s%22%20%%20(number)%0D%0A%0D%0Acommand%20=%20command%20%%20(device,%20number,%20internal_number)%0D%0Aos.system(command)">download</a></div></div><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/python</span>
import sys, os
assert len<span style="color: #7a0874; font-weight: bold;">(</span>sys.argv<span style="color: #7a0874; font-weight: bold;">)</span>==<span style="color: #000000;">2</span>
device = <span style="color: #ff0000;">"/dev/ttyGB0"</span>
internal_number = <span style="color: #ff0000;">"10"</span>
<span style="color: #7a0874; font-weight: bold;">command</span> = <span style="color: #ff0000;">"/usr/local/sbin/gigacontr --dev %s --dial 1 %s %s"</span>
number = sys.argv<span style="color: #7a0874; font-weight: bold;">[</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">]</span>
 
number = number.replace<span style="color: #7a0874; font-weight: bold;">(</span><span style="color: #ff0000;">"+"</span>, <span style="color: #ff0000;">"00"</span><span style="color: #7a0874; font-weight: bold;">)</span>
<span style="color: #000000; font-weight: bold;">if</span> len<span style="color: #7a0874; font-weight: bold;">(</span>number<span style="color: #7a0874; font-weight: bold;">)</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #000000;">8</span> and number<span style="color: #7a0874; font-weight: bold;">[</span><span style="color: #000000;">0</span>:<span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">]</span>==<span style="color: #ff0000;">'49'</span>:
	number = <span style="color: #ff0000;">"00%s"</span> <span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">(</span>number<span style="color: #7a0874; font-weight: bold;">)</span>
 
<span style="color: #7a0874; font-weight: bold;">command</span> = <span style="color: #7a0874; font-weight: bold;">command</span> <span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">(</span>device, number, internal_number<span style="color: #7a0874; font-weight: bold;">)</span>
os.system<span style="color: #7a0874; font-weight: bold;">(</span><span style="color: #7a0874; font-weight: bold;">command</span><span style="color: #7a0874; font-weight: bold;">)</span></pre></div></div>

<p>Gnome supports configuring a handler for <strong>callto:</strong> URLs. Using gconf-editor modify the setting /desktop/gnome/url-handlers/callto/command must be set to</p>
<pre>&lt;path-to&gt;/gigadial.py %s</pre>
<p>To use Thunderbird&#8217;s addressbook with this, enable in Tool | Additional Settings | Misc the option &#8220;insert callto: link for phonenumbers&#8221;. When viewing contact data, the phone numbers show up as links. When clicking the phone number, the phone dials that number. Cool!</p>
<p>Even cooler: For Firefox, there the wonderful <a href="https://addons.mozilla.org/de/firefox/addon/10654">Telify</a> addon that finds phone number in webpages and converts them to links. Telify must be configured to use <strong>callto:</strong> URLs instead of the default <strong>tel:</strong> URLS.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.armbruster-it.de/2009/09/gnome-and-cti-computer-telephone-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

