SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Acceptance Tests For Asterisk on the MCF54451
Operating-System Structures
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
LINUX-WINDOWS INTERACTION. One software allowing interaction between Linux and Windows is WINE. Wine allows Linux users to load Windows programs while.
1 Linux Networking and Security Chapter 2. 2 Configuring Basic Networking Describe how networking devices differ from other Linux devices Configure Linux.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
 Introduction Originally developed by Open Software Foundation (OSF), which is now called The Open Group ( Provides a set of tools and.
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
Open H323 Features, tools and basic utilization Liane Tarouco Leandro Bertholdo.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 5: Managing File Access.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 5: Managing File Access.
9.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 9: Installing and Configuring.
V0.01 © 2009 Research In Motion Limited Introduction to Java Application Development for the BlackBerry Smartphone Trainer name Date.
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
1 Chapter Overview Introduction to Windows XP Professional Printing Setting Up Network Printers Connecting to Network Printers Configuring Network Printers.
Module 2: Planning to Install SQL Server. Overview Hardware Installation Considerations SQL Server 2000 Editions Software Installation Considerations.
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
© Aastra – 2013 BluStar for iPad / iPhone September 2013 BluStar for iPad/iPhone.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Introduction to HP LoadRunner Getting Familiar with LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Copyright 2003 Accenture. All rights reserved. Accenture, its logo, and Accenture Innovation Delivered are trademarks of Accenture. Data Migration in Oracle.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
VoIP, Asterisk, and Java Michael P. Plezbert Agilis Systems, Inc St. Louis Java Users Group April 13, 2006.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
TechEd /22/2017 5:40 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
IOS110 Introduction to Operating Systems using Windows Session 9 1.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 5: Managing File Access.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
1 © 2006 Cisco Systems, Inc. All rights reserved. Session Number Presentation_ID Cisco Confidential Configuring Attendant Console.
LWIP TCP/IP Stack 김백규.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
June 6 th – 8 th 2005 Deployment Tool Set Synergy 2005.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
IBM OS/2 Warp Mike Storck Matt Kerster Mike Roe Patrick Caldwell.
WINDOWS XP PROFESSIONAL AUTOMATING THE WINDOWS XP INSTALLATION Bilal Munir Mughal Chapter-2 1.
Real-time multimedia and communication in packet networks Asterisk AGI and Manager Interface.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
Chapter 10 Chapter 10: Managing the Distributed File System, Disk Quotas, and Software Installation.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Linux Operations and Administration
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
IPEmotion License Management PM (V1.2).
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
Connecting FreeSWITCH
What are they? The Package Repository Client is a set of Tcl scripts that are capable of locating, downloading, and installing packages for both Tcl and.
Configuring Attendant Console
Chapter 9 Router Configuration (Ospf, Rip) Webmin, usermin Team viewer
Chapter 2: System Structures
Introduction to Operating System (OS)
Radoslaw Jedynak, PhD Poland, Technical University of Radom
Chapter 2: Operating-System Structures
Software - Operating Systems
STATEL an easy way to transfer data
Presentation transcript:

SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009

AGENDA Overview How it Works Usage How to build it How to Configure it Starting it CLI commands Performances Q&A

SKYPIAX important infos Skypiax uses the Skype API but is not endorsed, certified or otherwise approved in any way by Skype, Ebay, or any other company owning rights to the Skype technology Skypiax is developed mainly on FreeSWITCH, and is then made to be compatible with Asterisk too (occasionally Asterisk version can lag behind or not compile straight from svn. Asterisk users, be patient or volunteer to maintain)

WHAT is SKYPIAX ? Skypiax is an endpoint (channel driver) that uses the Skype client as an interface to the Skype network, and allows incoming and outgoing Skype calls to/from FreeSWITCH (calls can be bridged, originated, answered, etc. as in all other endpoints, e.g. sofia/SIP). Skypiax works in FreeSWITCH (FS) on both Linux and Windows (directly, no Cygwin needed), native at 16khz (Skype client has 16khz audio I/O). Skypiax works on Asterisk too, converting at 8khz (Asterisk cannot do 16khz), on Linux and Windows (through CygWin). Think of Skypiax as similar to OpenZAP for analog lines. For each channel you need an interface (a Skype client). So, for example, two concurrent calls would need two channels, and therefore two Skype clients running on your FreeSWITCH server.

SKYPIAX Features Overview Multiline (many concurrent different skypeusernames: “Alice”, “Bob”,... “Zukowski”) Multiline (many concurrent instances of the same skypeusername: “Alice”, “Alice”,.... “Alice”) Multiline (a mix of the former two setups) Can make SkypeOut calls to PSTN and cellphones Easy integration into dialplan (like standard endpoints) Round Robin or Linear hunt for next available outbound channel Automatic selection of interface to answer incoming call CLI commands for statistics, debug, prototyping, control Easy interaction with the outside world through ESL or AMI

SKYPIAX, how it works One Skype client instance running per each Skypiax interface (eg: 32 Skype concurrent calls, 32 Skypiax interfaces, 32 Skype clients running) Skypiax “remote controls” its own configured Skype client via Skype API Skypiax exchange audio to/from the Skype client via TCP/IP sockets (activated via Skype API) that “substitute” the soundcard microphone and speakers

Skype API, what it looks like Skype API is a proprietary, text based protocol for communication between the Skype client and other external software (eg: Skypiax)‏  On Windows is implemented through Windows Messages, on Linux using X Events  For both Linux and Windows, Skypiax creates a “fake” window with its own message loop, then dispatch messages to the monitor or to the appropriate interface thread Eg: Skypiax sends “PING” to Skype client, Skype client sends “PONG” back to Skypiax Skype API is fairly complete, can manage calls, call progress, messaging, etc Skypiax gives you different tools for interacting at the Skype API level (eg: for debugging and prototyping features)

SKYPIAX, outbound usage Standard interface naming: skypiax/interface3 Eg, from the FS CLI: –bgapi originate skypiax/interface3/Bob 9999 –Will originate a Skype call from interface3 to Bob, and connect Bob to extension 9999 of dialplan (Music on Hold) * Round Robin interface naming: skypiax/RR * Eg, from the FS CLI: –bgapi originate skypiax/RR/Bob 9999 –Will originate a Skype call from the first available interface (using a RR scheme for uniform utilization) to Bob, and connect Bob to extension 9999 of dialplan (Music on Hold)

SKYPIAX, inbound usage Each interface will answer inbound calls directed to its own configured Skype client (eg: to “Alice” or to “Bob”, as per how the Skype client identified itself with the Skype network) If you have different interfaces configured with different skypenames (eg: you have two channels, one with Skype client “Alice” and one with Skype client “Bob”), if the incoming call to Alice find the client “Alice” busy and the client “Bob” is idle, the call will be transferred to “Bob”. Transparently for the caller (caller still thinks is Alice to answer). If you have multiple instances of client “Alice”, one such idle interface will be automatically chosen to answer an incoming call to Alice

SKYPIAX, HOW to BUILD it On Linux and BSD, you need to install the Xvfb (fake) Xserver – needed by the Skype client – and the libX11 development package Edit the modules.conf in the root of FS sources, and uncomment the mod_skypiax line Make install On Windows, Skypiax is build by default, no need for special actions Both Linux and Windows: You want to download and install the 16khz sounds and music (Skypiax is 16khz native)

SKYPIAX Configuration Edit the file startskype.sh from src/mod/endpoints/mod_skypiax/config to reflect the number of Skype clients you want to start and which Skype username each one client will use to register with the Skype network REMEMBER: one interface – one Skype client running. Each interface has its own Skype client to “remote control” Copy the configuration file skypiax.conf.xml from src/mod/endpoints/mod_skypiax/configs to the configuration directory of FreeSWITCH Edit the skypiax.conf.xml to reflect how many interfaces you will use, specify for each interface the same Skype username the configured Skype client will register to the Skype network

SKYPIAX, starting it BEFORE TO START FreeSWITCH Execute the script startskype.sh (or startskype.bat on Windoz) Wait until all the Skype clients have been started Start FreeSWITCH Since it is now possible to add/remove Skypiax interfaces on the fly, eg as in starting a Skype client instance connected as “Bob” and then add an interface to it to a running FreeSWITCH/Skypiax

SKYPIAX CLI commands Two kinds of commands: “sk” and “skypiax” gives you complete and full control of Skypiax and the Skype API “sk” is meant to be used from the command line, interactively, to send API command to the Skype client “remote controlled” by a Skypiax interface “sk” is also used to list interfaces' status, and to add/remove interfaces on the fly “skypiax” is meant to be used by external programs, eg: via ESL, to send Skype API command to a Skype client “remote controlled” by a particular interface

SKYPIAX performances Easily 30 concurrent Skype calls per machine The load on the server is generated by the Skype clients On Windows you cannot do anything to lower the load generated by Skype clients, but they are highly optimized for Windoz, so not big problem To minimize the load generated by the Skype client instances on Linux (scripts provided for): –Use the “fake” Xserver Xvfb –Use the “fake” snd-dummy ALSA driver * To “really” optimize performances on Linux: - follow the instructions on wiki for custom kernel and custom ALSA driver

Thank you for your attention, please, any questions? for more info: Giovanni Maruzzelli