Překlad mezi protokoly H.323 a SIP

Asterisk

Asterisk díky své multiprotokolové podpoře může být použit nejen jako aplikační ústředna, ale i jako proxy mezi dvěmi protokoly. V našem případě jej používáme pro překlad mezi SIP a H.323. Podpora pro překlad mezi SIP a H.323 v asterisku je dnes již víceméně bezproblémová. SIP kanál je nnativně součástí asterisku a H.323 už je dnes bezproblémový a je součástí většiny distribucí s asteriskem.

  • chan_h323 - standardní kanál asterisku. Postavený na knihovně openH323, tedy C++
  • chan_ooh323c - kanál postavený na Objective H.323 stacku, tedy čisté C.

Z použité technologie vyplývají i nedostatky a přednosti. Chan_h323 je robustnější a propracovanější, ale má vyšší nároky na HW. Chan_ooh323c není plná implementace, ale je rychlejší a jednodušší. Pro náš překlad používáme chan_h323.

Vstup a výstup

Pro jednoduchost počítáme s tím, že všechna čísla jsou v mezinárodním formátu, např. +420123456789. Výstup záleží na nastavení ENUM zón.

ENUM

Jako nejvýhodnější způsob nalezení „druhého konce“ je určitě použití ENUMu, a to proto, aby konfigurace nebyla lokální na překládacím stroji, ale na jednom místě (třeba i skryté DNS zóně). Vše pak pracuje na principu, že z jedné strany přijde požadavek na přeložení, asterisk se enumu zeptá, zda existuje záznam pro přeložení na výsledný protokol a pokud ano, použije ENUM směrování a vytočí druhou stranu. Jediné, co je potřeba zařídit, je, aby se asterisk ptal vždy jen na požadovaný protokol. Např. pokud přijde hovor z SIPu, je potřeba provést překlad pouze tehdy, pokud existuje ENUM záznam pro H.323 a naopak. Nesmí se stát, že se bude volat zpět na SIP jen proto, že H323 záznam má menší prioritu.

Statický konfig

Tuto konfiguraci je vhodné použít v menším prostředí, kde překlad probíhá pouze mezi omezeným počtem známých SIP a H.323 bran. V našem příkladě jsme použili brány h323gw1 a bránu sipgw1. Nastavení by bylo velmi podobné pro více bran. Za h323gw1 jsou čísla 123456XXX , za sipgw1 234567XXX. V tomto případě funguje překlad vždy pouze mezi těmito bloky čísel.

enum.conf

[general]
search => e164.arpa
search => nrenum.net
search => e164.org
h323driver => H323
;h323driver => OOh323

SIP

Kanál SIP je nastaven výchozím způsobem. Pro jednoduchost začneme s jediným kontextem, do kterého budou přicházet všechny hovory ze SIP klientů do kontextu sip. Také předpokládáme, že to jsou obecní klienti bez autentizace, kteří pouze chtějí využít službu předkladu.

sip.conf (pouze důležité hodnoty)

[general]
context=sip                   ; Default context for incoming calls
port=5060                       ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0                ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 
; Staticka brana SIP (cisla 234567XXX)
[sipgw1]
type=friend
host=1.2.3.4
context=sip

H.323

Kanál H.323 je nastaven bez gatekeeperu. Problém totiž spočívá v tom, že se zapnutým gatekeeperem nelze pres chan_h323 volat h.323 uri, napr. 1234@gw.nekde.cz. Pokud se podpora gatekeeperu zapne a asterisk se zareistruje, chan_h323 uz umi pouze tocit cislo, ne uri.

h323.conf (pouze důležité hodnoty)

[general]
port = 1720
bindaddr = 0.0.0.0
context=h323
gatekeeper=DISABLE
 
; staticka brana h.323 (cisla 123456XXX)
[h323gw1]
type=h323
context=h323
host=2.3.4.5

extensions.conf (pouze důležité hodnoty)

[sip]
; Nalezeni pozadovaneho zaznamu
exten => _+420.,1,Set(ENUM1=${ENUMLOOKUP(${EXTEN}|h323|||e164.internal.zone)})
exten => _+420.,2,Dial(${ENUM})
; Staticky mapping (ma automaticky vyssi precedenci nez enum, protoze pouziva mensi pocet wild znaku)
exten => _123456XXX,1,Dial(h323/${EXTEN}@h323gw1)
 
[h323]
; Nalezeni pozadovaneho zaznamu
exten => _+420.,1,Set(ENUM=${ENUMLOOKUP(${EXTEN}|sip|||e164.internal.zone)})
exten => _+420.,2,Dial(${ENUM})
; Staticky mapping (ma automaticky vyssi precedenci nez enum, protoze pouziva mensi pocet wild znaku)
exten => _234567XXX,1,Dial(SIP/sipgw1/${EXTEN})
cs/swahw/sip2h323.txt · Poslední úprava: 2007/12/02 22:52 autor: limo
Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0