12,275
edits
No edit summary |
|||
(28 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
* [ | * [https://www.uni-weimar.de/de/universitaet/struktur/zentrale-einrichtungen/scc-rechenzentrum/service/telefonie/ Anleitung] auf den Seiten des [[SCC-Services|SCC]] | ||
* [https://telefon.uni-weimar.de/webdialer/Webdialer Webdialer für Cisco IP Phone] | * [https://telefon.uni-weimar.de/webdialer/Webdialer Webdialer für Cisco IP Phone] | ||
* [https://telefon.uni-weimar.de/ccmuser Einstellungen Cisco IP Phone] | * [https://telefon.uni-weimar.de/ccmuser Einstellungen Cisco IP Phone] | ||
* [http://voicemail.uni-weimar.de Voicemail] | * [http://voicemail.uni-weimar.de Voicemail] | ||
== Kontextmenü in OS X | == Kontextmenü in Mac OS X Kontakte.app (vor OS 10.8: Adressbuch.app) == | ||
Um über ein Klick den im OS X Adressbuch geöffneten Kontakt anzuwählen kann folgendes AppleScript verwendet werden, es kann als <tt>Call with IP Phone.scpt</tt> in <tt>~/Library/Address Book plugins/</tt> gelegt werden. Voraussetzung für das Funktionieren des Scripts ist, dass man schon die Sicherheitszertifikate der Webdialer-URL mit Safari importiert hat und dass man in dort schon eingeloggt ist (Login muss beim [[SCC-Services|SCC]] beantragt werden). | Um über ein Klick den im OS X Adressbuch geöffneten Kontakt anzuwählen kann folgendes AppleScript verwendet werden, es kann als <tt>Call with IP Phone.scpt</tt> in <tt>~/Library/Address Book plugins/</tt> gelegt werden. Voraussetzung für das Funktionieren des Scripts ist, dass man schon die Sicherheitszertifikate der Webdialer-URL mit Safari importiert hat und dass man in dort schon eingeloggt ist (Login muss beim [[SCC-Services|SCC]] beantragt werden). Außerdem muss JavaScript in Safari aktiviert sein<ref>Schöner als ein Skript für den Browser (in diesem Fall Apple Safari.app) wäre eine Lösung, welche im Hintergrund funktioniert, z.B. mit cURL. Leider gibt es mit cURL unüberwindbare Probleme durch die SSL-Zertifikate und des JavaScrips der Cisco-Seite. Falls eine Telnet-Verbindung zum Telefon aufgebaut werden könnte, dann ließe sich auch [http://smallhacks.wordpress.com/2012/04/11/command-line-dialing-on-cisco-79407960-ip-phone-9/ diese Methode verwenden]</ref>. | ||
Dial a number with your Cisco IP Phone from within the Mac OS X Contacts.app (formerly known as Address Book.app). Rightclick and use the context menue and select Dial with IP Phone. | |||
<syntaxhighlight lang="applescript"> | <syntaxhighlight lang="applescript"> | ||
-- AppleScript(+JavaScript) to dial phone numbers with a Cisco IP Phone from the Mac OS | -- AppleScript(+JavaScript) to dial phone numbers with a Cisco IP Phone from the Mac OS Contacts.app via the Webdialer URL | ||
-- 2011 Max Neupert, Bauhaus-Universität Weimar with the help of the world wide web and Google | -- 2011 Max Neupert, Bauhaus-Universität Weimar with the help of the world wide web and Google | ||
-- some snippets are taken from http://www.mactech.com/articles/mactech/Vol.21/21.10/ScriptingAddressBook/index.html | -- some snippets are taken from http://www.mactech.com/articles/mactech/Vol.21/21.10/ScriptingAddressBook/index.html | ||
using terms from application " | using terms from application "Contacts" | ||
on action property | on action property | ||
return "phone" | return "phone" | ||
Line 31: | Line 33: | ||
set safariWasRunning to true | set safariWasRunning to true | ||
else | else | ||
tell application "Safari" | tell application "Safari" to activate | ||
end if | end if | ||
tell application "Safari" to open location "https://telefon.uni-weimar.de/webdialer/Webdialer" | |||
set theNumber to value of e | set theNumber to value of e | ||
set amtsholung to true | set amtsholung to true | ||
set theNumber to theNumber | -- to get rid of (0), - and spaces in the number | ||
set the theNumber to removeChars(theNumber, "(0)") | |||
set the theNumber to removeChars(theNumber, "-") | |||
set the theNumber to removeChars(theNumber, " ") | |||
set lengthOfNumber to length of theNumber | set lengthOfNumber to length of theNumber | ||
-- the following lines replace the international prefix for germany (+49, or 0049) with 0 | -- the following lines replace the international prefix for germany (+49, or 0049) with 0 | ||
if theNumber begins with "+49" then | if theNumber begins with "+49" then | ||
Line 57: | Line 60: | ||
if theNumber begins with "03643" then | if theNumber begins with "03643" then | ||
set theNumber to characters -1 thru -(lengthOfNumber - 5) of theNumber as text | set theNumber to characters -1 thru -(lengthOfNumber - 5) of theNumber as text | ||
end if | |||
--in case it's an internal number ommit the prefix | |||
if theNumber begins with "58" then | |||
set theNumber to characters 3 thru 6 of theNumber as text | |||
set amtsholung to false | |||
end if | end if | ||
end ignoring | end ignoring | ||
Line 68: | Line 71: | ||
set theNumber to "0" & theNumber as text | set theNumber to "0" & theNumber as text | ||
end if | end if | ||
--the following fades out iTunes if it's playing, inspired by Jeroen van der Waal http://dougscripts.com/itunes/ | |||
if appIsRunning("iTunes") then | if appIsRunning("iTunes") then | ||
tell application "iTunes" to if player state is playing then set iTunesWasPlaying to true | tell application "iTunes" to if player state is playing then set iTunesWasPlaying to true | ||
if iTunesWasPlaying then | if iTunesWasPlaying then | ||
tell application "iTunes" to pause | tell application "iTunes" | ||
set oldVolume to sound volume | |||
repeat with i from oldVolume to 0 by -1 | |||
set sound volume to i | |||
delay 0.01 | |||
end repeat | |||
pause | |||
set sound volume to oldVolume | |||
end tell | |||
end if | end if | ||
end if | end if | ||
tell application "Safari" | tell application "Safari" | ||
-- wait until page is completely loaded | -- wait until page is completely loaded | ||
-- taken from http://www.mactipper.com/2009/10/run-applescript-when-webpage-is-done.html | -- taken from http://www.mactipper.com/2009/10/run-applescript-when-webpage-is-done.html | ||
repeat until ((do JavaScript "document.readyState" in document 1) is "complete") | repeat until ((do JavaScript "document.readyState" in document 1) is "complete") | ||
delay 0.5 | delay 0.5 | ||
Line 86: | Line 97: | ||
do JavaScript "document.forms['loginForm'].elements['destination'].value ='" & theNumber & "'" in document 1 | do JavaScript "document.forms['loginForm'].elements['destination'].value ='" & theNumber & "'" in document 1 | ||
do JavaScript "document.forms['loginForm'].elements['dial'].click()" in document 1 | do JavaScript "document.forms['loginForm'].elements['dial'].click()" in document 1 | ||
if safariWasRunning is false then | |||
delay 8 | |||
tell application "Safari" | |||
quit | |||
end tell | |||
end if | |||
end tell | end tell | ||
return true | return true | ||
Line 101: | Line 112: | ||
tell application "System Events" to (name of processes) contains appName | tell application "System Events" to (name of processes) contains appName | ||
end appIsRunning | end appIsRunning | ||
--variation from http://www.macosxautomation.com/applescript/sbrt/sbrt-06.html | |||
on removeChars(theChars, searchString) | |||
set AppleScript's text item delimiters to the searchString | |||
set the itemList to every text item of theChars | |||
set AppleScript's text item delimiters to "" | |||
set theChars to the itemList as string | |||
set AppleScript's text item delimiters to "" | |||
return theChars | |||
end removeChars | |||
</syntaxhighlight> | </syntaxhighlight> | ||
===Known | ===Known issues=== | ||
# Scripting doesn't seem to be possible for the Contacts.app Mac OS 10.9 (Mavericks). Also see http://support.apple.com/kb/HT5914 | |||
# browser window opens and resizes | # browser window opens and resizes | ||
# doesn't work with ugly number formats like +49 (0)170 123456789 | # there are internal numbers which do not start with 58****. They aren't recognized at the moment. | ||
# <s>doesn't work with ugly number formats like +49 (0)170 123456789</s> fixed. | |||
# <s>since recently the webdialer stopped working (for me?) hence the whole script has become useless. investigating the issue.</s> that turned out to be a hardware issue of the phone. replaced phone and it works again. | |||
# <s>stopped working after internal call fix</s> fixed, works again | # <s>stopped working after internal call fix</s> fixed, works again | ||
# <s>University numbers like +49 3643 583872 will be called externally, that means it will cost money! (surprisingly the cisco phone system isn't that smart to correct that internally) | # <s>University numbers like +49 3643 583872 will be called externally, that means it will cost money!</s> fixed (surprisingly the cisco phone system isn't that smart to correct that internally) | ||
# <s>doesn't work with phone number which start like 0049...., (0049), (49)</s> fixed | # <s>doesn't work with phone number which start like 0049...., (0049), (49)</s> fixed | ||
# <s>only works with phone numbers in Germany so far</s> fixed | # <s>only works with phone numbers in Germany so far</s> fixed | ||
# <s>doesn't work if page loading in browser takes longer than 1 sec.</s> fixed. | # <s>doesn't work if page loading in browser takes longer than 1 sec.</s> fixed. | ||
== Thunderbird Address Book integration == | |||
I don't know if there is such a thing. Possible starting points: | |||
* https://addons.mozilla.org/en-us/thunderbird/addon/tbdialout/ | |||
* http://freeshell.de/~kaosmos/morecols-en.html | |||
* https://addons.mozilla.org/en-us/thunderbird/addon/select-address-book-text/ | |||
== Bemerkungen == | |||
<references/> | |||
[[Category:Cisco]] | [[Category:Cisco]] |