ls -1TörténelemHUP adás-vételNépszerű témákNépszerű fórum témákHardverLinux Weekly NewsFreeBSD Project NewsOpenBSD Journal |
Asterisk tuzfal mogul. De milyen portokkal? - MEGOLDVAHello, Az /etc/asterisk/sip_nat.cfg file ki lett toltve az alabbiak szerint: nat = yes valamint a tuzfalon kiengedtem az 5060 as tcp, es udp portokat. Lehet hogy ezek kozul nem kell a tcp vagy udp, ebben nem voltam biztos. A problema a kovetkezo: Be tudnak a kliensek jelentkezni, de ha nalam kicsong, es felveszem, akkor nem hallom azt aki hiv, es visszafele. Gondolom az a baj, hogy meg bizonyos portokat ki kellene engednem.
»
|
KeresésNavigációBelépésHupWikiÁllásajánlatokHWSWFriss blogbejegyzésekHUP napi hírlevélLegfrissebb HUP videókLegfrissebb HUP képekLegfrissebb HUP dokumentumokSzavazásMit tudsz a B-tree struktúráról? Részletekbe menően ismerem a felépítését, funkcióját, határait és felhasználását. 10% Kevésbé ismerem, mint az első pontban, de hozzá tudok szólni a témához. 18% Használom, de nem ismerem minden részletét. 4% Hallottam már róla, minimális mértékben ismerem. 27% Egyáltalán nem ismerem. 34% Csak az eredmény érdekel. 7% Összes szavazat: 565
Új felhasználók
InformációKövess minket!Partnerünk |
hogy legyen mit a google-ba írni: rtp
;)
Meg, hogy stun.
stun imho akkor lenne érdekes, ha a sip szerver lenne ip nat outside, és a kliens pedig ip nat inside.
(meg főleg, hogy feltételezvén fix ipről van szó, merthogy kívülről akarja piszkálni, nem kell stun, hanem szépen megadja az asterisknek, hogy mi a külvilág és keziccsókolom)
Mauzi-nak még egy pont. Ha nem fix IP mögött van, akkor viszont DynDNS, vagy valami hasonló móka kell.
Nekem erős a gyanúm h mindkét eset fennáll, elég ritka az manapság hogy a kliens ne legyen router mögött. Persze ez a témából nem derült ki, ez csak az én gyanúm.
Abban biztos vagyok hogy rtp probléma, nem mennek át a csomagok, lehet hogy már az asterisk szerveren elakad, lehet azis hogy a kliens natján akad el, a hibajelenség ugyanaz.
Én megpróbálnám azt, amit lentebb is javasoltak, kinyitni az asterisk tűzfalát egy adott kliens ip felé, a kliens ip-n közvetlenül (router nélkül) futtatott x-lite-al bejelentkezni, megnézni mivan. Ha műxik, azterisk tűzfalon a megfelelő portokat engedélyezni. Ha ez megvan, akkor megnézni router mögötti klienssel. Ha nem megy, publikus stun szerver beállítása az x-lite kliensnek, vagy kliens routeren megfelelő portok átirányítása.
Ha ez túl bonyolult, akkor mindkét oldalon tcpdumppal és asterisken sip debug-al figyelgetni a kommunikációt és kiszűrni hol akadnak el a csomagok.
--
http://csuhai.hu
Az rtp-nek plusz egy pont. (Bár én az asterisk konfig könyvtárát is átnézném rtp sztringre keresve. ;-D)
Milyen tűzfalról van szó?
PIX,ASA? Vagy valamilyen iptalbes tűzfal?
Érdemes lenne figyelni a hálozati forgalmat, és az által kideriteni, hogy esetleg mi az a csomag/hálozati forgalom ami nem megy.
Csak sima IPTables -es tuzfal.
Meg sosem csinaltam ilyet, azert kernelek benneteket, hogy egy kicsit szajbaragosabban magyarazzatok el nekem hogy meg mit kellene tennem a siker erdekeben.
akkor tcpdump ha van, esetlegesen ezzel a kapcsoloval:
tcpdump -i -s 1500 -w
így még külső programmal is meg tudod nézni mint pl. wireshark
egy tipp ami néha be szokott válni.
Mielőtt a tűzfalat boncolgatod próbáld ki hogy teljesen kinyitod és úgy megy-e. Értsd: megadsz egy szabályt akár egy IPre, ami teljesen nyitva van, és arról megpróbálod. Ha megy akkor valóban tűzfal-baj. Ha nem akkor máshol a hiba.
Es esetleg nem tudja valaki hogy ahhoz hogy a hangalapu kommunikacio menjen milyen port - tartomanyt kell kinyitni? Vagy ez a dolog nem ilyen egyszeru?
http://forums.whirlpool.net.au/forum-replies-archive.cfm/744887.html
Ezen az oldalon talaltam valamit, itt arrol irnak hogy az rtp.conf allomanyban hatarozom meg, hogy hany aktiv kapcsolat lehet egyszerre egy szerveren, es ennek fuggvenyeben kell a portforwardot veghezvinni?
Vagy lehet hogy rossz nyomon vagyok.
Röviden: az rtp.conf-ban van az rtpstart és rtpend értékpár. Ezek közül fog rtp portot választani a médiához az asterisk (a tartományba beleértve a két megadott értéket is).
Magyarul, ha az rtpstart 16000, az rtpend pedig 17000, akkor portforwarddal a 16000-17000 tartományt (UDP) kell az asterisk felé irányítani. Nyilván ha kevesebb az egyidejű beszélgetések száma, akkor ez kisebb tartomány lesz.
Medve, akkor zz fog kinezni, hogy az rtp.confban mondjuk megadom 16000 -tol 16010-ig kiterjedo tartomanyt, aztan a tuzfalban ezeket kiforwardolom es akkor egyszerre 10 beszelgetes futhat parallelben?
Helyesen ertelmeztem amit irtal?
Ha jól emlékszek, akkor pl. a Linksys telefonok nem turmixolják az RTP portokat. Vagyis 1 beszélgetéshez kettő kell. De ha mondjuk szeretnél olyat, hogy hívástartás vagy hívásátadás (xfer/bxfer), akkor meg inkább 4. (Softphone-oknál lehet, hogy csak 1-1-et nyit.) Bővebben ezt nézd meg.
Mondjuk annyiban elírtam tehát, hogy a második számnak páratlant kellene beállítani (ha mégis párosat adsz meg, akkor az asterisk az utánakövetkező páratlant még használja). Tehát mondjuk a 16000-16009 portok 5 egyidejű beszélgetést adnak. (A tartásban lévő hívások is beszélgetésnek számítanak.)
Szerintem nem érdemes kicentizni. Ha csak nincs valami nagyon erős érv, akkor érdemes egy 100-as porttartományt megnyitni.
Igazabol ez az egesz hadmuvelet csak egy uzenetrogzito jellegu takolmanyt takarna.
Tehat lenne 10 user de ok egymas kozott nem beszelgetnenek, csak valamennyiuk kintrol nekem hagyna uzenetet.
Tehat legvegso esetben /de ez szelsoseges/ nem tortenne egyszerre ket beszelgetesnel tobb egyszerre.
De nem az lenne a fo csapasirany hogy egyaltalan valos ideju kommunikacio tortenne ket fel kozott.
Es a kliensek szamitogepeken futnanak /X-Lite ra gondoltam/.
ip_nat_sip, ip_conntrack_sip modulok a firewall kernelébe
--
Gabriel Akos
netstat -lepn nagyon sokat tud am segiteni, a LISTEN allapotu kapcsolatokra erdemes grep-pel szurni. Ha root-kent adod ki, a -p kapcsolo megadja a figyelo progi nevet, jelen esetben neked az asterisk proginevet kell keresni.
-m conntrack --ctstate ESTABLISHED,RELATED mindenkepp kelleni fog, meg az iptables SIP kezeloje.
--
()=() Ki oda vagyik, ('Y') hol szall a galamb C . C elszalasztja a ()_() kincset itt alant.Mint mar annyiszor, most is sikerul magyarorszag legjobb foruman a legsegitokeszebb emberek segitsegevel megtalalni a valaszokat a kerdeseimre.
Ezuttal e-medve hozzaszolasa vitte a palmat:
Az rtp.conf allomanyban megadtam egy 5 portbol allo tartomanyt, aztan ezeket UDP portkent kitereltem a tuzfalon keresztul.Tokeletesen akadozasmentesen ment a csekelyke savszel ellenere is.
Nagyon szepen koszonom mindenkinek a segitseget, a rengeteg hasznos tanacsot es a turelmet.
Kulon Medvenek, hogy egy huszaros vagassal elmondta, hogy mi az ami orvosolja a gondomat.
Ezer hala a segitsegert!
Hogy ne szívd nagyon meg, az az 5 port legyen inkább 6. (Pl. 16000-16005) Az asterisk úgyis fogja használni, de ha nem így adod meg a portforwardban, akkor lehetnek még érdekes hibakeresések.
En azert kevesellem ezt a 6-ot. Nyugodan lehetne adni egy szazas tartomanyt, nem ker kenyeret...
--
()=() Ki oda vagyik, ('Y') hol szall a galamb C . C elszalasztja a ()_() kincset itt alant.Én is keveslem, de 3 szimultán beszélgetéshez elég.
(Nálam egy 100-as tartomány van itthon.)
Sziasztok!
Nem foglalkoztam még nagyon voip-pel, most kaptam kedvet egy kis voip-ezéshez, csak úgy :) Öröm és bódottá' volt hogy sikerült az ide csörög-oda csörög kérdést megoldani, a Neophone-os trunk is csörgésképes, viszont a hangot a bitmanók megeszik útközben :(
A környezetem a következő:
A szerver a neten lóg publikus IP címmel
A kliensek vagy publikus címmel "pőrén" (mobilnet) vagy router mögött csücsülnek.
Az azonos router mögötti kliensek tudnak csacsogni egymással, de másik (legyen az router mögötti vagy "pőre" kliensek) nem hallják egymást.
a SIP.conf-ban a kliensek a köv sablon alapján vannak:
[1237]
type=friend
host=dynamic
secret=x
disallow=all
allow=ulaw
context=y
nat = yes
az rtp.conf-om
rtpstart=10000
rtpend=20000
IPtables alapján be van engedve
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpts:10000:20000
A kliensek 3cx progik, illetve van egy linksys ata adapter
a "sip set debug on"-ot bekapcsoltam de... nem látom, hogy mit kéne látom
Mit szúrtam el?
Köszi,
Norbi
Valahol elvesznek azok a 10000-20000-es RTP csomagok.
Esetleg lehet még talán codec probléma.
A két itthoni eszközöm show peer-je ezt írja:
Name/username Host Dyn Nat ACL Port Status
1234/1234 178.164.197.134 D N 53142 Unmonitored
1235 (Unspecified) D N 5060 Unmonitored
1236/1236 178.164.197.134 D N 5060 Unmonitored
1237 (Unspecified) D N 5060 Unmonitored
A NAT-nál nem Y-nek kéne lenni?
Nálam ilyenek vannak (ez most 10-es Asterisk):
Esetleg egy qualify=yes és kapsz státusz üzenetet, ill. nézhetsz egy sip show channels infot, az kiírja a használt codecet.
Ja és pl. asterisk -vvvr -nél látod, mit bűvészkedik.
...bár folyamatos csomagáramlásnak kellene látszania a szerver és kliens között (RTP) - azon megy a hang.
show channels:
a qualify-t engedélyeztem
Peer User/ANR Call ID Format Hold Last Message Expiry
212.51.122.137 1235 0b1YMAzjetr-ufA 0x4 (ulaw) No Tx: ACK
178.164.197.134 1234 4d32d5c20200c73 0x4 (ulaw) No Tx: ACK
178.164.197.134 (None) NzY0NGQ1YTIyZjl 0x0 (nothing) No Rx: REGISTER
3 active SIP dialogs
tcpdump-pal nézd meg a médiaportokat a SIP csomagokban (jó portot mond-e, jó ip-t mond-e? SDP-ben m= és c=, ha jól emlékszek.)
Ja és a legfontosabb: hanyas Asterisk?
Szia!
tcpdump -T rtp -vvv -t futtattam
19:15:51.108843 IP (tos 0x0, ttl 64, id 5352, offset 0, flags [none], proto UDP (17), length 85)
ludmilla.tudos.info.15563 > ns02.szervernet.hu.domain: udp/rtpv1 49 c12 * 256 65536 1
19:15:51.131771 IP (tos 0x0, ttl 128, id 14753, offset 0, flags [none], proto UDP (17), length 78)
barossnet.hu.netbios-ns > 87.229.24.255.netbios-ns: udp/rtp 38 c55 272 65536 0
19:15:51.140139 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto UDP (17), length 121)
ns02.szervernet.hu.domain > ludmilla.tudos.info.15563: udp/rtpv1 85 c12 * 33152 65537 0
19:15:51.141328 IP (tos 0x0, ttl 64, id 5353, offset 0, flags [none], proto UDP (17), length 84)
ludmilla.tudos.info.41621 > ns02.szervernet.hu.domain: udp/rtpv1 48 c56 * 256 65536 1
19:15:51.145620 IP (tos 0x10, ttl 64, id 8910, offset 0, flags [DF], proto TCP (6), length 764)
ludmilla.tudos.info.ssh > 178-164-197-134.pool.digikabel.hu.60978: Flags [P.], cksum 0xe85d (incorrect -> 0x58de), seq 280:1004, ack 1, win 142, length 724
19:15:51.169443 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::29e9:fa8d:b39:94e8 > ff02::1:ffff:fffe: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has fe80::ffff:ffff:fffe
source link-address option (1), length 8 (1): e0:cb:4e:c6:b2:9d
0x0000: e0cb 4ec6 b29d
19:15:51.179273 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto UDP (17), length 133)
ns02.szervernet.hu.domain > ludmilla.tudos.info.41621: udp/rtpv1 97 c56 * 33155 65536 65536
-t kaptam, plusz pár ARP-t
(és, valahogy nem látom benne azt a sort amit keresnénk :S)
Mobilneten lógó mellékről hívtam az itthoni router mögött csücsülő szoftveres telefont.
Asteriskből ilyenem van:
Asterisk 1.6.2.9-2+squeeze4
sip set debug
(nem tudom a parancs veget, tabold ki. Ez azt csinalja, hogy mutatja asterisken belul a kuldott/fogadott SIP headereket).
A tcpdump ilyenre felejtos.
Ja, es az asterisk parancsot meg siman le alias-olhatod ugy, hogy asterisk -rvvvvv , az 5-os verbose szint a minimum, amivel csatlakozni erdemes.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo PortalÍme a "sip set debug on" kimenete
http://pastebin.com/QcKnAd2N
asterisk -rvvvvv -vel csatlakoztam
sip show peers kimenete:
Name/username Host Dyn Nat ACL Port Status
1234/1234 178.164.197.134 D N 53142 OK (117 ms)
1235/1235 212.51.122.137 D N 32370 OK (119 ms)
1236/1236 178.164.197.134 D N 5060 OK (7 ms)
1237 (Unspecified) D N 5060 UNKNOWN
sip.neophonex.hu/06213830 193.91.75.213 N 5060 OK (1 ms)
az 1235-ről hívtam az 1234-et (mobil -> itthoni soft)
Bocs, nem néztem pastebint (még) :)
A "sip set debug" csak kis forgalomnál okés... :-) Nagynál inkább a tcpdump és utána a wiresharkban megnézni a tényállást.
Így első blikkre a dump alapján: van externhost vagy externip, illetve localnet paramétered a sip.conf general részében?
Igazad van, ezt érdemes megnézni - produkál ilyen jelenséget.
Ráadásul 1.6 elfogad externipnél hostot is, 1.8 viszont nem így működik (externhost kell).
Hm, nem találtam, lehet átsiklottam fölötte :) Most beállítottam, este kipróbálom.
Köszi a tippet
Ezt olvasd el!
http://www.voip-info.org/wiki/view/Asterisk+sip+canreinvite
A két fő üzemmód:
1. A hangot direkt küldi egymásnak a két kliens. Ez lehet most nálad.
2. Az asterisken keresztül megy a hang.
Igen, a két üzemmódról tudtam, és elsőre a most beállított mód fele húzott kicsit a szívem.
Köszi, végigolvasom a cikket délután
Lehet, hogy húz a szíved, de a két független nat mögött lévő készülékek nem tudnak egymás között hangcsatornát kiépíteni. :(
Persze ez is megoldható, csak minkét routert neked kell beállítani!
Jó jó..., de ha okosak, akkor ha nem tudnak, akkor váltanak szerverenkeresztüli üzemmódra (a linket még nem olvastam, lehet ott pont ezt írják :))
Sikerült :)
A mellékekhez a következőket állítottam be:
disallow=all
allow=g722
allow=ulaw
allow=alaw
allow=ilbc
directmedia=no
meg egy extern ip-t.
Némi visszhang akad, azt megpróbálom elnyomni :)
Köszi