středa 1. ledna 2014

Asterisk 12: SIP Stack budoucnosti


Jednou z novinek představených na AstriConu 2013 byla beta verze Asterisku 12 a s tím související několik změn. Jedna z nich je změna v SIP kanálu (Budu se držet původní terminologie „stack“, protože jsem v češtině nenašel vhodný překlad tohoto výrazu. Mohl by se použít výraz „řadič či zásobník“, přesto anglický výraz se mi zdá být více popisný).
Nový ovladač kanálu se jmenuje PJSIP a je vytvořen na základě
Teluu’s PJSIP stacku. Celá změna popisu SIP kanálu v Asterisku byla motivovaná zastaralostí SIP stacku Asterisku, který byl vytvořen před zhruba 11 lety (2002). Implementace SIP stacku v dnešní době došla do takové složitosti, kdy v roce 2012 
struktura chan_sip již nebyla schopná držet krok s rozvojem technologií.     
Nový kanál chan_pjsip je prostředník mezi moduly PJSIP a dialplánem Asterisku. Několik různých modulů PJSIP poskytuje určitou část funkcí. Rozdělení na jednotlivé moduly přináší několik výhod:
1.      Například oddělují vyjednání medií od nastavení hovorů, atd.
2.      Vytváří nové funkce:
 res_pjsip_pubsub zahrnuje další pod moduly např.:
         i. res_pjsip_mwi – indikátory kanálů na koncových zařízeních
         ii. res_pjsip_exten_state – poskytuje informaci o stavu zařízení
Obrázek neukazuje všechny dostupné moduly a možnosti PJSIP

Původní konfigurační soubor sip.conf nemá možnost rozdělení konfigurace do logických sekcí a má konfigurační nedostatky při pokusu definovat různorodé společné vlastnosti mezi vice zařízeními.
[my_phone]
type = peer
context = local_office
disallow = all
allow = ulaw
host = dynamic
secret = super_secret
qualify = yes
dtmfmode = rfc2833
sip.conf
Nový přístup umožňuje oddělit nastavení koncového zařízení, jako jsou např. povolené kodeky, autentifikace a registrace. Konfigurace pjsip.conf ukazuje následující výpis.
[my_phone_auth]
type = auth
auth_type = userpass
username = my_phone
password = super_secret
[my_phone_aors]
type = aor
max_contacts = 10
qualify_frequency = 300
[my_phone_endpoint]
type = endpoint
auth = my_phone_auth
aors = my_phone_aors
disallow = all
allow = ulaw
context = local_office
dtmfmode = rfc4733
pjsip.conf
Více informací lze najít na Asterisk Wiki

Cile PJSIPu v Asterisku 12
Cílem bylo zachovat původní funkčnost shodnou z původním ovladačem kanálu SIP. Některé funkce dostupné v Asterisku 12 (pro lepší popis nejsou funkce přeloženy):
Calls/media sessions
·         Media streams (audio/video), including media format attribute negotiation and support for all Asterisk formats/codecs
·         Caller ID/Connected Line/Redirecting/Forwarding information
·         DTMF (inband, RTP, and INFO request)
·         Session Timers
·         PRACK/100rel
·         Reason header
·         Multiple transports (UDP, TCP, TLS, and WS)
·         Secure media (SDES-SRTP and DTLS-SRTP)
*  Digest authentication
*  Transfers
·         INVITE with Replaces
·         Refer handling with NOTIFY request support
*  INFO requests
·         Video refresh/fast picture update
·         One touch recording
*  Messaging – out of call/in call text MESSAGE request integration
*  Integration with Asterisk’s SIP Security Framework
*  Registration/Registrar, including allowing multiple device registrations to a single endpoint
*  Qualify support using OPTIONS requests
*  CLI/AMI initiated NOTIFY requests with configurable event packages
*  SIP header manipulation – SIP_HEADER function (add, update, and remove SIP headers)
*  Trace logging
*  Publish/subscribe handling
·         MWI event package
·         Extension/device state (PIDF, XPIDF, and CPIM-PIDF)

Žádné komentáře:

Okomentovat