SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
Learning Erlang and developing a SIP 
 server/stack with 30k potential users


       Fredrik Thulin <sip:ft@it.su.se>
          Enheten för IT och media
           Stockholms universitet

                  EUC2004
Stockholm university telephony in 
                1997 :
    Ericsson MD110
●



    5000 subscribers
●




                       2000 :
    Ericsson MD110 – 4200 subscribers
●



    Cisco CallManager – 800 subscribers
●




    Early VoIP adopters, but still no open standard
●
SIP
    Session Initiation Protocol
●



    IETF proposed standard (RFC3261, 2, 3, 4 and 5)
●



    Does not care about audio/video/whatever
●



    Instant messaging and presence
●



    Parsing is hard, even though (?) it's plain text
●



    Transactions are complex
●



    Few open source implementations as to date
●
Personal Erlang experience
    No prior knowledge about functional 
●


    programming
    Hard time understanding some syntax (strings are 
●


    lists, [H | T] = “string”)
    Assign once
●



    Really like cheap processes and the IPC
●
Implementation
    Magnus Ahltorp, KTH made a couple of 
●


    implementations in Perl, Python, C, ...
    Erlang implementation was the most viable one
●




    First Yxa snapshot released 2003­10­07
●



    OTP supervisor model
●



    15000 lines of code, 5000 lines of comments
●
OTP supervisor model
                                                sipserver_sup




                               sipsocket                                   directory
transaction_layer                                                logger




               sipsocket_udp               tcp_dispatcher




                                                            tcp_listener
Plans
    Build distributed SIP servers
●


        for routing
    –

        for students (free VoIP/SIP­service, no PSTN)
    –

        for basic call service? Evaluating.
    –

    Distributed policy control (perimeter defense ­ 
●


    rate limiting etc.)
    External event logging with call context
●



    RFC compliant stack, easy to write applications
●
Perimeter defense

                         Internet




              Servers running Yxa incomingproxy

    Rate limiting number of ongoing calls per host, class 
–
    C network, domain, SSL certificate etc.
Project
    http://www.stacken.kth.se/projekt/yxa/
●

Contenu connexe

Tendances

Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
suniltomar04
 
Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...
Maximilan Wilhelm
 

Tendances (20)

RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
 
Best practices of building data streaming API
Best practices of building data streaming APIBest practices of building data streaming API
Best practices of building data streaming API
 
Netty - a pragmatic introduction
Netty - a pragmatic introductionNetty - a pragmatic introduction
Netty - a pragmatic introduction
 
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other ObservationsAusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
 
VoxxedDays Minsk - Building scalable WebSocket backend
VoxxedDays Minsk - Building scalable WebSocket backendVoxxedDays Minsk - Building scalable WebSocket backend
VoxxedDays Minsk - Building scalable WebSocket backend
 
Building scalable web socket backend
Building scalable web socket backendBuilding scalable web socket backend
Building scalable web socket backend
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
 
Using RabbitMQ and Netty library to implement RPC protocol
Using RabbitMQ and Netty library to implement RPC protocolUsing RabbitMQ and Netty library to implement RPC protocol
Using RabbitMQ and Netty library to implement RPC protocol
 
The Future of Reactive Architectures
The Future of Reactive ArchitecturesThe Future of Reactive Architectures
The Future of Reactive Architectures
 
Snappy Kamailio
Snappy KamailioSnappy Kamailio
Snappy Kamailio
 
2015 02 24 lmtv baselining
2015 02 24 lmtv baselining2015 02 24 lmtv baselining
2015 02 24 lmtv baselining
 
Scala and ZeroMQ: Events beyond the JVM
Scala and ZeroMQ: Events beyond the JVMScala and ZeroMQ: Events beyond the JVM
Scala and ZeroMQ: Events beyond the JVM
 
Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...
 
