Portál AbcLinuxu, 25. dubna 2024 17:28


Dotaz: Jak zprovoznit VoIP SIP protokol za NATem

16.12.2005 16:44 SAM: | skóre: 23 | blog: marsark_linux
Jak zprovoznit VoIP SIP protokol za NATem
Přečteno: 4470×
Odpovědět | Admin
Poradil by mi někdo, jak zprovoznit VoIP pomocí SIP protokolu? Požívám program Xlite a harwarový telefon Well. Ani jeden se nepřipojí. Router je linuxí stroj, kde je nakonfigurován NAT. Prosím o nasměrování, jak dál. Zda existuje nějaký conntrack modul, nebo proxy? Pořádně nevím, co vlastně k tomu potřebuji?

Díky moc.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.12.2005 17:55 bman | skóre: 22 | blog: dristy
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Odpovědět | | Sbalit | Link | Blokovat | Admin
je viac moznosti:

1.
ak je ta ustredna nakonfigurovana tak ze si neberie IP telefonu zo SIP hlavicky ale z realneho spojenia odkial prisla poziadavka netreba robit takmer nic (ale toto asi nie je ten pripad)

2.
pouzit STUN server. ten spravi to, ze si zisti aku ostru IP bude mat dane spojenie ked prejde NATom a v SIP hlavicke nebude uvadzat lokalnu IP zariadenia, ale tuto zistenu IP. toto vacsinou pomaha. problem je ze niektore hw telefony/ata tuto funkciu nemaju, ale minimalne xlite ano

3.
rozbehnut SIP proxy na routri kde sa robi nat. programov je vela, ale naozaj light program ktory aj funguje s velmi skromnou konfiguraciou je perlovsky SaRP http://sarp.sourceforge.net/. staci fakt len perl a jeden cpan "modul" a bezi to pekne. v nastaveni zariadeni potom treba nastavit "outbound-proxy" na lokalnu IP toho routera. toto riesenie by mohlo byt relativne spolahlive a funkcne.

predpokladam ze jen router je teda obycajne iptables s natom a povolene vsetky odchadz. spojenia z lokalnej siete...
16.12.2005 18:54 billgates | skóre: 27
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Taktiez sa prihovaram za siproxd na routri alebo ak na neho nemate pristup, no mate nejaky server vonku, tak na nom mozete rozbehnut SER s far-end proxy alebo kludne aj Asterisk ak mate trosku casu. Pripadne, ak nemate ziadny, tak pouzite niektoru z uz existujucich spolocnosti, napriklad FWD, ktora far-end proxy ponuka.
16.12.2005 18:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžete zkusit třeba siproxd
17.12.2005 15:11 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Děkuji za podměty. Vyzkouším pro začátek proxy. Na routeru je 2.6.14 kernel a iptables nastavené jako stavový firewall.
17.12.2005 18:44 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Tak jsem zkusil zprovoznit siproxd. Nakonfiguroval jsem a přidal pravidla do iptables, ale x-lite se stejně nepřipojí, ani HW telefon.

Tady je vypis z logu:
© 2004 Xten Networks, Inc. All rights reserved.
X-Lite release 1103m build stamp 14262
License key: 63C91474FB4548939708A5F2A3B5A833

Established SIP protocol listen on: 192.168.1.2:5060

NAT firewall type discovered is forced.

SIP: 192.168.1.2:5060
RTP: 192.168.1.2:7070
NAT: 192.168.1.1

Discovered Blocked Firewall

PROXY#0: 212.71.129.35:5060

OUTBOUND-PROXY#0: 192.168.1.1:5060


SEND TIME: 26897875
SEND >> 192.168.1.1:5060
REGISTER sip:sip.ipex.cz SIP/2.0
Via: SIP/2.0/UDP 192.168.1.2:5060;rport;branch=z9hG4bK8C9AA993BCDE4A74A0
819EF9EE48DE12
From: Martin sip:222734727@sip.ipex.cz;tag=2295922708
To: Martin sip:222734727@sip.ipex.cz
Contact: "Martin" sip:222734727@192.168.1.2:5060
Call-ID: A16CF289338D4FDAAB3855861CE39A5A@sip.ipex.cz
CSeq: 27724 REGISTER
Expires: 1800
Max-Forwards: 70
User-Agent: X-Lite release 1103m
Content-Length: 0

