Výpis hovorů přes API

Jak ovládat Odorik a používat služby pomocí speciálních programů a aplikací.
leosl
Příspěvky: 11
Registrován: čtv 07. bře 2013 23:30:02

Výpis hovorů přes API

Příspěvek od leosl »

Používám api k získání výpisu hovorů.
Bohužel jsem zjistil jistou "nejednotnost" při výpisu.

Nejednotnost je v destination_name, uvedu na příkladech
při volání na pevnou ,Česká rep. - pevná,
sip volání ,sip:00420566466289@419846,
ale při volání na 841... je zde
,"Česká rep. 840, 841, 842, 848",
navíc jsou " a bylo by dle mého názoru vhodné čísla 840 841 842 848 neodělovat čárkou ale např. jen mezerou.
A to z toho důvodu, že při zpracování řetezce jeho rozdělením na jednotlivé položky s následným zpracováním , se Česká rep. 840, 841, 842, 848 rozdělí na
Česká rep. 840
841
842
848
což je samozřejmě špatně.

id,redirection_parent_id,date,direction,source_number,destination_number,destination_name,length,ringing_length,status,price,price_per_minute,balance_after,line
59807745,,2013-03-26T08:09:28Z,out,00420566466xxx,00420568839xxx,Česká rep. - pevná,861,7,answered,8.4665,0.59,146.6425,689xxx
59812700,,2013-03-26T09:17:47Z,out,00420566466xxx,00420841114xxx,"Česká rep. 840, 841, 842, 848",686,3,answered,16.464,1.44,130.1785,689xxx
59819737,59819738,2013-03-26T10:48:55Z,out,00420776397xxx,sip:00420566466xxx@419xxx,SIP na IP,718,9,answered,0.0,0.0,130.1785,689xxx
59819738,,2013-03-26T10:48:55Z,in,00420776397xxx,00420566466xxx,Česko v síti,718,9,answered,0.0,0.0,130.1785,689xxx
59826981,59826982,2013-03-26T12:36:58Z,out,00420604226xxx,sip:00420566466289@419846,SIP na IP,465,11,answered,0.0,0.0,130.1785,689xxx
59826982,,2013-03-26T12:36:58Z,in,0042060422xxx,00420566466xxx,Česko v síti,465,11,answered,0.0,0.0,130.1785,689xxx
59830219,,2013-03-26T13:25:53Z,out,00420566466xxx,00420775559x,Česká rep. - mobil,81,21,answered,1.35,1.0,128.8285,689xxx
59830693,,2013-03-26T13:33:43Z,out,00420566466xxx,00420841114xxx,"Česká rep. 840, 841, 842, 848",0,21,missed,0.0,1.44,128.8285,689xxx
59831750,,2013-03-26T13:36:09Z,in,00420776397xxx,00420566466xxx,Česko v síti,782,2,answered,0.0,0.0,128.8285,689xxx
59832104,,2013-03-26T13:54:24Z,out,00420566466xxx,00420841114114,"Česká rep. 840, 841, 842, 848",0,20,missed,0.0,1.44,128.8285,689xxx
59832105,,2013-03-26T13:54:30Z,out,00420566466xxx,00420841114114,"Česká rep. 840, 841, 842, 848",0,14,missed,0.0,1.44,128.8285,689xxx
59832106,,2013-03-26T13:54:35Z,out,00420566466xxx,00420841114114,"Česká rep. 840, 841, 842, 848",0,9,missed,0.0,1.44,128.8285,689xxx

Leoš
GeBu
Příspěvky: 553
Registrován: sob 12. úno 2011 23:14:28

Re: Výpis hovorů přes API

Příspěvek od GeBu »

Máš na to nějakou aplikačku? Nechceš se poděli?
leosl
Příspěvky: 11
Registrován: čtv 07. bře 2013 23:30:02

Re: Výpis hovorů přes API

Příspěvek od leosl »

GeBu píše:Máš na to nějakou aplikačku? Nechceš se poděli?
Aplikace je v bashi,
jenomže jak se ve výpisu volání objeví "Česká rep. 840, 841, 842, 848" tak to samozřejmě nasype do db blbosti.

Pokud se to nesjednotí na straně odoriku, tak budu muset tu aplikaci přepsat...
L.
superdays
Příspěvky: 1
Registrován: stř 27. bře 2013 17:11:39

Re: Výpis hovorů přes API

Příspěvek od superdays »

Prosím poradí mne někdo jak zadat správně uri u Odorika byl jsem u voocall ale voocall mne nenatchl málo možností a málo služeb.
Kdy jsem chtěl nastavit api u odorika tak jsem nikde neviděl vzor jak zadavat api pro call back jako je to třeba u voocall.


https://www.voocall.cz/api/?u=prihlasov ... mbuduvolat

Existuje na odorik.cz nějaký vozor api pro call back. děkuji za radu
leosl
Příspěvky: 11
Registrován: čtv 07. bře 2013 23:30:02

Re: Výpis hovorů přes API

Příspěvek od leosl »

