SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 CastroAlberto Sagredo Castro
 
Shmcfarl slb66-slb64-nat64-proxy
Shmcfarl slb66-slb64-nat64-proxyShmcfarl slb66-slb64-nat64-proxy
Shmcfarl slb66-slb64-nat64-proxyShannon McFarland
 
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 asaAhmed 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 ApplicationsAnaren, 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 ServicesCisco 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 UpdateCisco Canada
 

Tendances (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
 

En vedette

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 VoIPSaú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 Asteriskjicksta
 
Asterisk-Java Framework Presentation
Asterisk-Java Framework PresentationAsterisk-Java Framework Presentation
Asterisk-Java Framework PresentationJustin 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 telecommunicationsTran Thanh
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskMoises Silva
 
The 12 tasks of Asterisk
The 12 tasks of AsteriskThe 12 tasks of Asterisk
The 12 tasks of AsteriskElio Rojano
 
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 SDKSaú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 OpenSIPSSaúl Ibarra Corretgé
 

En vedette (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
 

Similaire à 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 officeJohn 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 2010Christopher Frost
 
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の最新機能とStorletsKota Tsuyuzaki
 
OpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - MasakariOpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - Masakarimasahito12
 
Astricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installationsAstricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installationsOlle E Johansson
 
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 botsCisco 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 v5Scality
 
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
 
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
 

Similaire à 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!
 

Plus de 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 pandemicSaú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 MeetSaú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 loveSaú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 mindedSaú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 experienceSaú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 WebRTCSaú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 WebRTCSaú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-hostSaú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 IoTSaú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/oSaú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 WebRTCSaú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 serverSaúl Ibarra Corretgé
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasSaúl Ibarra Corretgé
 

Plus de Saúl Ibarra Corretgé (20)

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
 
Planning libuv v2
Planning libuv v2Planning libuv v2
Planning libuv v2
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

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