VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Diskuze o telefonování a telefonních službách, rady, návody, připomínky, ...
Paulos
Příspěvky: 8
Registrován: pon 26. srp 2013 20:21:05

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od Paulos »

Jako majitel Windows Phone 8 jsem se rozhodl trochu obhlédnout situaci. A zatím nejlíp mi vychází právě Zoiper, kterého tady zmiňoval předchozí pisatel. Na Wifi v podstatě bezchybná kvalita hovoru, na mobilním připojení to sem tam lupne, ale příchozí i odchozí hovory zatím všude fungovaly na jedničku - a to vše při výchozím nastavení. Jsem si jistý, že kdybych se v tom vrtal déle - a nebo si koupil ten úsporný G.729 kodek, - situace by se beztak ještě zlepšila.
Aplikace samotná má pár chybiček spíš minoritního charakteru, ale toho si člověk všimne, až když ji používá delší dobu, a třeba takový Linphone je na tom ještě hůř. (Dokázal mi např. sežrat celou baterku jen tím, že jsem si zavolal na číslo svého mobilu, ze kterého jsem volal přes SIP, a hovor jsem zvednul.)

Bohužel má ten systém VoIP hovorů na WP, ač je docela promyšlený, jednu trochu negativní vlastnost: aby šlo přijímat hovory, musí být buď aplikace spuštěná, nebo musí SIP proxy při příchozím hovoru odeslat speciální PUSH notifikaci - neboli HTTP POST požadavek - na adresu spojenou s daným zařízením. Tím se aplikace probudí a je připravená přijmout hovor.
Adresu pro push dostane SIP proxy při registraci ve speciální hlavičce (X-PUSH-URI). Probuzení a připojení k SIP proběhne cca do 10 sekund od odeslání notifikace. Toto řešení si obvykle také žádá delší dobu registrace, protože Zoiper v telefonu nemůže na pozadí se SIP proxy vůbec komunikovat. (Ono by to vlastně asi šlo, ale bylo by to dost krkolomné.)

Sám Zoiper má tento proces velmi dobře popsaný na svých stránkách - spolu s návody, jak PUSH rozchodit na známých SIP proxy. Viz http://www.zoiper.com/en/tutorials/push-notifications
Osobně jsem toto chování otestoval pomocí generátoru HTTP dotazů, a opravdu to funguje přesně tak, jak popisují. Vlastně jediný důvod, proč ten PUSH dotaz posílá právě ta SIP proxy, je ten, že zaznamená příchozí hovor, jinak k tomu není potřeba naprosto nic, ta push zpráva má naprosto generický formát. :)

Rád bych se jenom zeptal, jestli je někdy v budoucnu aspoň malinkatá šance, aby Odorik takový push systém (aspoň neoficiálně) podporoval? Nevím, jak složité by to bylo naimplementovat, ani zda se to vyplatí, jen by to bylo strašně fajn. :)
greg
Příspěvky: 1
Registrován: čtv 11. zář 2014 13:35:18

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od greg »

Dobrý den všem, obracím se s prosbou o radu.
Užíval jsem Nokia E66, ve které jsem u každého kontaktu mohl vybrat možmost hlasového volání, internetového volání (připojoval jsem se přes SIP a mojí WiFi), nebo sms... Fungovalo to perfektně s tím, že internetové volání jsem u odorik.cz používal jenom na volání ven, nikoli pro příjem. K příjmu jsem užíval číslo ze SIMky odoriku 799....

Nyní testuji (do 17.9.) novou Nokia Lumia 630 Dual SIM. Jednu SIMku používám právě pro odorik.cz, ale systém mi nabízí pouze možnost hlasového volání - žádné internové volání v nabídce není. V této diskusi jsem zjistil informace o aplikaci pro Windows Phone, jménem ZoIPer, stáhl jsem si nejnovější verzi 2.14, ale stále se mi nedaří vyplnit požadovaná nastavení SIP odorik.cz tak, abych se přes WiFi připojil. Postačilo by mi opět nastavení takové, abych mohl jenom volat. V mobilu mám aktualizovaný Windows Phone 8.1 cz.

Neexestuje pro Zoiper nějaká možnost propojení kontaktů s kontakty v mobilu?

