Mobicents SIP presence príklady: Internal Publisher a Internal Subscriber
Mobicents SIP presence Service
Poskytuje funkcionality presence sieťam založeným na SIP, použitím štandardov vyvinutých organizáciami IETF(Internet Engineering Task Force), OMA(Open Mobile Alliance), 3GPP(3rd Generation Partnership Project) a ETSI(European Telecommunications Standards Institute).
SIP presence Service pozostáva z troch servrov.
· SIP Presence Server (PS)
· XML Document Management Server (XDMS)
· Resource List Server (RLS)
Najnovšiu verziu Mobicents SIP Presence Service možno stiahnuť na adrese [4]. Ak ste si neistý, ktorú distribúciu stiahnúť, ďalej popíšem rozdiely medzi nimi. Na spomínanej lokalite [4] sa nachádzajú tri typy binárnych(*.zip) súborov na stiahnutie.
· mobicents-sip-presence-integrated
· mobicents-sip-presence-xdms
· mobicents-sip-presence
– Binárna distribúcia Integrated SIP Presence Service s kontajnerom Mobicents JAIN SLEE
Táto distribúcia obsahuje XDM a SIP Presence Servre. Tieto servre sú predinštalované vo verzií Mobicents JAIN SLEE a aj Mobicents JAIN SLEE SIP 11 a HTTP Servlet Resource Adaptéry.
– Binárna distribúcia samostatného Mobicents XDM Servra s kontajnerom Mobicents JAIN SLEE
Používatelia, ktorí sú želajú deploy-nuť Mobicents XML Document Server na inom hostiteľovi, alebo tí, ktorí nepotrebujú Mobicents Presence Server by mali inštalovať túto distribúciu.
– Binárna distribúcia SIP Presence Service bez kontajnera Mobicents JAIN SLEE
Používatelia, ktorí už nainštalovali a nastavili samostatne Mobicents JAIN SLEE môžu túto distribúciu nainštalovať pomocou Apache Ant a súboru build.xml. Treba spustiť príkazový riadok, nastaviť jeho adresár na koreňový adresár rozbalenej binárnej distribúcie a zatať príkaz
· ant integrated-deploy pre inštaláciu Integrated SIP Presence Service, alebo
· ant xdms-deploy pre inštaláciu samostatného XDM Servra
Následná odinštalácia je analogická:
· ant integrated-undeploy
· ant xdms-undeploy
Ako rozbehať príklady?
Keď po spustení servra(tradične pomocou run.bat vo Win 7) zadáte do prehliadača adresu: http://localhost:8080/mobicents/ a zobrazí vám rýdzo biele okno bez 404 error výpisu, ste na správnej ceste rozbehať príklad. Tak isto doporučujem sa uistiť, že príklady, ktoré chcete vyskúšať sú už deploynuté, rovnako ako aj mobicents.war. V binárnej distribúcií Integrated SIP Presence Service s kontajnerom Mobicents JAIN SLEE sú už príklady deploynuté.
Pri práci s viacerými servrami samostatne odporúčam nezabúdať meniť JBOSS_HOME enviroment variable. V opačnom prípade Vám to môže robiť cyby a nebudete môcť tak skoro zistiť prečo.
Pre skúšku funkčnosti začnem s Internal Subscriberom, pretože je jednoduchší:
Internal Subscriber
Zo SIP telefónov doporučujem pre Win 7 stiahnuť program X-Lite 3, alebo program Bria, pretože tieto možno nastaviť ako presence agentov. U X-Lite 4 túto funkciu nebolo možne nastaviť a na EyeBeame takisto, i keď som si všimol, že to podporuje.
Ja som zvolil X-Lite 3, pretože Bria sa ako jediná hodí na neskoršie použitie v druhom príklade. Po stiahnutí a nainštalovaní X-Lite 3 vytvorte a nastavte konto nasledovne:
Vytvorte používateľa user na IP 127.0.0.1 bez akejkoľvek registrácie. Na karte Presence nastavte Mode z Peer-to-Peet na Presence Agent.
Potvrďte vytvorenie konta a sledujte výpisy v príkazovom riadku. V príkazovom riadku Win 7 to nie je jednoduché odsledovať, avšak na adrese jbossRoot\server\default\log\server.log je úplne celý výpis ktorý od spustenia servra bol vypísaný v príkazovom riadku.
Názorná ukážka zmeny statusu available na busy:
18:54:57,362 INFO [SipResourceAdaptor] Received Request:
PUBLISH sip:user@127.0.0.1 SIP/2.0
Via: SIP/2.0/UDP 127.0.0.1:5090;branch=z9hG4bK-d87543-b90dc4307a214a13-1–d87543
-;rport=5090;received=127.0.0.1
Max-Forwards: 70
Contact: <sip:user@127.0.0.1:5090>
To: “user” <sip:user@127.0.0.1>
From: “user” <sip:user@127.0.0.1>;tag=9f5d4a34
Call-ID: 9436924fec11ee76OWI5NmY4NmIxNzk4NWIxNTA4ODVlY2E1NmI2Mzc3YjE.
CSeq: 3 PUBLISH
Expires: 3600
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,NOTIFY,MESSAGE,SUBSCRIBE,INFO
Content-Type: application/pidf+xml
SIP-If-Match: 6e8843bd2a5d51ed70e2a2772b146673
User-Agent: X-Lite release 1002tx stamp 29712
Event: presence
Content-Length: 732
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”no” ?><pr:presence xmlns:pr=”ur
n:ietf:params:xml:ns:pidf” entity=”sip:user@127.0.0.1″ xmlns:caps=”urn:ietf:para
ms:xml:ns:pidf:caps” xmlns:cipid=”urn:ietf:params:xml:ns:pidf:cipid” xmlns:count
erpath=”www.counterpath.com/presence/ext” xmlns:dm=”urn:ietf:params:xml:ns:pidf:
data-model” xmlns:rpid=”urn:ietf:params:xml:ns:pidf:rpid”> <pr:tuple id=”s9f5acc
6b”><pr:status><pr:basic>open</pr:basic></pr:status><pr:note>Busy</pr:note><rpid
:user-input last-input=”2011-04-12T18:54:57Z”>active</rpid:user-input><pr:timest
amp>2011-04-12T18:54:57Z</pr:timestamp></pr:tuple><dm:person id=”pc9416b32″><rpi
d:activities><rpid:busy/></rpid:activities><dm:note>Busy</dm:note></dm:person></
pr:presence>
18:54:57,381 INFO [PublicationControlSbb] publication: key=6e8843bd2a5d51ed70e2
a2772b146673:sip:user@127.0.0.1:presence modified.
18:54:57,402 INFO [ServerTransactionWrapper] ServerTransaction[z9hG4bK-d87543-b
90dc4307a214a13-1–d87543-] sending response:
SIP/2.0 200 OK
To: “user” <sip:user@127.0.0.1>
Via: SIP/2.0/UDP 127.0.0.1:5090;branch=z9hG4bK-d87543-b90dc4307a214a13-1–d87543
-;rport=5090;received=127.0.0.1
CSeq: 3 PUBLISH
Call-ID: 9436924fec11ee76OWI5NmY4NmIxNzk4NWIxNTA4ODVlY2E1NmI2Mzc3YjE.
From: “user” <sip:user@127.0.0.1>;tag=9f5d4a34
SIP-ETag: 8ad8e5bab9f42e9bf6281a807b8ede80
Expires: 3600
Content-Length: 0
18:54:57,407 INFO [InternalSubscriberExampleSbb]
NOTIFY EVENT:
+– Subscriber: sip:internal-subscriber@127.0.0.1
+– Notifier: sip:user@127.0.0.1
+– EventPackage: presence
+– SubscriptionId: sip:internal-subscriber@127.0.0.1:sip:user@127.0.0.1:presenc
e
+– Subscription status: active
+– Subscription terminationReason: null
+– Content Type: application/pidf+xml
+– Content:
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?><presence entity=”sip:use
r@127.0.0.1″ xmlns:ns2=”urn:ietf:params:xml:ns:pidf:rpid” xmlns=”urn:ietf:params
:xml:ns:pidf” xmlns:ns4=”urn:oma:xml:prs:pidf:oma-pres” xmlns:ns3=”urn:ietf:para
ms:xml:ns:pidf:data-model” xmlns:ns5=”urn:ietf:params:xml:ns:xcap-diff” xmlns:ns
6=”urn:ietf:params:xml:ns:resource-lists”><tuple id=”s9f5acc6b”><status><basic>o
pen</basic></status><ns2:user-input last-input=”2011-04-12T18:54:57Z”>active</ns
2:user-input><note>Busy</note><timestamp>2011-04-12T18:54:57Z</timestamp></tuple
><ns3:person id=”pc9416b32″><ns2:activities><ns2:busy/></ns2:activities><ns3:not
e>Busy</ns3:note></ns3:person></presence>
18:55:29,404 INFO [SipResourceAdaptor] SIP Transaction z9hG4bK-d87543-b90dc4307
a214a13-1–d87543-:PUBLISH terminated
Internal Publisher
Tu treba ponehať konto vytvorené v SIP telefóne X-Lite 3 a v Brií vytvoriť ďalšie. V návode [2] sa uvádza, že konto treba registrovať presne ako internal-publisher@127.0.0.1, inak nebude fungovať. Možno je to už tým, že je ten návod zastaralý, pretože mi to zobralo aj iné mená v konte. Na Brií som registroval teda dve kontá(no postačí aj jedno), nastavil som ich úplne rovnako, líšili sa len v mene:
Opäť treba nastaviť na karte Presence Mode Presence Agent:
A na karte Storage Storage method: XCAP a root URL http://127.0.0.1:8080/mobicents/
Následne sa treba vrátiť k SIP teleónu X-Lite 3 a tu pridať medzi priateľov tie kontá, ktorých presence chcete sledovať, a ktoré sú nastavené.
Ja som na Brií vytvoril kontá : sip:internal-publisher@127.0.0.1 a sip:pokus@127.0.0.1. Preto tieto kontá pridám do kontaktov usera na X-Lite 3 a zaškrtnem checkbox “Show this contact’s Availability“.
Ako výsledok možno vidieť aktuálne statusy používateľov – kónt nastavených na Brií a pretože sú kontá na jednom SIP telefóne, zdieľajú vždy spoločný status.
Odkazy:
[1] http://hudson.jboss.org/hudson/job/MobicentsBooks/lastSuccessfulBuild/artifact/sip-presence/index.html
[2] http://www.abdulbaki.de/english/fokus/mobicents_sip_presence_service.pdf
[3] http://groups.google.com/group/mobicents-public/web/sip-presence-example-internalpublisher
[4] http://sourceforge.net/projects/mobicents/files/Mobicents%20SIP%20Presence%20Service/1.0.0.BETA6/