This is an old revision of the document!


Registrace protokolu - vlastní URL odorik://

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:

Windows

Stáhněte si následují soubor a rozbalte ho tak, aby jeho obsah byl v adresáři c:\odorik .

odorik_callback.zip

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

Nepovinné - jen pro experty, pokud se nudí

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

Příklad využití - Microsoft Excel

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.

Automatické poholdné vytáčení hovorů v Excelu

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í.

Příklad využití - LibreOffice (OpenOffice) Calc

=HYPERLINK(CONCATENATE("odorik:";C4);"volat přes Odorik") 

Automatické poholdné vytáčení hovorů v LibreOffice Calc

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.

Více informací.

Příklad využití - google spreadsheet

Spreadsheet od googlu nedovoluje volat vlastní URL (nebo URL registrované vámi nainstalvonou 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") 

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.

Google spreadsheet - own URL

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>

Linux

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
 
siptapi/registrace_protokolu.1546537433.txt.gz · Last modified: 2019/01/03 18:43 (external edit)