Hlasové hovory přes IP jsou citlivé především na jednu věc: latenci. Zpoždění 200 ms a váš rozhovor se změní v nepříjemné překřikování, kdy oba účastníci neustále mluví přes sebe. Proto je výběr správného proxy pro SIP provoz důležitější než téměř u jakéhokoli jiného použití.
Proč běžný proxy nestačí
SIP hovory zahrnují dva oddělené datové toky. Signalizace (navázání hovoru, vyzvánění, zavěšení) probíhá přes TCP nebo UDP na portu 5060. Samotný hlas — audio, které slyšíte — putuje jako RTP pakety přes UDP na dynamicky přidělených portech.
HTTP nebo HTTPS proxy zpracovává webový provoz. Nerozumí UDP a neumí přenášet hlasové pakety. Pokud se pokusíte směrovat VoIP softphone jako Zoiper nebo Linphone přes HTTP proxy, signalizace může částečně fungovat, ale zvuk nebude. Hovor se na papíře spojí, ale zůstane tichý.
Pro SIP hovory potřebujete SIP proxy server s podporou SOCKS5 a UDP relay. Tento protokol tuneluje jak signalizaci, tak hlasový stream přes proxy, čímž zachová celý hovor neporušený.
Co vlastně dělá SOCKS5 s UDP relay
Když váš softphone nebo PBX — ať už je to Asterisk, FreePBX, nebo desktopový klient jako Zoiper — směruje provoz přes SOCKS5 proxy s podporou UDP, proxy zvládá obě vrstvy:
- SIP signalizace: INVITE, ACK, BYE — všechny zprávy, které zahajují a ukončují hovory
- RTP média: samotné audio pakety proudící oběma směry
Proxy také řeší problémy s NAT. SIP byl navržen pro přímou peer-to-peer komunikaci a do signalizačních zpráv vkládá privátní IP adresy. Za NAT jsou tyto adresy zvenčí nedostupné. SIP outbound proxy přepíše připojení tak, aby si obě strany mohly normálně vyměňovat audio — bez STUN serverů, bez složitých pravidel firewallu.
Kde to má význam
Nejčastějším případem jsou call centra působící přeshraničně. Vaši agenti jsou v jedné zemi, vaše telefonní čísla a SIP trunky v jiné. Směrování hovorů přes proxy v regionu daného čísla udržuje nízkou latenci a provoz vypadá pro poskytovatele jako lokální.
Firmy provozující více SIP trunků někdy potřebují samostatnou IP adresu pro každý trunk – poskytovatelé sledují, které IP adresy se k jejich systémům připojují, a sdílení jedné adresy mezi mnoha trunky může vyvolat upozornění na podvod. Dedikovaná proxy pro každý trunk udržuje vše v pořádku.
Blokování VoIP je dalším případem. Některé sítě a země SIP provoz omezují nebo zcela blokují. Směrování přes proxy v neomezené lokalitě to obchází — síť vidí běžný šifrovaný provoz místo SIP paketů.
Na co se zaměřit při výběru proxy pro volání
Latence je klíčová. U web scrapingu je 500 ms na požadavek v pořádku. U telefonního hovoru je ale cokoli nad 150 ms v jednom směru znatelné. Datacenter proxy zde vítězí – jsou umístěné v datových centrech s přímými trasami a minimálním počtem hopů. Rezidenční nebo mobilní proxy přidávají další přenosové body, které zvyšují zpoždění.
Stabilita je stejně důležitá. Proxy, které na půl sekundy vypadne spojení během scrapování, není žádný problém – skript to zkusí znovu. Uprostřed hovoru to ale znamená přerušený hovor. Statické IP na spolehlivé infrastruktuře tomu zabrání.
FineProxy nabízí plnohodnotný SOCKS5 s UDP relay — signalizace i hlas procházejí jediným připojením. Infrastruktura datacentra zajišťuje nízkou latenci a statická IP adresa zůstává po celou dobu pronájmu stejná. Pro sestavení vyžadující šifrování na signalizační vrstvě máme rovněž HTTPS proxy s individuálními SSL certifikáty pro každou IP.