SlideShare a Scribd company logo
Asterisk, Instant Messaging and
        Presence, how?
    Saúl Ibarra Corretgé <saghul@gmail.com>

                  http://www.saghul.net

                  http://www.sipdoc.net

                  saghul



                        http://www.irontec.com
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                  About me



●   saghul
       – VoIP enthusiast, playing around with Asterisk since 2k5
       – GNU/Linux lover likes everything “Software Libre”
       – Co-founder of http://sipdoc.net
       – Highly involved in spanish VoIP comunities




                                                                                2
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                            This presentation

●   http://www.saghul.net/blog/downloads/astricon2k9/
●   http://www.slideshare.net/saghul/
      –   Slides
      –   Complete configuration files
      –   Database example data




                                                                                  3
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                       Index

1. Asterisk and presence status
2. SIP SIMPLE or XMPP?
3. The XMPP solution
     1. OpenFire setup
4. The SIMPLE solution
     1. Kamailio + Asterisk setup
5. Conclusions




                                                                               4
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                       What we do have now

●   Asterisk SIP support (chan_sip)
      –   In-dialog MESSAGE :-(
      –   SUBSCRIBE and NOTIFY support
            ●   For Event: dialog
            ●   What about Event: Presence? :-(
      –   No PUBLISH support :-(
●   Asterisk XMPP support
      –   res_jabber
            ●   JabberSend, JABBER_RECEIVE, JABBER_STATUS
      –   chan_gtalk, chan_jingle
●   Am I missing something?


                                                                                    5
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                            Do we need presence and IM?

●   “I want to talk to you, not to your phone”
●   Are you available?
      –   For an audio conference?
      –   Just for IM?
      –   For whom?
●   Where are you?
      –   Mobile
      –   Office
      –   Home
      –   ...

We need to know if a user is available
       and what his status is
                                                                                   6
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                           What we need

●   A presence server
●   Users may publish their status
●   Users may subscribe to other users status
●   Instant Messaging between users

              Is it possible only with Asterisk?



                             NO

                                                                               7
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?




SIMPLE or XMPP?
                                                                   8
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                              SIMPLE vs XMPP

●   Did SIMPLE reinvent the wheel?
●   Large companies started adopting SIMPLE (Microsoft,
    …)
       –   Propietary extensions :-(
●   XMPP does not provide voice capabilities
       –   Well, there is Jingle...
●   If SIP is the VoIP protocol: why not use it also for
    presence and IM?




                                                                                    9
The XMPP solution
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                      The XMPP solution

●   Integrate Asterisk with a XMPP server




                                                                           11
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                  OpenFire

●   Open Source
●   Java based
●   Multiplatform
●   Asterisk integration plugin
●   SIP softphone plugin
●   Gateways to multiple mi services: MSN, Yahoo, …
●   Easy installation!




                                                                           12
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                   OpenFire (II)
●   Download deb package
●   dpkg -i openfire_3.6.4_all.deb




                                                                                13
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                               OpenFire (III)

●   Web based configuration
●   Clustering architecture
●   Connection to the Asterisk Manager Interface
      –   Multiple connections
●   Mapping between Asterisk SIP users and OpenFire
    XMPP users
●   Multiplatform Java client: Spark
●   Flash based web client: SparkWeb




                                                                             14
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                              OpenFire (IV)




                                                            15
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                              OpenFire (V)

●   When a user is talking OpenFire puts it “On the phone”




                                                                           16
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                              OpenFire (VI)




                                                            17
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                OpenFire (VI)

●   What we get
      –   Instant Messaging
      –   Presence
      –   Gateways to other mi services
      –   Text conferencing
●   Problems
      –   Duplicated users (we could partially fix it with LDAP)
      –   Need to handle 2 protocols
      –   Not many softphones support SIP and XMPP
      –   Do any hardphones support XMPP?




                                                                              18
The SIP solution
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                          A complex protocol

●   SIMPLE IETF working group
      –   Presence RFCs
            ●   3856, 3857, 3858, 3863, 4479, 4480, 4482, ...
      –   XCAP
            ●   4825, 4826, 4827, 5025, …
      –   Instant Messaging
            ●   3428, 3994, 4975, …




     SIMPLE is NOT simple!

                                                                                20
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                             The SIP solution

●   Integrate Asterisk and Kamailio to provide IM and
    presence.
●   Users are registered to Kamailio.
●   INVITE requests are routed through the Asterisk server.
      –   Asterisk RealTime user integration with Kamailio's
            subscriber table.
●   PUBLISH, SUBSCRIBE and MESSAGE requests are
    handled by Kamailio.




                                                                              21
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                           Registration




REGISTER



                 Store location            Asterisk does
                                             nothing!



                                                                       22
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                             Kamailio – Asterisk RealTime integration

●   Asterisk peers are Kamailio's subscribers.
●   MySQL view so that Asterisk 'sees' the users as his own.
●   Peers IP → Kamailio IP.
●   Calls between users go through Kamailio and Asterisk.
●   We need to call to alphanumeric users → DB Alias




                                                                            23
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                             Kamailio – Asterisk RealTime integration (2)

CREATE VIEW sip_peers AS
SELECT subscriber.username AS name,
subscriber.username AS defaultuser,
'friend' AS type,
NULL AS secret,
subscriber.domain AS host,
concat(subscriber.rpid,' ','<',subscriber.username,'>') AS callerid,
'from-users' AS context,
subscriber.username AS mailbox,
'yes' AS nat,
'no' AS qualify,
'info' AS dtmfmode,
subscriber.username AS fromuser,

                                                                                24
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                           Kamailio – Asterisk RealTime integration (3)

NULL AS authuser,
subscriber.domain AS fromdomain,
NULL AS insecure,
'no' AS canreinvite,
NULL AS disallow,
'all' AS allow,
NULL AS restrictcid,
subscriber.domain AS defaultip,
subscriber.domain AS ipaddr,
subscriber.domain AS outboundproxy,
'5060' AS port,
NULL AS regseconds
FROM kamailio_1.subscriber;

                                                                              25
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                       Invitation

                    2. Find numeric Alias                  5. Dial to the X-
                    3. Add X-Subscriber                    Subscriber user
                    header
          1. INVITE
Alice       (Bob)
                                              4. INVITE
                                               (2001)

                                            6. INVITE (Bob)

        8. INVITE          7. Lookup
Bob       (Bob)           user location



                                                                                26
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                              Invitation (2)

# Route all INVITE requests to Asterisk
if (is_method("INVITE")) {
     # Remove X-Subscriber header so that no one sees it...
     remove_hf("X-Subscriber");


     # We don't have to route the requests coming FROM Asterisk
     # back to Asterisk. We would make a loop!
     if (!($si == "AST_IP" && $sp == "AST_PORT")) {
          route(ASTERISK_USERS_ROUTE);
     }
}




                                                                           27
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                  Invitation (3)

# Send INVITE requests to the Asterisk server
route[ASTERISK_USERS_ROUTE] {
     # Call to the numeric alias
     avp_db_query("SELECT alias_username FROM dbaliases WHERE username
= '$rU' AND domain = '$avp(AVP_ORIGDOMAIN)'LIMIT 1",
"$avp(AVP_NUMALIAS)”);
     if (is_avp_set("$avp(AVP_NUMALIAS)")) {
          # Save the subscriber in a header so we can use it in Asterisk
          append_hf("X-Subscriber: $rUrn");
          $rU = $avp(s:numalias);
     }


     $rd = "AST_IP";
     $rp = "AST_PORT";
     route(RELAY_ROUTE);
}                                                                              28
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                              Invitation (4)


[from-users]
exten => _X.,1,NoOp()
exten => _X.,n,Set(SUBSCRIBER=${SIP_HEADER(X-Subscriber)})
exten => _X.,n,GotoIf($[${LEN(${SUBSCRIBER})} = 0]?hang)
exten => _X.,n,Dial(SIP/${SUBSCRIBER})
exten => _X.,n(hang),Hangup




                                                                           29
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                               SIMPLE presence



        1. SUBSCRIBE
            (Bob)              2. handle_subscribe

Alice

         5. NOTIFY



        3. PUBLISH                4. handle_publish             Asterisk does
Bob                                                               nothing!



                                                                                 30
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                      SIMPLE presence (2)
# Handle presence requests
    if(is_method("PUBLISH|SUBSCRIBE")) {
            route(PRESENCE_ROUTE);
    }


# Handle presence
route[PRESENCE_ROUTE] {
    if (is_method("PUBLISH")) {
            handle_publish();
            t_release();
    } else if (is_method("SUBSCRIBE")) {
            handle_subscribe();
            t_release();
    }
    exit;
}                                                                            31
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                     Messaging



        1. MESSAGE (Bob)
                                2. Lookup location
Alice




           3. MESSAGE
                                                              Asterisk does
Bob                                                             nothing!



                                                                               32
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                NAT handling

●   We just need to fix the NAT in signalling.
●   Our Asterisk 'peers' are configured with nat=yes
      –   COMEDIA mode
      –   Audio will go through Asterisk




                                                                              33
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                 Further improvements...




                                                            34
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                          Further improvements... (2)




What about mixing both?
   –   OpenFire's Asterisk plugin still works! (regardless
        of the integration with Kamailio)




                                                                         35
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?




SIMPLE or XMPP?
                                                               36
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                    Thanks!

BYE sip:astricon@astricon.net SIP/2.0
Via: SIP/2.0/UDP guest.astricon.net:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: saghul <sip:saghul@sipdoc.net>;tag=8321234356
To: AstriCon <sip:astricon@astricon.net>;tag=9fxced76sl
Call-ID: 3848276298220188511@astricon.net
CSeq: 1 BYE
Content-Length: 0


    Thanks for watching!


                                                                           37
Any questions?
AstriCon 2009: Asterisk, Instant Messaging and Presence, how?

                                                                 License




  http://creativecommons.org/licenses/by-sa/3.0/




All images are property of their respective authors.
                                                                       39

More Related Content

What's hot

Home Automation with Asterisk - Astricon 2015 - Alberto Sagredo Castro
Home Automation with Asterisk - Astricon 2015 - Alberto Sagredo CastroHome Automation with Asterisk - Astricon 2015 - Alberto Sagredo Castro
Home Automation with Asterisk - Astricon 2015 - Alberto Sagredo Castro
Alberto Sagredo Castro
 
Shmcfarl slb66-slb64-nat64-proxy
Shmcfarl slb66-slb64-nat64-proxyShmcfarl slb66-slb64-nat64-proxy
Shmcfarl slb66-slb64-nat64-proxyShannon McFarland
 
Snappy Kamailio
Snappy KamailioSnappy Kamailio
Snappy Kamailio
Daniel-Constantin Mierla
 
SDN/NFV Sudanese Research Group Initiative
SDN/NFV Sudanese Research Group Initiative SDN/NFV Sudanese Research Group Initiative
SDN/NFV Sudanese Research Group Initiative
Ahmed Hassan
 
CCNA Security 010-configuring cisco asa
CCNA Security 010-configuring cisco asaCCNA Security 010-configuring cisco asa
CCNA Security 010-configuring cisco asa
Ahmed Habib
 
The A2530x24xx AIR Module for ZigBee Standard Applications
The A2530x24xx AIR Module for ZigBee Standard ApplicationsThe A2530x24xx AIR Module for ZigBee Standard Applications
The A2530x24xx AIR Module for ZigBee Standard Applications
Anaren, Inc.
 
Hands-on Experience with IPv6 Routing and Services
Hands-on Experience with IPv6 Routing and ServicesHands-on Experience with IPv6 Routing and Services
Hands-on Experience with IPv6 Routing and Services
Cisco Canada
 
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Cisco Russia
 
Data Centre Portfolio Update
Data Centre Portfolio UpdateData Centre Portfolio Update
Data Centre Portfolio Update
Cisco Canada
 
IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012
IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012
IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012
IBM India Smarter Computing
 

What's hot (10)

Home Automation with Asterisk - Astricon 2015 - Alberto Sagredo Castro
Home Automation with Asterisk - Astricon 2015 - Alberto Sagredo CastroHome Automation with Asterisk - Astricon 2015 - Alberto Sagredo Castro
Home Automation with Asterisk - Astricon 2015 - Alberto Sagredo Castro
 
Shmcfarl slb66-slb64-nat64-proxy
Shmcfarl slb66-slb64-nat64-proxyShmcfarl slb66-slb64-nat64-proxy
Shmcfarl slb66-slb64-nat64-proxy
 
Snappy Kamailio
Snappy KamailioSnappy Kamailio
Snappy Kamailio
 
SDN/NFV Sudanese Research Group Initiative
SDN/NFV Sudanese Research Group Initiative SDN/NFV Sudanese Research Group Initiative
SDN/NFV Sudanese Research Group Initiative
 
CCNA Security 010-configuring cisco asa
CCNA Security 010-configuring cisco asaCCNA Security 010-configuring cisco asa
CCNA Security 010-configuring cisco asa
 
The A2530x24xx AIR Module for ZigBee Standard Applications
The A2530x24xx AIR Module for ZigBee Standard ApplicationsThe A2530x24xx AIR Module for ZigBee Standard Applications
The A2530x24xx AIR Module for ZigBee Standard Applications
 
Hands-on Experience with IPv6 Routing and Services
Hands-on Experience with IPv6 Routing and ServicesHands-on Experience with IPv6 Routing and Services
Hands-on Experience with IPv6 Routing and Services
 
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
 
Data Centre Portfolio Update
Data Centre Portfolio UpdateData Centre Portfolio Update
Data Centre Portfolio Update
 
IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012
IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012
IPv6 In z/VSE:IBM z/VSE Live Virtual Class 2012
 

Viewers also liked

Presente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPPresente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIP
Saúl Ibarra Corretgé
 
OpenSIPS Workshop
OpenSIPS WorkshopOpenSIPS Workshop
OpenSIPS Workshop
Saúl Ibarra Corretgé
 
SIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masasSIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masas
Saúl Ibarra Corretgé
 
SIP is hard, let's go shopping!
SIP is hard, let's go shopping!SIP is hard, let's go shopping!
SIP is hard, let's go shopping!
Saúl Ibarra Corretgé
 
Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02LLC NewLink
 
Pwning Your Phone with Adhearsion and Asterisk
Pwning Your Phone with Adhearsion and AsteriskPwning Your Phone with Adhearsion and Asterisk
Pwning Your Phone with Adhearsion and Asterisk
jicksta
 
Asterisk-Java Framework Presentation
Asterisk-Java Framework PresentationAsterisk-Java Framework Presentation
Asterisk-Java Framework Presentation
Justin Grammens
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisktutorialsruby
 
02 asterisk - the future of telecommunications
02   asterisk - the future of telecommunications02   asterisk - the future of telecommunications
02 asterisk - the future of telecommunications
Tran Thanh
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
Moises Silva
 
The 12 tasks of Asterisk
The 12 tasks of AsteriskThe 12 tasks of Asterisk
The 12 tasks of Asterisk
Elio Rojano
 
Blink: voice is not enough
Blink: voice is not enoughBlink: voice is not enough
Blink: voice is not enough
Saúl Ibarra Corretgé
 
Blink: SIP beyond VoIP
Blink: SIP beyond VoIPBlink: SIP beyond VoIP
Blink: SIP beyond VoIP
Saúl Ibarra Corretgé
 
Blink: SIP conferencing done right
Blink: SIP conferencing done rightBlink: SIP conferencing done right
Blink: SIP conferencing done right
Saúl Ibarra Corretgé
 
Rethinking the PBX
Rethinking the PBXRethinking the PBX
Rethinking the PBX
Saúl Ibarra Corretgé
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
Saúl Ibarra Corretgé
 
SIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempreSIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempre
Saúl Ibarra Corretgé
 
SIP Conferencing Reloaded
SIP Conferencing ReloadedSIP Conferencing Reloaded
SIP Conferencing Reloaded
Saúl Ibarra Corretgé
 
CDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSCDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPS
Saúl Ibarra Corretgé
 
De SIP a XMPP y vice versa
De SIP a XMPP y vice versaDe SIP a XMPP y vice versa
De SIP a XMPP y vice versa
Saúl Ibarra Corretgé
 

Viewers also liked (20)

Presente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPPresente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIP
 
OpenSIPS Workshop
OpenSIPS WorkshopOpenSIPS Workshop
OpenSIPS Workshop
 
SIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masasSIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masas
 
SIP is hard, let's go shopping!
SIP is hard, let's go shopping!SIP is hard, let's go shopping!
SIP is hard, let's go shopping!
 
Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02
 
Pwning Your Phone with Adhearsion and Asterisk
Pwning Your Phone with Adhearsion and AsteriskPwning Your Phone with Adhearsion and Asterisk
Pwning Your Phone with Adhearsion and Asterisk
 
Asterisk-Java Framework Presentation
Asterisk-Java Framework PresentationAsterisk-Java Framework Presentation
Asterisk-Java Framework Presentation
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisk
 
02 asterisk - the future of telecommunications
02   asterisk - the future of telecommunications02   asterisk - the future of telecommunications
02 asterisk - the future of telecommunications
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
 
The 12 tasks of Asterisk
The 12 tasks of AsteriskThe 12 tasks of Asterisk
The 12 tasks of Asterisk
 
Blink: voice is not enough
Blink: voice is not enoughBlink: voice is not enough
Blink: voice is not enough
 
Blink: SIP beyond VoIP
Blink: SIP beyond VoIPBlink: SIP beyond VoIP
Blink: SIP beyond VoIP
 
Blink: SIP conferencing done right
Blink: SIP conferencing done rightBlink: SIP conferencing done right
Blink: SIP conferencing done right
 
Rethinking the PBX
Rethinking the PBXRethinking the PBX
Rethinking the PBX
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
 
SIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempreSIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempre
 
SIP Conferencing Reloaded
SIP Conferencing ReloadedSIP Conferencing Reloaded
SIP Conferencing Reloaded
 
CDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSCDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPS
 
De SIP a XMPP y vice versa
De SIP a XMPP y vice versaDe SIP a XMPP y vice versa
De SIP a XMPP y vice versa
 

Similar to Asterisk, IM and Presence: how?

Super feats of integration x pages with symphony sharepoint and office
Super feats of integration  x pages with symphony sharepoint and officeSuper feats of integration  x pages with symphony sharepoint and office
Super feats of integration x pages with symphony sharepoint and office
John Head
 
Virgo RT from Eclipse Summit Europe 2010
Virgo RT from Eclipse Summit Europe 2010Virgo RT from Eclipse Summit Europe 2010
Virgo RT from Eclipse Summit Europe 2010
Christopher Frost
 
Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012
Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012
Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
Samsung Open Source Group
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Cisco DevNet
 
OpenStack Swiftの最新機能とStorlets
OpenStack Swiftの最新機能とStorletsOpenStack Swiftの最新機能とStorlets
OpenStack Swiftの最新機能とStorlets
Kota Tsuyuzaki
 
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast DeploymentAdvanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
Arrive Technologies, Inc.
 
OpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - MasakariOpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - Masakari
masahito12
 
Astricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installationsAstricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installations
Olle E Johansson
 
Ironic - Vietnam OpenStack Technical Meetup #12
Ironic - Vietnam OpenStack Technical Meetup #12Ironic - Vietnam OpenStack Technical Meetup #12
Ironic - Vietnam OpenStack Technical Meetup #12
Vietnam Open Infrastructure User Group
 
Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat bots
Cisco DevNet
 
S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...
S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...
S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...
Scality
 
Hackathon scality holberton seagate 2016 v5
Hackathon scality holberton seagate 2016 v5Hackathon scality holberton seagate 2016 v5
Hackathon scality holberton seagate 2016 v5
Scality
 
20110924 kansai kinect_vol1
20110924 kansai kinect_vol120110924 kansai kinect_vol1
20110924 kansai kinect_vol1Kaoru NAKAMURA
 
Mixing reality with mobile AR, Дмитрий Щербина
Mixing reality with mobile AR, Дмитрий ЩербинаMixing reality with mobile AR, Дмитрий Щербина
Mixing reality with mobile AR, Дмитрий Щербина
Sigma Software
 
Connected TIZEN
Connected TIZENConnected TIZEN
Tizen Connected with IoTivity
Tizen Connected with IoTivityTizen Connected with IoTivity
Tizen Connected with IoTivity
Samsung Open Source Group
 
Content-Centric Embedded
Content-Centric EmbeddedContent-Centric Embedded
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Codemotion
 
Log everything!
Log everything!Log everything!
Log everything!
ICANS GmbH
 

Similar to Asterisk, IM and Presence: how? (20)

Super feats of integration x pages with symphony sharepoint and office
Super feats of integration  x pages with symphony sharepoint and officeSuper feats of integration  x pages with symphony sharepoint and office
Super feats of integration x pages with symphony sharepoint and office
 
Virgo RT from Eclipse Summit Europe 2010
Virgo RT from Eclipse Summit Europe 2010Virgo RT from Eclipse Summit Europe 2010
Virgo RT from Eclipse Summit Europe 2010
 
Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012
Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012
Content-Centric Embedded ~Treasure Hunting Robot~ for LinuxCon Japan 2012
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
 
OpenStack Swiftの最新機能とStorlets
OpenStack Swiftの最新機能とStorletsOpenStack Swiftの最新機能とStorlets
OpenStack Swiftの最新機能とStorlets
 
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast DeploymentAdvanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
 
OpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - MasakariOpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - Masakari
 
Astricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installationsAstricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installations
 
Ironic - Vietnam OpenStack Technical Meetup #12
Ironic - Vietnam OpenStack Technical Meetup #12Ironic - Vietnam OpenStack Technical Meetup #12
Ironic - Vietnam OpenStack Technical Meetup #12
 
Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat bots
 
S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...
S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...
S3 Server Hackathon Presented by S3 Server, a Scality Product, Seagate and Ho...
 
Hackathon scality holberton seagate 2016 v5
Hackathon scality holberton seagate 2016 v5Hackathon scality holberton seagate 2016 v5
Hackathon scality holberton seagate 2016 v5
 
20110924 kansai kinect_vol1
20110924 kansai kinect_vol120110924 kansai kinect_vol1
20110924 kansai kinect_vol1
 
Mixing reality with mobile AR, Дмитрий Щербина
Mixing reality with mobile AR, Дмитрий ЩербинаMixing reality with mobile AR, Дмитрий Щербина
Mixing reality with mobile AR, Дмитрий Щербина
 
Connected TIZEN
Connected TIZENConnected TIZEN
Connected TIZEN
 
Tizen Connected with IoTivity
Tizen Connected with IoTivityTizen Connected with IoTivity
Tizen Connected with IoTivity
 
Content-Centric Embedded
Content-Centric EmbeddedContent-Centric Embedded
Content-Centric Embedded
 
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
 
Log everything!
Log everything!Log everything!
Log everything!
 

More from Saúl Ibarra Corretgé

JanusCon 2024: Mom there are robots in my meeting
JanusCon 2024: Mom there are robots in my meetingJanusCon 2024: Mom there are robots in my meeting
JanusCon 2024: Mom there are robots in my meeting
Saúl Ibarra Corretgé
 
Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemic
Saúl Ibarra Corretgé
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi Meet
Saúl Ibarra Corretgé
 
Jitsi: State of the Union 2020
Jitsi: State of the Union 2020Jitsi: State of the Union 2020
Jitsi: State of the Union 2020
Saúl Ibarra Corretgé
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and love
Saúl Ibarra Corretgé
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy minded
Saúl Ibarra Corretgé
 
Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019
Saúl Ibarra Corretgé
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experience
Saúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
Saúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
Saúl Ibarra Corretgé
 
Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)
Saúl Ibarra Corretgé
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-host
Saúl Ibarra Corretgé
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoT
Saúl Ibarra Corretgé
 
Jitsi: Open Source Video Conferencing
Jitsi: Open Source Video ConferencingJitsi: Open Source Video Conferencing
Jitsi: Open Source Video Conferencing
Saúl Ibarra Corretgé
 
Jitsi: State of the Union
Jitsi: State of the UnionJitsi: State of the Union
Jitsi: State of the Union
Saúl Ibarra Corretgé
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/o
Saúl Ibarra Corretgé
 
Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTC
Saúl Ibarra Corretgé
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application server
Saúl Ibarra Corretgé
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincheras
Saúl Ibarra Corretgé
 
A deep dive into libuv
A deep dive into libuvA deep dive into libuv
A deep dive into libuv
Saúl Ibarra Corretgé
 

More from Saúl Ibarra Corretgé (20)

JanusCon 2024: Mom there are robots in my meeting
JanusCon 2024: Mom there are robots in my meetingJanusCon 2024: Mom there are robots in my meeting
JanusCon 2024: Mom there are robots in my meeting
 
Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemic
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi Meet
 
Jitsi: State of the Union 2020
Jitsi: State of the Union 2020Jitsi: State of the Union 2020
Jitsi: State of the Union 2020
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and love
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy minded
 
Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experience
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-host
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoT
 
Jitsi: Open Source Video Conferencing
Jitsi: Open Source Video ConferencingJitsi: Open Source Video Conferencing
Jitsi: Open Source Video Conferencing
 
Jitsi: State of the Union
Jitsi: State of the UnionJitsi: State of the Union
Jitsi: State of the Union
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/o
 
Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTC
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application server
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincheras
 
A deep dive into libuv
A deep dive into libuvA deep dive into libuv
A deep dive into libuv
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

Asterisk, IM and Presence: how?

  • 1. Asterisk, Instant Messaging and Presence, how? Saúl Ibarra Corretgé <saghul@gmail.com> http://www.saghul.net http://www.sipdoc.net saghul http://www.irontec.com
  • 2. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? About me ● saghul – VoIP enthusiast, playing around with Asterisk since 2k5 – GNU/Linux lover likes everything “Software Libre” – Co-founder of http://sipdoc.net – Highly involved in spanish VoIP comunities 2
  • 3. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? This presentation ● http://www.saghul.net/blog/downloads/astricon2k9/ ● http://www.slideshare.net/saghul/ – Slides – Complete configuration files – Database example data 3
  • 4. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Index 1. Asterisk and presence status 2. SIP SIMPLE or XMPP? 3. The XMPP solution 1. OpenFire setup 4. The SIMPLE solution 1. Kamailio + Asterisk setup 5. Conclusions 4
  • 5. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? What we do have now ● Asterisk SIP support (chan_sip) – In-dialog MESSAGE :-( – SUBSCRIBE and NOTIFY support ● For Event: dialog ● What about Event: Presence? :-( – No PUBLISH support :-( ● Asterisk XMPP support – res_jabber ● JabberSend, JABBER_RECEIVE, JABBER_STATUS – chan_gtalk, chan_jingle ● Am I missing something? 5
  • 6. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Do we need presence and IM? ● “I want to talk to you, not to your phone” ● Are you available? – For an audio conference? – Just for IM? – For whom? ● Where are you? – Mobile – Office – Home – ... We need to know if a user is available and what his status is 6
  • 7. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? What we need ● A presence server ● Users may publish their status ● Users may subscribe to other users status ● Instant Messaging between users Is it possible only with Asterisk? NO 7
  • 8. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? SIMPLE or XMPP? 8
  • 9. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? SIMPLE vs XMPP ● Did SIMPLE reinvent the wheel? ● Large companies started adopting SIMPLE (Microsoft, …) – Propietary extensions :-( ● XMPP does not provide voice capabilities – Well, there is Jingle... ● If SIP is the VoIP protocol: why not use it also for presence and IM? 9
  • 11. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? The XMPP solution ● Integrate Asterisk with a XMPP server 11
  • 12. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire ● Open Source ● Java based ● Multiplatform ● Asterisk integration plugin ● SIP softphone plugin ● Gateways to multiple mi services: MSN, Yahoo, … ● Easy installation! 12
  • 13. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire (II) ● Download deb package ● dpkg -i openfire_3.6.4_all.deb 13
  • 14. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire (III) ● Web based configuration ● Clustering architecture ● Connection to the Asterisk Manager Interface – Multiple connections ● Mapping between Asterisk SIP users and OpenFire XMPP users ● Multiplatform Java client: Spark ● Flash based web client: SparkWeb 14
  • 15. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire (IV) 15
  • 16. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire (V) ● When a user is talking OpenFire puts it “On the phone” 16
  • 17. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire (VI) 17
  • 18. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? OpenFire (VI) ● What we get – Instant Messaging – Presence – Gateways to other mi services – Text conferencing ● Problems – Duplicated users (we could partially fix it with LDAP) – Need to handle 2 protocols – Not many softphones support SIP and XMPP – Do any hardphones support XMPP? 18
  • 20. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? A complex protocol ● SIMPLE IETF working group – Presence RFCs ● 3856, 3857, 3858, 3863, 4479, 4480, 4482, ... – XCAP ● 4825, 4826, 4827, 5025, … – Instant Messaging ● 3428, 3994, 4975, … SIMPLE is NOT simple! 20
  • 21. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? The SIP solution ● Integrate Asterisk and Kamailio to provide IM and presence. ● Users are registered to Kamailio. ● INVITE requests are routed through the Asterisk server. – Asterisk RealTime user integration with Kamailio's subscriber table. ● PUBLISH, SUBSCRIBE and MESSAGE requests are handled by Kamailio. 21
  • 22. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Registration REGISTER Store location Asterisk does nothing! 22
  • 23. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Kamailio – Asterisk RealTime integration ● Asterisk peers are Kamailio's subscribers. ● MySQL view so that Asterisk 'sees' the users as his own. ● Peers IP → Kamailio IP. ● Calls between users go through Kamailio and Asterisk. ● We need to call to alphanumeric users → DB Alias 23
  • 24. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Kamailio – Asterisk RealTime integration (2) CREATE VIEW sip_peers AS SELECT subscriber.username AS name, subscriber.username AS defaultuser, 'friend' AS type, NULL AS secret, subscriber.domain AS host, concat(subscriber.rpid,' ','<',subscriber.username,'>') AS callerid, 'from-users' AS context, subscriber.username AS mailbox, 'yes' AS nat, 'no' AS qualify, 'info' AS dtmfmode, subscriber.username AS fromuser, 24
  • 25. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Kamailio – Asterisk RealTime integration (3) NULL AS authuser, subscriber.domain AS fromdomain, NULL AS insecure, 'no' AS canreinvite, NULL AS disallow, 'all' AS allow, NULL AS restrictcid, subscriber.domain AS defaultip, subscriber.domain AS ipaddr, subscriber.domain AS outboundproxy, '5060' AS port, NULL AS regseconds FROM kamailio_1.subscriber; 25
  • 26. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Invitation 2. Find numeric Alias 5. Dial to the X- 3. Add X-Subscriber Subscriber user header 1. INVITE Alice (Bob) 4. INVITE (2001) 6. INVITE (Bob) 8. INVITE 7. Lookup Bob (Bob) user location 26
  • 27. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Invitation (2) # Route all INVITE requests to Asterisk if (is_method("INVITE")) { # Remove X-Subscriber header so that no one sees it... remove_hf("X-Subscriber"); # We don't have to route the requests coming FROM Asterisk # back to Asterisk. We would make a loop! if (!($si == "AST_IP" && $sp == "AST_PORT")) { route(ASTERISK_USERS_ROUTE); } } 27
  • 28. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Invitation (3) # Send INVITE requests to the Asterisk server route[ASTERISK_USERS_ROUTE] { # Call to the numeric alias avp_db_query("SELECT alias_username FROM dbaliases WHERE username = '$rU' AND domain = '$avp(AVP_ORIGDOMAIN)'LIMIT 1", "$avp(AVP_NUMALIAS)”); if (is_avp_set("$avp(AVP_NUMALIAS)")) { # Save the subscriber in a header so we can use it in Asterisk append_hf("X-Subscriber: $rUrn"); $rU = $avp(s:numalias); } $rd = "AST_IP"; $rp = "AST_PORT"; route(RELAY_ROUTE); } 28
  • 29. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Invitation (4) [from-users] exten => _X.,1,NoOp() exten => _X.,n,Set(SUBSCRIBER=${SIP_HEADER(X-Subscriber)}) exten => _X.,n,GotoIf($[${LEN(${SUBSCRIBER})} = 0]?hang) exten => _X.,n,Dial(SIP/${SUBSCRIBER}) exten => _X.,n(hang),Hangup 29
  • 30. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? SIMPLE presence 1. SUBSCRIBE (Bob) 2. handle_subscribe Alice 5. NOTIFY 3. PUBLISH 4. handle_publish Asterisk does Bob nothing! 30
  • 31. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? SIMPLE presence (2) # Handle presence requests if(is_method("PUBLISH|SUBSCRIBE")) { route(PRESENCE_ROUTE); } # Handle presence route[PRESENCE_ROUTE] { if (is_method("PUBLISH")) { handle_publish(); t_release(); } else if (is_method("SUBSCRIBE")) { handle_subscribe(); t_release(); } exit; } 31
  • 32. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Messaging 1. MESSAGE (Bob) 2. Lookup location Alice 3. MESSAGE Asterisk does Bob nothing! 32
  • 33. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? NAT handling ● We just need to fix the NAT in signalling. ● Our Asterisk 'peers' are configured with nat=yes – COMEDIA mode – Audio will go through Asterisk 33
  • 34. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Further improvements... 34
  • 35. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Further improvements... (2) What about mixing both? – OpenFire's Asterisk plugin still works! (regardless of the integration with Kamailio) 35
  • 36. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? SIMPLE or XMPP? 36
  • 37. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? Thanks! BYE sip:astricon@astricon.net SIP/2.0 Via: SIP/2.0/UDP guest.astricon.net:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: saghul <sip:saghul@sipdoc.net>;tag=8321234356 To: AstriCon <sip:astricon@astricon.net>;tag=9fxced76sl Call-ID: 3848276298220188511@astricon.net CSeq: 1 BYE Content-Length: 0 Thanks for watching! 37
  • 39. AstriCon 2009: Asterisk, Instant Messaging and Presence, how? License http://creativecommons.org/licenses/by-sa/3.0/ All images are property of their respective authors. 39