Prosím o pomoc s nastavením aplikace Zoipru pro můj mobil a pro SIP odorik. Nejsem žádný odborník a moje agličtina je velmi slabá :-(
Případně zašlu svůj email. Děkuji.
Uživatelský avatar
Dollphinka
Příspěvky: 42
Registrován: pon 24. úno 2014 14:23:31

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od Dollphinka »

Pro nastavení Zoiperu postupujte podle návodu na wiki. Jedná se sice o návod pro IAX protokol, ale stejný postup je i pro SIP protokol. Pokud budete nastavovat účet pro SIP protokol, vyplňte v položce "Host" sip.odorik.cz.
http://www.odorik.cz/w/zoiper_iax_telefon_pro_android

V Zoiperu máte veškeré kontakty uložené v telefonu viditelné, včetně protokolu volání, takže nemusíte nikde nic složitě hledat. Přihlásíte si Zoiper, vyberete kontakt přímo v zoiperu (položka Contacts nebo z výpisu volání položka Call log)a voláte (tím uskutečňujete odchozí hovory).
kapetr
Příspěvky: 224
Registrován: stř 12. říj 2011 7:14:21

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od kapetr »

Paulos píše: Bohužel má ten systém VoIP hovorů na WP, ač je docela promyšlený, jednu trochu negativní vlastnost: aby šlo přijímat hovory, musí být buď aplikace spuštěná, nebo musí SIP proxy při příchozím hovoru odeslat speciální PUSH notifikaci - neboli HTTP POST požadavek - na adresu spojenou s daným zařízením. Tím se aplikace probudí a je připravená přijmout hovor.
Jelikož zvažuji koupi Windows phone mobilu, tak mě váš příspěvek zaujal
Jak tvrdí Zoiper (http://www.zoiper.com/en/tutorials/push-notifications):
Windows phone 8 does not allow voip applications to keep running in the background. The only way to reliably achieve incoming calls or messages is to use PUSH notifications.
Ale Google mi rychle nalezl např.: http://smartmania.cz/bleskovky/co-je-no ... ozadi-7525
kde není o nemožnosti běhu na pozadí (ani ve W8 ani ve W8.1).
Mělo by jít "jen" o baterku - nicméně pokud přece aplikace (ať voip či jiná) "nemá co dělat", tak by žádný procesorový čas (a tedy baterku) zatěžovat neměla.
Nebo že by odesílání/příjem NAT keep alive (a občasných přeregistrací) a z nich plynoucí síť. komunikace bylo/a takovou zátěží, že by stálo za to vymýšlet nějaký HTTP PUSH mechanismus ?
A jak to řeší Android ?

P.S.: Nicméně pokud jde o příjem VoIP hovorů - je to opravdu nutné řešit příjmem VoIP aplikací ? Vždyť pokud nejde o akademickou/zasvěcenou skupinu lidí používajících čistě VoIP komunikaci (aby ušetřil i ten vám volající), tak příjem hovorů na VoIP číslo elegantně vyřeší paralelní zvonění na mobil přes GSM.
Paulos
Příspěvky: 8
Registrován: pon 26. srp 2013 20:21:05

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od Paulos »

U WP8 (a platí to i na 8.1) mohou na pozadí běžet jen určité druhy aplikací, řekněme např. ty, co používají GPS a např. navigují nebo sbírají polohu uživatele, i když je aplikace vypnuta. Ono se to nezdá, ale spuštěné datové přenosy samy o sobě sežerou hodně baterie. Pokud musí aplikace celou dobu naslouchat na nějakém portu, může to být docela zátěž, nedej bože, když se ti ještě mění IP adresy při přechodu mezi 3G a Wifi, což samozřejmě ten agent musí taky podchytit. Takže řešení pomocí PUSH je relativně energeticky nenáročné, protože jde o systémovou komponentu optimalizovanou tak, aby nežrala tolik baterky.

U Androidu mohou běžet na pozadí prakticky jakékoliv služby, ale je třeba počítat s tím, že když se tam pustí něco náročného, tak baterka prostě půjde dolů. ;)

Dobrá poznámka k paralelnímu zvonění, sám to mám nastavené velmi podobně.
kapetr
Příspěvky: 224
Registrován: stř 12. říj 2011 7:14:21

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od kapetr »

To mě docela překvapuje. Datově spojení (GPRS/EDGE/3G/4G/WiFi/?) musí být navázané - jinak by nepřišel ani ten HTTP PUSH.
Jak může tedy pouhé naslouchání na portu (=zablokovaný proces čekající na vzbuzení od jádra OS) spotřebovávat baterku ? To si tak nějak neumím představit.
utx
Příspěvky: 123
Registrován: pon 27. kvě 2013 23:10:42

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od utx »

kapetr píše:To mě docela překvapuje. Datově spojení (GPRS/EDGE/3G/4G/WiFi/?) musí být navázané - jinak by nepřišel ani ten HTTP PUSH.
Jak může tedy pouhé naslouchání na portu (=zablokovaný proces čekající na vzbuzení od jádra OS) spotřebovávat baterku ? To si tak nějak neumím představit.
To, co operátoři nabízejí, není Internet. Nasloucháním na portu vám nic nedojde, neboť nemáte veřejnou IP adresu. Musíte mít aktivně navázané spojení, po kterém vám něco může přijít nazpět. Jenže ani to není plnohodnotné internetové spojení. Prochází jedním či více NATy. A aby se spojení na NATu nerozpadlo, musíte pravidelně odesílat Keep Alive pakety. Nikde není řečeno, jak často. Běžná hodnota je v desítkách sekund. Experimentálně zjištěná doba, za kterou Odorikův síťový operátor T-Mobile přerušuje NAT spojení, je 120 sekund (u O2 je to taktéž 120 sekund, u Vodafone nevím, ale už jsem se setkal s WiFi sítěmi, kde to bylo jen 40 sekund.) Je to o to horší, že dokud nepošlete nějaký požadavek, tak SIP klient vůbec nepozná, že se třeba nějaký Keep Alive paket ztratil nebo opozdil, a spojení se rozpadlo. Pakety posílá dál, NAT je zahazuje, a SIP klient předpokládá, že je stále na příjmu.

Pokud má vaše aplikace či váš OS možnost nastavit prodlevu posílání Keep Alive paketů, můžete si ověřit, jak velký vliv mají na výdrž na baterii.

Různé Cloud Messaging implementace vlastně šetří baterii jen tím, že fungují jako integrátory Keep Alive paketů. Nebýt dnešního IPv4 polointernetu, byly by zhola zbytečné.

Pokud to dobře chápu, SIP Push Notifikace funguje tak, že nějakému serveru na netu prozradíte své přihlašovací údaje na SIP server, on udržuje spojení se serverem, a pokud detekuje vyzvánění, pošle o tom zprávu do mobilního telefonu před Cloud Messaging v OS. Je to tedy dvousečná zbraň. Jediná úspora baterie je tedy v tom, kolik otevřených spojení musí posílat Keep Alive pakety. (Rozumně napsaný OS by mohl Keep Alive pakety jednotlivých spojení sdružovat, a při probuzení jich odeslat více najednou.)
kapetr
Příspěvky: 224
Registrován: stř 12. říj 2011 7:14:21

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od kapetr »

Jen poznámka pro utx: o Keep Alive a NAT vím (celkem dost), sám jsem se o něm o příspěvek výše zmínil. Reagoval jsem na údajnou spotřebu pouhým nasloucháním na portu.

Ale ještě k tomu navázanému dat. spojení (GPRS/... - ne TCP/IP). Před časem jsem se ptal na Kaktusu, jak je to s účtováním dat (kdy, po kolika) - prý po každém ukončeném "spojení". U 2G/3G modemu se datové spojení musí navázat (nastavit APN + CALL *99#) - a následně zavěsit. Ano - i když jde o paketovou síť. U mobilů je to prý podobně a různé mobily různě "zavěšují". Některé např. po určité době neaktivity, některé prý po ukončení poslední aplikace vyžadující přístup na Net.

Pokud je to tak, ta by spuštěná (byť uspaná - nekomunikující) aplikace typu VoIP klienta mohla nutit mobil udržovat navázané spojení (opět - mluvím o GPRS & co.), čímž by (nevím) mohla způsobovat zvýšenou spotřebu. Nicméně o tom pochybuji, neboť předpokládám, že ve smartfonech vždy budou existovat jiné, třeba systémové, potřeby dat. spojení, takže spíše myslím, že mobil udržuje dat. spojení stále (pokud mu to nezakážeme).
Paulos
Příspěvky: 8
Registrován: pon 26. srp 2013 20:21:05

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od Paulos »

Jo, to byl kec... Nebyl jsem si jistý, jak často a zda se nějaké Keep-Alive pakety posílají (a zda je to nutné, což samozřejmě je), takže jsem to tam nepsal. Zabijte mě někdo... :)
kapetr
Příspěvky: 224
Registrován: stř 12. říj 2011 7:14:21

Re: VoIP (SIP) a Windows Phone 8+volání mobilem přes net

Příspěvek od kapetr »

Jen klid, nic co bylo mnou řečeno nebylo vůbec ve zlém, naopak ;)
Písemná komunikace může vyznít nechtěně neosobně. Zdravím.

Jinak - i když bude VoIP klient posílat á 30s Keep Alive paket, tak si uvědomme, jak malinké množství času to zabere - kousek kódu - včetně vlastního odeslání dat v tak jako tak navázaném spojení (tom GPRS i TCP/IP). To nemůže vyvolat nějakou větší spotřebu - leda, že přepnutí kontextu (přepnutí na proces VoIP klienta) vyjde draho: má-li mobil nedostatek paměti a segmenty procesu (resp. paměťové stránky) musí být častěji natahovány a vraceny na disk (flash paměť). U nějakého low-RAM mobilu s 256/512MB to může padat v úvahu.

Out of topic: Jsem asi poslední ne-důchodce, který ještě smartfoun nemá - co mi na nich totiž zásadně vadí je právě jejich mizerná výdrž. Já kašlu na mobil chlubící se 5 mm tloušťkou, který ale klekne za pár hodin. Chci raději 20 mm špekouna co vydrží několik dní!
Odpovědět