Podobně jak existuje odkaz (URL) např. http://neco nebo můžete do Vašeho operačního sytému přidat libovolné URL, např.ve formě odorik://533533533 nebo téže jen odorik:533533533 zkuste kliknout , což je něco podobného jako odkaz mailto:mujmail@neco.cz . Odkaz pak zavolá předdefinovanou aplikaci nebo skript, který provede např. objednání hovoru pomocí Odorik API. Tohle speciální URL pak můžete používat v libovolném programu, který s URL umí pracovat. Typicky je to např. plugin pro Firefox a Thunderbird telify U google Chrome se použitelný plugin jmenuje Skype Links - lze použít i bez Skypu. Pracovat s URL umí i Excel nebo LibreOffice calc. Tedy stačí kliknout na sloupeček v tabulce a můžete si objednat hovor.
Oficiální i když ne úplně aktuální dokumentace jak registrovat vlastní formu URL/protokol.
Alternativně můžete nainstalovat program microsip, který sám zaregisruje protokol SIP: sám na sebe.
Jak přidat vlastní URL se liší podle operačního systému:
Stáhněte si následují soubor a rozbalte ho tak, aby jeho obsah byl v adresáři c:\odorik .
Na soubor C:\odorik\odorik_callback.reg dvojitě klikněte, a potvrďte přidání záznamů do registrů Windows.
Soubor C:\odorik\odorik_callback.rb otevřete v textovém editoru (např. notepad) a na začátku souboru zeditujte číslo linky a SIP heslo, na kterou se mají objednávané hovory účtovat.
Souobor C:\odorik\odorik_callback_test.bat vám, pomůže vyzkoušet, že skript funguje. Zeditujte jej a spusťte je. Pokud to nefunguje jak očekáváte, podívejte se do obsahu souboru C:\odorik\odorik_callback.log
Funkčnost můžete otestovat dle obrázku níže. Do Firefoxu jako internetovou adresu zadáte např. “odorik:*300116;533533533” . Bohužel tuhle adresu není možné zadat přímo do adresního pole, firefox to nemusí pochopit, ale je nutné vytvořit odkaz na nějaké html stránce. Nebo zkuste kliknout zde Kde *300116 nahradíte číslem, z kterého chcete spojit, a 533533533 nahradíte číslem, na které chcete spojit.
Poprvé na vás vyskočí okno viz níže - to znamená, že registry Windows jsou nastaveny korektně - protokol “odorik” je přidán.
Jakmile objednávání hovorů funguje takto “ručně”, můžete přejít k nastavení doplňku Telify, který ono URI využívá. Pro Google Chrome použijte doplněk Skype links a místo protokolu “odorik” protokol “callto” nebo “tel”.
Obsah souboru readme.txt. Pokud si chcete hovory objednávat na vlastním Asterisku místo přes API přímo na Odorik.cz, zajímejte se o soubory začínající asterisk_AMI_callback.
Kompletní návod a dokumentace je na http://www.odorik.cz/w/siptapi:registrace_protokolu?&#windows Přehled souborů: odorik_callback.reg - Na tento soubor dvojitě klikněte, aby došlo k přidání záznamů o novém protokolu odorik do registrů Windows. - Chcete-li vidět co přesně bude přidáno, otevřete si tento soubor v textovém editoru. - Soubor byl vytvořen na základě návodu zde http://kb.mozillazine.org/Register_protocol#Windows - Pokud byste chtěli obsah archivu umístit jinam než do c:\odorik, je třeba změnit cestu uvnitř tohoto souboru. - Nastavení registrů Windows můžete zkontrolovat pomocí programu regedit, který je součástí Windows. odorik_callbak.rb - Skript v jazyce Ruby, který provede objednání hovoru přes API. Na začátku souboru je třeba zeditovat číslo SIP linky a SIP heslo, přes kterou mají být hovory objednávány. To provedete v textovém editoru, např. notepadu. Vše co má smysl uživatelsky nastavovat je okomentováno na začátku souboru. -------------------------------------------------------------------------------------------------------------- Souborům uvedených níže není zpravidla třeba věnovat pozornost. callto.reg,tel.reg - stejné jako odorik.reg výše, jen s tím rozdílem, že název protokolu není "odorik" ale "callto" nebo "tel". Je možné mít zároveň zaregistrováno více protokolů, u "callto" a "tel" ale hrozí kolize s jinými volacími programy. "Callto" nebo "tel" se hodí pokud používáte addon do prohlížeče chrome, jménem "Skype links", který umožňuje promě "Skype" jen tyto dvě URL. https://chrome.google.com/webstore/detail/skype-links/epbmllnadbdnppblcebkkmapkinkdchd?hl=en-US odorik_callback_test.bat - funkčnost skriptu můžete otestovat bez firefoxu i thunderbirdu z příkazové řádky pomocí tohoto souboru. Předávané parametry (tedy která čísla mají být spojena) můžete pozměnit textovým editorem. Jsou obsaženy v tomto souboru. odorik_callback.log - do tohoto souboru se logují (zapisují) pokusy o zpětné volání. Pokud vše nefunguje jak očekáváte podívejte se na konec tohoto souboru obyčejným textovým editorem. (nebo v příkazové řádce napište type odorik_callback.log) Logování je možné vypnout editací souboru odorik_callback.rb cacert.pem - certifikáty autorit, aby bylo možné prověřit https certifikát na odorik.cz . Použito na základě informací nalezených na https://gist.github.com/fnichol/867550 asterisk_AMI_callback.rb - Alternativní skript, který můžete použít pokud máte vlastní ústřednu Asterisk. V souobru bude nutné změnit ip adresu Vašeho asterisku. Předpokládáme použití v lokální počítačové síti. asterisk_AMI_callback.reg - pokud používáte skript asterisk_AMI_callback.rb, jeho registraci do registrů provedete dvojlikem na tento soubor asterisk_AMI_callback_test.rb - může se hodit při testování Asterisk manager interface a jeho parametrů manager.conf - vzorový konfigurační soubor asterisku pro nastavení Asterisk manager interface. Umistěte jej do adresáře /etc/asterisk na stejný stroj, kde je Váš asterisk Ostatní soubory - interpretr jazyka Ruby a potřebné knihovny stažené z http://rubyinstaller.org/ - verze 1.9
Jak to celé zabalit do jediného exe včetně hesel? Prerekvizita: plná instalace ruby stažená z http://rubyinstaller.org/, testováno s verzí ruby 1.9
gem install ocra ocra --help C:\Ruby193\bin>ocra odorik_callback.rb cacert.pem --no-enc
U buňky, která má být klikatelná použijete následující funkci:
=HYPERTEXTOVÝ.ODKAZ(CONCATENATE("odorik:";C3);"volat přes Odorik")
Kde C3 je buňka s telefonním číslem.
Jak se zbavit varování v Office 2007 a 2010 a jak v Office 2003. Vypnutím varování doporučujeme. Pravděpodobně lze využít i fintu pro google spreadsheet popsanou níže, čímž pravděpodobně obejdete všechny bezpečnostní varování a omezování.
=HYPERLINK(CONCATENATE("odorik:";C4);"volat přes Odorik")
Během kliknutí je nutné držet zmáčknutou klávesu CTRL, což je rozumné opatření proti omylům, kdy buňku chcete např. jen editovat. Aby bylo zřejmé, že buňka je klikací, můžete její obsah nastavit jako modrý a podtržený. Přidání sloupečku by měl zvládnout i naprostý začátečník.
Spreadsheet od googlu nedovoluje volat vlastní URL (nebo URL registrované vámi nainstalovanou aplikací jako Microsip dovoluje jen vybrané URL), ale jen některá obvyklá URL. Url začínající odorik: nebo sip: nelze volat přímo ale jen oklikou přes další internetovou stránku. Proto je třeba volat nejdříve obyčejné url s https na začátku, které bude dále přesměrováno na sip:. Pro ten důvod jsme zřídili url https://www.odorik.cz/sip_redirect/ za které se přidá telefonní číslo. Tohle url provede přesměrování na url ve formátu “sip:telefonni_cislo” a pokusí se okno zavřít.
=HYPERLINK(CONCATENATE("https://www.odorik.cz/sip_redirect/",C3),"volat přes Odorik")
Pozor ! Pokud si váš google myslí, že máte raději češtinu, funkce concatenate se bude jmenovat jinak a místo čárek možná budete muset psát středníky.
C3 je políčko, které obsahuje telefonní číslo, které chcete volat. Doporučujeme odkaz vyvolávat stisknutím kláves Alt+Enter - je to pohodlnější a nově otevřené okno webového prohlížeče se poté opět samo zavře. Vyzkoušeno ve firefoxu a Chrome.
Pokud by jste si chtěli vytvořit vlastní přesměrovávací URL na svých webových stránkách (není nutné, můžete použít naše) , zde je použitý html kód. Aby fungovalo automatické zavření okna použijte pro otevření url ALT+Enter.
<!DOCTYPE HTML> <html> <meta charset="UTF-8"> <meta http-equiv="refresh" content="1; url=sip:<%= @number %>"> <script type="text/javascript"> window.location.href = "sip:<%= @number %>" setTimeout( function ( ) { self.close(); }, 3 ); </script> <body> <title>Přesměrování stránky</title> Zavřete prosím tohle okno, nebo volejte <a href="sip:<%= @number %>">volame <%= @number %></a> </body> </html>
Do adresáře /usr/share/applications jako uživatel root umístěte soubor odorik.desktop s následujícím obsahem.
[Desktop Entry] Name=Odorik Comment=Odorik callback script Exec=odorik_callback.rb %U Terminal=false Type=Application Encoding=UTF-8 Categories=Network;Application; MimeType=x-scheme-handler/odorik; X-KDE-Protocols=odorik
Pokud odorik_callback.rb (viz níže) není “v cestě”, uveďte plnou cestu k souboru.
poté jako root nechte provést příkaz:
update-desktop-database
odorik_callback.rb - nastavte souboru práva pro spouštění. (chmod +x odorik_callback.rb)
#!/usr/bin/env ruby # encoding: UTF-8 # zde vyplníte číslo linky a SIP heslo nebo též číslo uživatele a API heslo AUTHENTICATION = { 'user' => '300116', 'password' => 'heslo' } require 'net/http' require 'uri' #starší verze ruby vyžaduje navíc řádek #require 'net/https' # Pokud by byl problém s ssl certifikátem (třeba pod Windows), # může bát nutné si stáhnout cacert.pem a přidat následující řádek. # # ENV['SSL_CERT_FILE'] = File.expand_path(File.dirname(__FILE__)) + "/cacert.pem" # viz https://gist.github.com/fnichol/867550 příspěvek uživatele sschwartzman co_predali=ARGV[0] if co_predali==nil or co_predali=="" co_predali="odorik:test;test" end protokol,argument=co_predali.split(':') cisla,akce=argument.split('?') volano_z,volano_na=cisla.split(';') # gsub(/[ \-\/\(\)]/,'').gsub(/^\+/,'00') LOG_FILE = '/tmp/odorik_callback.log' def log(my_message) # {{{ timeObj = Time.now timeStr = timeObj.strftime("%F---%T") File.open(LOG_FILE, "a") { |f_log| f_log.puts(timeStr + ': ' + my_message) } end # }}} log("prislo: protokol:#{protokol},volano_z:#{volano_z},volano_na:#{volano_na},akce:#{akce}") if protokol.downcase=="odorik" and (akce=="" or akce==nil or akce=="call") callback = { 'caller' => volano_z, 'recipient' => volano_na } uri = URI.parse('https://www.odorik.cz/api/v1/callback') request = Net::HTTP::Post.new(uri.path) request.form_data = AUTHENTICATION.merge(callback) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true response = http.start {|http| http.request(request)} # log("API vrátilo #{response.body}") unless response.body.include? 'callback_ordered' log("zpětné volání nešlo objednat. Důvod: #{response.body}") end else log("nerozpoznaná akce prislo: protokol:#{protokol},volano_z:#{volano_z},volano_na:#{volano_na},akce:#{akce}") end
Také je nutné mít nainstalovaný interpretr jazyka ruby, což uděláte ninstalováním příslušného balíčku podle Vaší distribuce. V Ubuntu nebo Debianu je to :
sudo aptitude install ruby