Ekon20 mORMot WorkShop Delphi
Ekon20 mORMot WorkShop DelphiEkon20 mORMot WorkShop Delphi
Ekon20 mORMot WorkShop Delphi
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark Analysis
 
Dotnetfest forget about http
Dotnetfest   forget about httpDotnetfest   forget about http
Dotnetfest forget about http
 
NullMQ @ PDX
NullMQ @ PDXNullMQ @ PDX
NullMQ @ PDX
 
Challenges and experiences with IPTV from a network point of view
Challenges and experiences with IPTV from a network point of viewChallenges and experiences with IPTV from a network point of view
Challenges and experiences with IPTV from a network point of view
 

En vedette

Rails Software Metrics
Rails Software MetricsRails Software Metrics
Rails Software Metrics
chiel
 
Pakistan
PakistanPakistan
Pakistan
cyllan1
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
l xf
 
The Proactor Pattern
The Proactor PatternThe Proactor Pattern
The Proactor Pattern
l xf
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Win
l xf
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
l xf
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Software
l xf
 
Concurrency And Erlang
Concurrency And ErlangConcurrency And Erlang
Concurrency And Erlang
l xf
 
Asynchronous Io Programming
Asynchronous Io ProgrammingAsynchronous Io Programming
Asynchronous Io Programming
l xf
 

En vedette (17)

XMAS Jewelry Collection
XMAS Jewelry CollectionXMAS Jewelry Collection
XMAS Jewelry Collection
 
Google Holiday Logos 2006
Google Holiday Logos 2006Google Holiday Logos 2006
Google Holiday Logos 2006
 
Web2educaster
Web2educasterWeb2educaster
Web2educaster
 
Rails Software Metrics
Rails Software MetricsRails Software Metrics
Rails Software Metrics
 
Black SEO Slide Show
Black SEO Slide ShowBlack SEO Slide Show
Black SEO Slide Show
 
Guiamoodle 3
Guiamoodle 3Guiamoodle 3
Guiamoodle 3
 
Afstudeerpresentatie
AfstudeerpresentatieAfstudeerpresentatie
Afstudeerpresentatie
 
Pakistan
PakistanPakistan
Pakistan
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
 
The Proactor Pattern
The Proactor PatternThe Proactor Pattern
The Proactor Pattern
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Win
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Software
 
Professional XML with PHP
Professional XML with PHPProfessional XML with PHP
Professional XML with PHP
 
Concurrency And Erlang
Concurrency And ErlangConcurrency And Erlang
Concurrency And Erlang
 
XPath - A practical guide
XPath - A practical guideXPath - A practical guide
XPath - A practical guide
 
Asynchronous Io Programming
Asynchronous Io ProgrammingAsynchronous Io Programming
Asynchronous Io Programming
 

Similaire à Learning Erlang And Developing A Sip Server Stack With 30k Potential Users

CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment OverviewCISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
Ameen Wayok
 
Network Engineer (Switching & Routing)
Network Engineer (Switching & Routing)Network Engineer (Switching & Routing)
Network Engineer (Switching & Routing)
ismail zaker
 
Eng.abd elrhman(cv u)
Eng.abd elrhman(cv u)Eng.abd elrhman(cv u)
Eng.abd elrhman(cv u)
INOGHOST
 
IRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSIRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OS
ICT PRISTINE
 
BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)
BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)
BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)
Michael Smith
 
Kazi B. Alam_v6
Kazi B. Alam_v6Kazi B. Alam_v6
Kazi B. Alam_v6
Kazi Alam
 
Jain Sip Tutorial
Jain Sip TutorialJain Sip Tutorial
Jain Sip Tutorial
rajibdk
 

Similaire à Learning Erlang And Developing A Sip Server Stack With 30k Potential Users (20)

CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment OverviewCISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
 
Network Engineer (Switching & Routing)
Network Engineer (Switching & Routing)Network Engineer (Switching & Routing)
Network Engineer (Switching & Routing)
 