superdays píše:Prosím poradí mne někdo jak zadat správně uri u Odorika byl jsem u voocall ale voocall mne nenatchl málo možností a málo služeb.
Kdy jsem chtěl nastavit api u odorika tak jsem nikde neviděl vzor jak zadavat api pro call back jako je to třeba u voocall.


https://www.voocall.cz/api/?u=prihlasov ... mbuduvolat

Existuje na odorik.cz nějaký vozor api pro call back. děkuji za radu

api pro zjištění creditu:
https://www.odorik.cz/api/v1/balance?us ... word=heslo

ovšem pozor, tohle fungovat nebude
https://www.odorik.cz/api/v1/callback?c ... word=heslo

je třeba to dělat metodou POST, nikoli GET..
GET metoda na api není vhodná, protože nechcete mít heslo v historii prohlížeče.

Někde v LNxu jsem měl napsaný php které umělo vyvolat zpětné volání, ale nemůžu to najít. Pokud najdu,hodím to sem.

Nějaké povídání o api zde: https://www.odorik.cz/w/api

L.
Uživatelský avatar
Zedna
Příspěvky: 736
Registrován: stř 04. dub 2012 0:57:53

Re: Výpis hovorů přes API

Příspěvek od Zedna »

Zde jsem zverejnil skripty vyuzivajici API Odorik v programovacim jazyku Autoit, treba se bude nekomu hodit:
http://forum.odorik.cz/viewtopic.php?f= ... =api#p2966

Jinak samozrejme se pridavam k prosbe v prvnim prispevku,
tedy nepouzivat u CSV v popisu typu hovoru carky.

Sice je to dle CSV specifikace korektni, pouzit uvozovky tam, kde jsou carky,
ale pro nasledny parsing je to prilis slozite.

Pritom reseni ze strany Odorik je velmi jednoduche.
MaT
Příspěvky: 364
Registrován: pát 29. bře 2013 14:35:14

Re: Výpis hovorů přes API

Příspěvek od MaT »

A nebylo by lepší na parsování CSV používat nějakou knihovnu, která si s tímhle poradí, než to prostě jen splitnout podle čárek? Nevím jak v BASHi, ale v Pythonu (modul csv) a Perlu (Text::CSV) to není problém... Ale šel by napsat i regexp, který by ignoroval čárky, co jsou mezi uvozovkami, ale kdo by se s tím páral, když jsou lepší řešení...
Uživatelský avatar
Largon
Příspěvky: 448
Registrován: pon 07. lis 2011 10:14:09

Re: Výpis hovorů přes API

Příspěvek od Largon »

Hodnota atributu destination_name se bere přímo z ceníku a nepoužívá se jen v rámci API, ale také například v cenové kalkulačce u nás na webu anebo ve výpisu hovorů. Takže na této úrovni to nemohu nijak modifikovat.

Teoreticky bych se mohl čárek zbavit při generování CSV, ale osobně jsem proti takovému řešení. Myslím, že je docela smysluplným požadavkem na náš CSV výstup, aby se dal například importovat do spreadsheetu. V buňce by pak byla hodnota "Česká rep. 840 841 842 848", což je nemysl. A vzhledem k tomu, že atribut destination_name jen přebírám z jiného zdroje, tak bych se rád vyhnul nějakému přepisování jeho částí naslepo.

Jak už v tomto vlákně zaznělo, tak použití čárek uvnitř uvozovek odpovídá specifikaci (RFC 4180).

Myslím si, že bash není vhodný nástroj pro toto použití. Opravdu bych doporučil spíše použít některý z moderních dynamických jazyků s podporou CSV v rámci knihovních funkcí. Anebo se možná podívat i přímo na možnosti databáze, kterou používáte. Mám za to, že MySQL i PostgreSQL zvládnou importovat data přímo z CSV.

Zběžně jsme náhlednul i do repozitářů Debianu a Gentoo a obsahují nástroje csvtool a csvfix, který vypadají, že by mohly být nápomocné při řešení v bashi.

Proberu to v pondělí ještě s kolegy.
leosl
Příspěvky: 11
Registrován: čtv 07. bře 2013 23:30:02

Re: Výpis hovorů přes API

Příspěvek od leosl »

OK,
díky za odpověď,
beru to tedy tak, že odorik poskytuje výpis v souladu s RFC, tedy se vrhnu na vlastní řešení.

L.
leosl
Příspěvky: 11
Registrován: čtv 07. bře 2013 23:30:02

Re: Výpis hovorů přes API

Příspěvek od leosl »

Ještě bych se odorik.cz optal na jednu věc.

Proč při příchozím hovoru se při výpisu API objevuje hovor 2x
ale při načtení webem jenom 1x ?

60032690,,2013-03-30T07:46:48Z,in,00420739377xxx,00420910111xxx,Česko v síti,35,4,answered,0.0,0.0,190.3396,419xxx
60032692,60032690,2013-03-30T07:46:48Z,out,00420739377xxx,sip:00420910111xxx@419xxx,SIP na IP,35,4,answered,0.0,0.0,190.3396,419xxx

Díky,
L.
Odpovědět