17.12.2005 19:52 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Vyzkoušel jsem ještě ten SaRP. Xlite se sice připojí, ale při pokusu o vytočení čísla ten perlový modul spadne:
19:45:28   `-- tiberius currently resolves to mojeip
19:45:28 - RTP port range set to 7070-7080
19:45:28 - Number of available RTP ports: 11
19:45:28 - Listening for SIP traffic on UDP port 5060
Use of uninitialized value in substitution (s///) at /usr/local/bin/sarp.pl line 626.
Use of uninitialized value in pattern match (m//) at /usr/local/bin/sarp.pl line 627.
Use of uninitialized value in pattern match (m//) at /usr/local/bin/sarp.pl line 628.
Use of uninitialized value in hash element at /usr/local/bin/sarp.pl line 631.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/sarp.pl line 728
Nějaké další nápady?
17.12.2005 20:00 bman | skóre: 22 | blog: dristy
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
zaujimave

tu je moja konfiguracia s ktorou mi sarp chodi (/etc/sarp/config):

$verbosity = 1;
$proxy_name = '213.XXX.XXX.XXX';
$local_ip = '192.168.50.100';
@local_nets = ("192.168.0.0/16");
$proxy_port = '5060';
$rtp_start_port = '7070';
$rtp_end_port = '7080';
$printrtp = 0;
$use_pings = 0;
$sip_timeout = 60;
$logfile = '/tmp/sarp.log';
$debug = 1;

mne to skoro fungovalo aj vo windowse cez activeperl, takze v linuxe to musi ist urcite ;-)
17.12.2005 20:15 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Konfiguraci mám stejnou, ale vypisuje takové chyby. Když dám vytočit nějaké číslo, tak spadne s touto hláškou:
Bad arg length for Socket::pack_sockaddr_in,
 length is 0, should be 4 at /usr/lib/perl/5.8/Socket.pm line 201.
Takže nefunguje :-(
18.12.2005 13:06 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Tak se mi s tím stále nedaří pohnout. :-(
19.12.2005 16:39 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Opravdu žádný nápad ?
19.12.2005 17:58 bman | skóre: 22 | blog: dristy
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
tak ak nejde, mozno by stalo za pokus skusit STUN server. xlite ho urcite podporuje a ak je to aspon trocha rozumny hw telefon tak aj ten. na nete je ich kopec, napr stun.softjoys.com. na routeri netreba robit ziadne zasahy.
19.12.2005 20:37 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Stále bez úspěchu. Xlite stále hlásí: Login time timed out! Když jsem experimentoval se siproxd, tak jsem nikde v logu nenašel, že by se pokoušel připojit nějaký klient. V iptables jsem povolil pro input porty 5060 udp a 7070-7080 udp.
19.12.2005 21:08 Lada
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, mrkni na onsip.org je to pekne zpracovana stranka o SER proxy s dobre popsanym resenim pro SIP phones za NATem. STUN implementace u SIP phones byva nedokonala a nikdy moc dobre nefunguje. I s X-litem mam problem udelat NAT traversal se STUN.
19.12.2005 21:14 Lada
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dle tveho vypisu z x-litu: Za outbound proxy nic nezadavej... uved jen sip proxy
19.12.2005 21:23 Lada
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Odpovědět | | Sbalit | Link | Blokovat | Admin
ngrepem si zjisti jestli ti prichazeji SIP register pakety skrz firewall a jestli SIP proxy nejak vubec odpovida

ngrep -d any -W byline -O /tmp/trace.log port 5060

nebo tetherealem

tethereal port 5060 -w /tmp.soubor
19.12.2005 21:44 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Komunikace vypadá asi takto:
#
U 82.142.xxx.xxx:5060 -> 212.71.129.35:5060
REGISTER sip:sip.ipex.cz SIP/2.0.
Via: SIP/2.0/UDP 82.142.xxx.xxx:5060;branch=z9hG4bK4cb92f32b3fbc407edc220dc413463ce.
Via: SIP/2.0/UDP 192.168.1.2:5060;rport;branch=z9hG4bK7EBBB43968E442F58A70B2FE7514B29D.
From: Martin sip:222734727@sip.ipex.cz;tag=3381268976.
To: Martin sip:222734727@sip.ipex.cz
Call-ID: 9596FC5701284AD18C9A74CE24CECEEA@sip.ipex.cz.
CSeq: 17568 REGISTER.
Contact: "Martin" sip:222734727@82.142.xxx.xxx.
Expires: 1800.
Max-forwards: 69.
User-agent: X-Lite release 1103m.
Content-Length: 0.

#
U 212.71.129.35:5060 -> 82.142.xxx.xxx:5060
SIP/2.0 404 Not found.
Via: SIP/2.0/UDP 82.142.xxx.xx:5060;branch=z9hG4bK4cb92f32b3fbc407edc220dc413463ce;received=82.142.xxx.xxx.
Via: SIP/2.0/UDP 192.168.1.2:5060;rport;branch=z9hG4bK7EBBB43968E442F58A70B2FE7514B29D.
From: Martin sip:222734727@sip.ipex.cz;tag=3381268976.
To: Martin sip:222734727@sip.ipex.cz;tag=as356f2b4c.
Call-ID: 9596FC5701284AD18C9A74CE24CECEEA@sip.ipex.cz.
CSeq: 17568 REGISTER.
User-Agent: VoIPEX PBX.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
Max-Forwards: 70.
Contact: sip:222734727@212.71.129.35>
Content-Length: 0.

#
U 192.168.1.2:5060 -> 192.168.1.1:5060

#
U 192.168.1.2:5060 -> 192.168.1.1:5060
To 404 Not Found se mi ani trochu nelíbí, ale zdá se, že proxy server odpovídá.
19.12.2005 22:11 Lada
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
vypada to, ze tvoje uzivatelske jmeno 222734727 neexistuje v location databazi.. nevim presne jak to maji resenou uzivqtelskou databazi u siproxd.

doporucoval bych SER a z onsip.org si muzes jednoduse nainstalovat binarku, kdyz to nebudes chtit kompilovat, a v jejich dokumentu jsou dobre popsany reseni NAT traversalu s Mediaproxy a s RTPproxy i s konfiguracnimi soubory.
19.12.2005 22:21 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Po opravě konfigurace v xlite dostávám chybu:
U 212.71.129.35:5060 -> 82.142.xxx.xxx:5060
SIP/2.0 401 Unauthorized.
19.12.2005 22:31 Lada
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
hm mam malo informaci.. jak je to s tou uzivatelskou databazi? Unauthorized take muzes dostat, kdyz se prihlasujes s jinym jmenem nez je v databazi...
19.12.2005 22:38 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
No nevím přesně jak to má fungovat, ale na svém siproxd nemám žádnou uživatelskou databázi. Mám účet na voipex.cz a svůj siproxd mám nastavený jako Outbound-Proxy.
20.12.2005 09:16 Lada
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
jak se chova x-lite, kdyz dostane unauthorized? mel by odpovedet s novym radkem o authorizaci
20.12.2005 13:29 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
ano, přesně tak odpovídá cyklicky.
21.12.2005 09:36 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Tak jsem problém dočasně vyřešil dírou ve firewallu a namapováním portů pro SIP. Nepovažuji to sice za čisté řešení, ale nic jiného nechodilo.
LFCIB avatar 1.6.2007 20:56 LFCIB | skóre: 19 | blog: LFCIB | /home/lfcib
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Ahoj, už jsi to nějak vyřešil nastálo? Díky
-=:L:i:N:u:X:=-<=>-=:4:e:V:e:R:=- Vyhovuje mi Debian GNU/Linux
1.6.2007 22:42 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše Re: Jak zprovoznit VoIP SIP protokol za NATem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Uff, necetl jsem to cely, ale pridam svuj poznatek. U meho telefonu jsem zhadal nasi verejnou IP adresu a zapnul STUN a funguje. Na iGW neni pro SIP zadne specialni nastaveni. Jakmile si na domacim routeru zaonut NAT (fuj hnus satane odstup) tak sice muzu nekam zavolat ale nikoho neslisim.

U PAPT2-EU netreba zadavat verejnou IP ani STUN. Za dvojitou maskaradou jsem to nezkousel.

Obecne receno je logicke ze za dvojitou maskaradou to nepojede, protoze SIP server muze zjistit verejnou IP a poslat data zpet, ale druhou maskaradu uz to neproleze.

Smrt NATu !

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.