Je známo, že každý VoIP poskytovatel má řešení připojení dle svojí IP technologie, znalostí techniků dohledového centra a obchodní politiky prodeje služby atd.. Z toho vyplývá podstata problému připojení hlasových služeb, protože co funguje u jednoho operátora to u jiného fungovat z největší pravděpodobností nebude. Proto je zde popis připojení VoIP účtů do komunikačního systému Asterisk, který je umístěn za NATem (operátor T-Mobile (obdoba podobného připojení jako u O2 Centrex, ale zde to není nesmyslně blokované)). Jistě to není jediné řešení, ale pro mé potřeby dostačující a sloužící jako zápisek postupu oživení.
Pro připojení "Hlasové linky Premium", potřebujeme od operátora znát (z oficiálního dokumentu T-Mobile s drobnými úpravami):
- Telefonní číslo – telefonní číslo ve tvaru 420123456789
- Uživatelské jméno – telefonní číslo ve tvaru 420123456789
- Přístupové heslo – je uvedeno na přístupové kartě pro službu a má podobu 12ti místného čísla.
- adresa SIP serveru: sip.tmip.cz
- adresa registračního SIP serveru: sip.tmip.cz
- adresa SIP GW: sip.tmip.cz
Pro provoz Telefonní linky Premium jsou používány následující porty a protokoly, které musí prostupovat přes firewally:
- TCP a UDP protokol na portu 5060 a 5061 (pro signalizaci)
- UDP protokol pro RTP přenos na portech 16348-32768 (pro přenos hlasu)
Doporučuje se používat STUN server ani PROXY server. V některých zařízeních ale nemůže zůstat nevyplněný, v tomto případě je nutné zadat ims.tmobile.cz. Rovněž se doporučuje deaktivovat zasílání Keep-alive Message pro UDP. Pro správnou funkčnost přesměrování a předávání hovoru musí mít koncové zařízení aktivované zasílání Prack zpráv.
Nároky na kvalitu internetového připojení- latence: max. 200 ms
- ztrátovost: max. 1 %
- jitter: max. 30 ms
- rychlost uploadu pro jedno tel. číslo min. 50 kbps pro faxy doporučujeme min. 100 kbps
Pro telefonování prostřednictvím IP musí být správně nastavené podporované protokoly, a to v pořadí: G.729 (G.729 v Asterisku zbytečně vytěžuje CPU a je licencován),
G.711 a-law, G711 u-law. V případě dostatečné rychlosti linky je možné na telefonu povolit i kodek G.722 pro hovory mezi IP telefony na stejné ústředně v kvalitě HD voice. Jiné protokoly nejsou podporovány.Nastavení Asterisku:
G.711 a-law, G711 u-law. V případě dostatečné rychlosti linky je možné na telefonu povolit i kodek G.722 pro hovory mezi IP telefony na stejné ústředně v kvalitě HD voice. Jiné protokoly nejsou podporovány.Nastavení Asterisku:
sip.conf
[general]port = 5060
bindaddr = 0.0.0.0 ; IP adresy kde Asterisk poslouchá
externip = 46.13.203.38 ; IP adresa serveru T-mobile ; důležité pro příchozí hovory
localnet = 10.0.0.1/255.255.255.0 ; identifikace lokalní sitě s Asteriskem
;nat=force_rport ; v případě problémů nastavit (default = yes)
allowguests = no
context = fail ; v pripade utoku odkaz na kontext
disallow = all
allow = alaw
language = cz
; registrace k operátorovi
register => 420123456789:321645987852@sip.tmip.cz:5060/123456789
;register => uživatel:heslo@doménaVOIP:port/extension pro příchozí hovor
;==================USERS=====================
[101]
...
[102]
...
;==================LINE======================
[420123456789]
type = friend
host = sip.tmip.cz
fromdomain = sip.tmip.cz
context = from_VOIP_ISP ; kontext pro příchozí hovor
dtmfmode = rfc2833
insecure = invite,port ; způsob vyjednání hovoru
defaultuser = 420123456789 ; nahrazuje položku username
fromuser = 420123456789 ; identifikace from (CLIP)
secret = 321645987852 ; heslo
canreinvite = no ; drží spojení RTP přes Asterisk !!!!
; v nové verzi přejmenováno na "directmedia"
Nejdůležitějšími parametry jsou "externip", což pomáhá propojit vnější síť s lokální sítí a druhý nejdůležitější parametr je "canreinvite" který říká, že audio stream musí jít přes Asterisk, který už prošel NATem, tudíž koncové přistroje komunikují s Asteriskem a Asterisk s poskytovatelem. Asterisk se chová jako media gateway. Více zde.
extension.conf
static = yes
writeprotect = yes
autofallthrough = yes
[fail] ; bezpečnostní kontext
exten => _X.,1,Hangup() ; ukonči vše
[from_VOIP_ISP]
exten => 123456789,1,NoOp (number=${CALLERID(number)}) ; zobrazí internat. CLIP
same => n,Set(CALLERID(all)=${CALLERID(number):5}) ; nastaví national CLIP
same => n,NoOp(${CALLERID(all)}) ; zobrazí nastavení CLIP
same => n,Dial(SIP/101) ; volá uživatele
[out]
exten => _X.,1,Set(CALLERID(all)=420123456789) ; nastaví odchozí international ID (CLIP)
exten => _X.,n,Dial(SIP/420123456789/${EXTEN}) ; odchozí hovor pomocí
; kontextu v sip.conf
V nastaveni dial plánu je důležité nastavení mezinárodního formátu čísla a to příchozí hovory dle kontextu "from_VOIP_ISP" a pro odchozí hovory dle kontextu "out". Vytočení čísla směrem k operátorovi slouží kontext "420123456789" v parametru "Dial" odkazující na sip.conf.
Popis sip.conf parametrů zde.
T-Mobile VoIP a Asterisk za NATem 2