ASHISH SENGAR.doc
ASHISH SENGAR.docASHISH SENGAR.doc
ASHISH SENGAR.doc
 
Kamailio World 2013 - SIP and MSRP over WebSocket
Kamailio World 2013 - SIP and MSRP over WebSocketKamailio World 2013 - SIP and MSRP over WebSocket
Kamailio World 2013 - SIP and MSRP over WebSocket
 
Chinmay Padhye
Chinmay PadhyeChinmay Padhye
Chinmay Padhye
 
Sangoma SBC Training Presentation
Sangoma SBC Training PresentationSangoma SBC Training Presentation
Sangoma SBC Training Presentation
 
Eng.abd elrhman(cv u)
Eng.abd elrhman(cv u)Eng.abd elrhman(cv u)
Eng.abd elrhman(cv u)
 
IRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSIRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OS
 
BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)
BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)
BlackHat 2011 - Exploiting Siemens Simatic S7 PLCs (slides)
 
Kazi B. Alam_v6
Kazi B. Alam_v6Kazi B. Alam_v6
Kazi B. Alam_v6
 
177732477-Voice-101.pdf
177732477-Voice-101.pdf177732477-Voice-101.pdf
177732477-Voice-101.pdf
 
updated cvmn
updated cvmnupdated cvmn
updated cvmn
 
CV_KAhmed
CV_KAhmedCV_KAhmed
CV_KAhmed
 
Jain Sip Tutorial
Jain Sip TutorialJain Sip Tutorial
Jain Sip Tutorial
 
voip elements by Karan singh cypher
voip elements by Karan singh cypher voip elements by Karan singh cypher
voip elements by Karan singh cypher
 
updated cv
updated cvupdated cv
updated cv
 
Testing
TestingTesting
Testing
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
 
Resume mandeep kaur
Resume mandeep kaurResume mandeep kaur
Resume mandeep kaur
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 

Learning Erlang And Developing A Sip Server Stack With 30k Potential Users

  • 1. Learning Erlang and developing a SIP  server/stack with 30k potential users Fredrik Thulin <sip:ft@it.su.se> Enheten för IT och media Stockholms universitet EUC2004
  • 2. Stockholm university telephony in  1997 : Ericsson MD110 ● 5000 subscribers ● 2000 : Ericsson MD110 – 4200 subscribers ● Cisco CallManager – 800 subscribers ● Early VoIP adopters, but still no open standard ●
  • 3. SIP Session Initiation Protocol ● IETF proposed standard (RFC3261, 2, 3, 4 and 5) ● Does not care about audio/video/whatever ● Instant messaging and presence ● Parsing is hard, even though (?) it's plain text ● Transactions are complex ● Few open source implementations as to date ●
  • 4. Personal Erlang experience No prior knowledge about functional  ● programming Hard time understanding some syntax (strings are  ● lists, [H | T] = “string”) Assign once ● Really like cheap processes and the IPC ●
  • 5. Implementation Magnus Ahltorp, KTH made a couple of  ● implementations in Perl, Python, C, ... Erlang implementation was the most viable one ● First Yxa snapshot released 2003­10­07 ● OTP supervisor model ● 15000 lines of code, 5000 lines of comments ●
  • 6. OTP supervisor model sipserver_sup sipsocket directory transaction_layer logger sipsocket_udp tcp_dispatcher tcp_listener
  • 7. Plans Build distributed SIP servers ● for routing – for students (free VoIP/SIP­service, no PSTN) – for basic call service? Evaluating. – Distributed policy control (perimeter defense ­  ● rate limiting etc.) External event logging with call context ● RFC compliant stack, easy to write applications ●
  • 8. Perimeter defense Internet Servers running Yxa incomingproxy Rate limiting number of ongoing calls per host, class  – C network, domain, SSL certificate etc.
  • 9. Project http://www.stacken.kth.se/projekt/yxa/ ●