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í
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
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