SlideShare a Scribd company logo
Playing Kazoo 
Dudka-style 
Experience from 
across the globe 
Mikhail Rodionov, CEO, 
marod@siplabs.ru
Who? Where? Why? 
About US
Who we are? 
•Location: Novosibirsk, Russia. That's right, that’s somewhere in Siberia 
•Occupation: Professional services company 
•Ambitions: High 
•Ideas: a lot 
We give a thing 
about KAZOO!
Novosibirsk, Russia, where is 
it!?
We are right there
What we do? 
•We plan, design, deploy, test, maintain and support Kazoo-based 
systems for our clients 
•We develop for KAZOO platform 
•Outside KAZOO we work with sipXecs, plain FreeSWITCH and even 
sometimes Asterisk (yep, guilty) 
•We resell Yealink hardware and develop Yealink-based solutions (like 
Yealink support for sipXecs)
What we do for our clients 
PROJECTS
Client: Moscow-based ITSP 
•Dedicated CEPH cluster for storage (24Tb) 
•CloudStack/KVM-based private IaaS cloud infrastructure 
•2xRabbitMQ, 2xKamailio-SBC, 3xKAZOO, 3xFreeSWITCH, 3xDB, 
2xKamailio-Outbound, SIPCAPTURE, LogStash/ElasticSearch, Email2Fax 
SMTP proxy, HA PaaS platform for Pivot scripts, monitoring 
infrastructure, reverse HA HTTP proxy for API access, etc. 
•Custom built Kamailio with custom Kamailio RADIUS module for 
outbound gateway 
•Heavily patched stable 3.13-based system 
•12 2CPU hardware nodes 
•Tested at 2000 concurrent calls/35 CPS/20 API calls per second 
•Client-developed custom UI
Client: US-based SaaS 
•Really tight integration with custom SaaS CRM system 
•KAZOO is hidden behind the scenes and is top-secret 
•Targeted to up to 10000 concurrent calls (!) 
•Custom version of KAZOO with proprietary modules 
•SuperMicro micro-cloud servers 
•SuperMicro 1U servers for storage cluster 
•Private cloud infrastructure 
Planned: 
•Custom ACD (call-center) application 
•Integrated voice quality monitoring solution 
•WebRTC frontend (now in development)
Product in development: 
Converba Cloud Platform 
SIPLABS turnkey Kazoo-based 
solution 
•Ubuntu LTS-based 
•IaaS/PaaS/STaaS platforms included 
•Custom admin UI 
•Custom client UI 
•Stable (internally tested and patched) 
releases 
•Everything highly-available 
•Rich set of scripts included 
•Built-in centralized log 
collection/monitoring 
•Built-in monitoring/alerting system 
•Built-in backup/recovery system
What’s already done? 
Contributions
Kazoo-UI i18n 
It all began with this contribution 
•All string constants in kazoo-UI were replaced with gettext-like function 
calls 
•Russian language pack was included
After_bridge callflow module 
•After hangup call control 
•Allows remaining leg of call to be transferred to some extension or 
parked 
•Useful for call QA (like in real call-centers) 
"numbers": [ 
"2010" 
], 
"flow": { 
"module": "after_bridge", 
"data": { 
"action": "transfer", // “transfer” or “park” or “hangup” 
"data": "1002“ // Extension to transfer ramaining leg to 
}, 
"children": { 
"_": { 
"module": “user", 
"data": { 
"id": "048c8190b52d6f0850a1b72f376dfb9b" 
}, 
"children": { 
} 
} 
} 
}
Eavesdrop callflow module 
•Allows eavesdropping (spying, whispering) for generic (non-ACD) calls. 
Leg B is addressed 
•Provides security mechanisms for limiting access 
•Implemented as generic (target required in data) and feature-code type 
modules { 
"numbers" :[ 
“2555" 
], 
"flow" :{ 
"module" : "eavesdrop", // “eavesdrop” OR “eavesdrop_feature” 
"data" :{ 
"device_id" : "143c8140b52f6f085aa1b74f376dfb9b", // Device OR user to eavesdrop 
"approved_device_id":”453afa67b52fdf0f5a45c74f316df5c5" // Device OR user OR 
// group allowed to eavesdrop 
}, 
"children" :{ 
} 
} 
} 
NB: whispering mode can be managed via DTMF 
commands
Intercept callflow module 
•Allows intercepting ringing or answered calls. Leg B is addressed 
(changed) 
•Provides security mechanisms for limiting access 
•Implemented as generic (target required in data) and feature-code type 
modules 
{ 
"data" :{ 
"numbers": [ 
"2001" 
], 
"flow" :{ 
"module" : "intercept", // "intercept_feature" is also available 
"data" :{ 
"device_id": "d9722acd6db64e0686365cd79747aabe", //calls to this device 
// will be intercepted 
"approved_group_id": “3479acd7452fdf0f5a45c74f336455b7" // Members if this 
// group are permitted to intercept calls 
}, 
"children" :{ 
} 
} 
} 
}
Pattern lists (API) 
•Lists are meant to be used as a storage for named CID patterns 
•Special API is created for managing lists and list entries 
Lists manipulation 
Create list: PUT /v1/accounts/{account_id}/lists 
Get all lists: GET /v1/accounts/{account_id}/lists 
Get list: GET /v1/accounts/{account_id}/lists/{list_id} 
Modify list: POST /v1/accounts/{account_id}/lists/{list_id} 
Delete list: DELETE /v1/accounts/{account_id}/lists/{list_id} 
List entries manipulation 
Add entry: PUT /v1/accounts/{account_id}/lists/{list_id} 
Get list entries: GET /v1/accounts/{account_id}/lists/{list_id} 
Get list entry: GET /v1/accounts/{account_id}/lists/{list_id}/{entry_id} 
Modify list entry: POST /v1/accounts/{account_id}/lists/{list_id}/{entry_id} 
Delete list entry: DELETE /v1/accounts/{account_id}/lists/{list_id}/{entry_id}
Pattern lists (API), cont. 
{ 
"data": { 
"id":"caea32f84b5b2538d0e99c68b6891df7", 
"name":“testlist", // lists are named 
"entries":{ 
"6d42b485b84b8c8c68fc34dd612e7766":{ 
"pattern":"^79d{9}$", // entry pattern 
"firstname": "Mobile", // first name (optional) 
"lastname": "Phones", // last name (optional) 
"displayname": "Mobile phones", // display name (optional) 
"type" : "range" // type – freeform string (optional) 
}, 
“53476538abcd38475638475638438465":{ 
"pattern":"^7495d{7}$", // entry pattern 
"firstname":"Moscow", // first name (optional) 
"lastname":"Landlines", // last name (optional) 
"displayname":"Mobile phones", // display name (optional) 
"type": "range" // type – freeform string (optional) 
}, 
} 
} 
TODO: Add "number" (exact match) parameter
Pattern list CID match 
(callflow module) 
•check_cid module was there before, but it was meant to match one 
pattern 
•cidlistmatch matches CID to the whole list and makes it easy to manage: 
• VIP lists 
• Black lists 
• Area-based routes 
• … { 
"data":{ 
"id":"01fc63f92d9b89a25dd4ff1039e64497" // list id 
}, 
"module":"cidlistmatch", 
"children": { 
"match": { }, // something to do if CID matched over list 
"nomatch": { }, // something to do if CID did not match 
} 
} 
TODO: use CID types (internal/external)
Set CID callflow module 
•Modifies CID name and number (useful for Pivot scripts) 
{ 
"flow" :{ 
"module" : "set_cid" , 
"data" :{ 
"caller_id_name": "ACME Inc." // "caller_id_number" can also be changed 
}, 
"children" :{ 
"_": { 
"module": "user", 
"data": { 
"id": "048c8190b52d6f0850a1b72f376dfb9b" 
}, 
"children": { 
} 
} 
} 
} 
TODO: use CID types (internal/external) 
TODO: set_cid_from_list module – to set CID 
based on list
CAMP-ON feature 
PBX Camp On 
This feature is used to "stack" a call onto a busy 
extension. 
If the called party hangs up, their phone will ring 
•New application wasw citreha ttheed "asntadc nkeadm"e cda l"lc.amper" 
•New callflow module (feature code) was created to initiate "camp on" 
calls 
•Works{ differently for onnet and offnet calls 
"flow": { 
"module": "camping_feature", 
"data": { 
"tries":10, // number of tries (for offnet calls) 
"try_interval":1, // interval between tries, minutes (for offnet calls) 
"stop_after": 10, // operation timeout, minutes (for offnet calls) 
"timeout":9 // for onnet-calls: wait timeout 
}, 
"children": { 
} 
}, 
"featurecode": { 
"name": "camping_feature", 
"number": "777" 
}, 
"patterns": [ 
"^*777([0-9]*)$" 
] 
}
SBC per-account/per-device 
ACLs (SOON!) 
•New application was created and named "kamdb" 
•Kamailio module db_kazoo was modified to match 
•New Kamailio configuration role was added: ACL-ROLE 
•Every account/device can have ACLs that work on SBC 
•Devices can't register or make calls if their IPs don't match ACLs 
•IP and (soon) User-Agent ACLs 
"acls":{ 
"order":"AD", // Allow-Deny, "DA" means Deny-Allow 
"cidr":[ 
"12.34.23.54/32" 
,"54.34.65.23/32" 
] 
} 
TODO: Special API within accounts and devices 
(/acls)
SBC per-account/per-device 
rate limits (SOON!) 
•"kamdb" application used for ACLs is used for 
rate-limits as well 
•Kamailio module db_kazoo was modified to 
match 
•New Kamailio configuration role was added: 
RATE-LIMIT-ROLE 
•Every account/device can have rate limits that 
work on SBC. Accounts may have rate-limits for 
entire realm or for devices 
•Per-second and per-minute rate limits are 
implemented 
"rate_limits": { 
"own": { 
"per_minute": { 
"invites": 2000, 
"registrations": 2000, 
"total": 10000 
}, 
"per_second": { 
"invites": 5, 
"registrations": 5, 
"total": 30 
} 
}, 
"device": { 
"per_minute": { 
"invites": 20, 
"registrations": 20, 
"total": 300 
}, 
"per_second": { 
"invites": 2, 
"registrations": 2, 
"total": 20 
} 
} 
} 
} 
TODO: Special API within accounts and devices 
(/ratelimits)
What we are working on right now 
Future contributions (Q4)
Device manager (aka 
Provisioner) •Device provisioner implemented as KAZOO application and set of 
crossbar modules and APIs 
•Profile (policy) based devices configuration 
•Profiles contain data for various brands/families/models 
•Multiple profiles can be assigned to device/account/provider/system 
•Core modules and data/modules for Yealink will be open source and 
freely available (hopefully as part of KAZOO) 
•Sponsors will get everything 
Benefits 
•Highly available and fault tolerant (because it's KAZOO app) 
•Multi-level policy based – flexible from system to individual device level 
•Universal and expandable
What we are going to do in near future 
IDEAS WORTH sharing
Built-in CNAM provider app 
•Built-in CNAM database SERVER as KAZOO application 
•CNAM lookup callflow module 
•CNAM lookup chain management 
XMPP integration 
•XMPP server integration (MongooseIM) 
•Integrated presence 
•MyBuddy-like bot
User profile data management 
•Container and API for user profile data: avatar, manager, contacts, etc 
•Special callflow modules like "call user's manager", "call user's mobile 
contact" etc. 
•Active Directory connector app for Windows Servers BW emulation (yes / L,D AwP coenn ector 
dare) •BW API emulation app 
•BW features for devices 
Built-in DNS server 
•System-integrated GEO-IP enabled smart DNS server 
•Proper DNS balancing for SBC nodes 
•Serving proper DNS records for SIP/XMPP: NAPTR, SRV records,etc. Have an idea? 
Bring it on!
What we face daily 
Challenges
Learning curve 
•Source code serves as the primary documentation 
• Use the source, Luke! 
• RTFC (code), repeat 
•Kazoo is a big, complex system 
Bugs 
•There are bugs caused by high development pace 
•We have to have QA and maintain our own stable builds (and do it for 
our clients) Community Engagement 
•We wish for a tightly integrated partner program with 2600hz 
Community 
• Improved interactions and response times 
• Create formal community policy 
• Moderators and gurus available via community
Community is Important! 
Features cost money to design, build, 
document, test, support, maintain. 
(Remember: Kazoo is a big, complex 
system!) 
This is often misunderstood. 
We can leverage the community to help 
financially and via contributions of time for 
each of these phases. 
Consider contributing to the 
project!
What we dream of 
OUR GOALS
Goals to achieve 
•Our goal, in conjunction with 2600hz, is to be the most amazing KAZOO 
integrator/developer/support provider 
•To offer best 3rd party premium components and applications KAZOO 
(for advanced users/SPs) on the market 
•To constantly improve the KAZOO system and contribute 
patches/features/applications to the open source version 
KAZOO is great. 
Big, complex and great. 
We are here to 
help you use it for your business
Thank you!
SIPLABS LLC., 
4a, Inzhenernaya str., suite 231 
Novosibirsk 
Russia 
630128 
info@siplabs.ru 
+7(383)363-2111 
Skype: siplabs

More Related Content

What's hot

Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014
JWORKS powered by Ordina
 
KSQL Intro
KSQL IntroKSQL Intro
KSQL Intro
confluent
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
Joe Stein
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
YoungHeon (Roy) Kim
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Matt Raible
 
Database CI/CD Pipeline
Database CI/CD PipelineDatabase CI/CD Pipeline
Database CI/CD Pipeline
muhammadhashir57
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
OutSystems Technical Knowledge
 
Single sign on using SAML
Single sign on using SAML Single sign on using SAML
Single sign on using SAML
Programming Talents
 
Java 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgradeJava 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgrade
Simone Bordet
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use Cases
Alex Soto
 
OData Services
OData ServicesOData Services
OData Services
Jovan Popovic
 
REST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsREST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTs
Jon Todd
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 framework
Svetlin Nakov
 
스타트업을 위한 Confluent 세미나
스타트업을 위한 Confluent 세미나스타트업을 위한 Confluent 세미나
스타트업을 위한 Confluent 세미나
confluent
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
Ali BAKAN
 
Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket Cloud
Atlassian
 
Integrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and CamelIntegrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and Camel
Justin Reock
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
I Goo Lee
 
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)
confluent
 

What's hot (20)

Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014
 
KSQL Intro
KSQL IntroKSQL Intro
KSQL Intro
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
 
Database CI/CD Pipeline
Database CI/CD PipelineDatabase CI/CD Pipeline
Database CI/CD Pipeline
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
 
Single sign on using SAML
Single sign on using SAML Single sign on using SAML
Single sign on using SAML
 
Java 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgradeJava 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgrade
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use Cases
 
OData Services
OData ServicesOData Services
OData Services
 
REST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsREST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTs
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 framework
 
스타트업을 위한 Confluent 세미나
스타트업을 위한 Confluent 세미나스타트업을 위한 Confluent 세미나
스타트업을 위한 Confluent 세미나
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket Cloud
 
Integrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and CamelIntegrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and Camel
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
 
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)
 

Viewers also liked

2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits
2600Hz
 
Kamailio and VoIP Wild World
Kamailio and VoIP Wild WorldKamailio and VoIP Wild World
Kamailio and VoIP Wild World
2600Hz
 
Telnexus - Quote to Cash – KazooCon 2015
Telnexus - Quote to Cash – KazooCon 2015Telnexus - Quote to Cash – KazooCon 2015
Telnexus - Quote to Cash – KazooCon 2015
2600Hz
 
Voxter - Building Value with Kazoo - KazooCon 2015
Voxter - Building Value with Kazoo - KazooCon 2015Voxter - Building Value with Kazoo - KazooCon 2015
Voxter - Building Value with Kazoo - KazooCon 2015
2600Hz
 
KazooCon 2014 - Deploying Kazoo Globally
KazooCon 2014 - Deploying Kazoo GloballyKazooCon 2014 - Deploying Kazoo Globally
KazooCon 2014 - Deploying Kazoo Globally
2600Hz
 
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
2600Hz
 
2600Hz - Detecting and Managing VoIP Fraud
2600Hz - Detecting and Managing VoIP Fraud2600Hz - Detecting and Managing VoIP Fraud
2600Hz - Detecting and Managing VoIP Fraud
2600Hz
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
2600Hz
 
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
2600Hz
 
KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile
2600Hz
 
2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud
2600Hz
 
KazooCon 2014 - Control Cellular Service via APIs
KazooCon 2014 - Control Cellular Service via APIsKazooCon 2014 - Control Cellular Service via APIs
KazooCon 2014 - Control Cellular Service via APIs
2600Hz
 
KazooCon 2014 - WebRTC
KazooCon 2014 - WebRTCKazooCon 2014 - WebRTC
KazooCon 2014 - WebRTC
2600Hz
 
Build your first Monster APP
Build your first Monster APPBuild your first Monster APP
Build your first Monster APP
2600Hz
 
2600Hz - The Next Wave - KazooCon 2015
2600Hz - The Next Wave - KazooCon 2015 2600Hz - The Next Wave - KazooCon 2015
2600Hz - The Next Wave - KazooCon 2015
2600Hz
 
2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600hz WebRTC Meetup at WeWork, San Francisco, CA2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600Hz
 
KazooCon 2014 - Introduction to Kazoo APIs!
KazooCon 2014 - Introduction to Kazoo APIs!KazooCon 2014 - Introduction to Kazoo APIs!
KazooCon 2014 - Introduction to Kazoo APIs!
2600Hz
 
2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo
2600Hz
 
KazooCon 2014 - Building Your Business: Behind the Numbers!
KazooCon 2014 - Building Your Business: Behind the Numbers!KazooCon 2014 - Building Your Business: Behind the Numbers!
KazooCon 2014 - Building Your Business: Behind the Numbers!
2600Hz
 
KazooCon 2014 - A Primer on Telecom Law
KazooCon 2014 - A Primer on Telecom LawKazooCon 2014 - A Primer on Telecom Law
KazooCon 2014 - A Primer on Telecom Law
2600Hz
 

Viewers also liked (20)

2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits
 
Kamailio and VoIP Wild World
Kamailio and VoIP Wild WorldKamailio and VoIP Wild World
Kamailio and VoIP Wild World
 
Telnexus - Quote to Cash – KazooCon 2015
Telnexus - Quote to Cash – KazooCon 2015Telnexus - Quote to Cash – KazooCon 2015
Telnexus - Quote to Cash – KazooCon 2015
 
Voxter - Building Value with Kazoo - KazooCon 2015
Voxter - Building Value with Kazoo - KazooCon 2015Voxter - Building Value with Kazoo - KazooCon 2015
Voxter - Building Value with Kazoo - KazooCon 2015
 
KazooCon 2014 - Deploying Kazoo Globally
KazooCon 2014 - Deploying Kazoo GloballyKazooCon 2014 - Deploying Kazoo Globally
KazooCon 2014 - Deploying Kazoo Globally
 
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
 
2600Hz - Detecting and Managing VoIP Fraud
2600Hz - Detecting and Managing VoIP Fraud2600Hz - Detecting and Managing VoIP Fraud
2600Hz - Detecting and Managing VoIP Fraud
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
 
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
 
KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile
 
2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud
 
KazooCon 2014 - Control Cellular Service via APIs
KazooCon 2014 - Control Cellular Service via APIsKazooCon 2014 - Control Cellular Service via APIs
KazooCon 2014 - Control Cellular Service via APIs
 
KazooCon 2014 - WebRTC
KazooCon 2014 - WebRTCKazooCon 2014 - WebRTC
KazooCon 2014 - WebRTC
 
Build your first Monster APP
Build your first Monster APPBuild your first Monster APP
Build your first Monster APP
 
2600Hz - The Next Wave - KazooCon 2015
2600Hz - The Next Wave - KazooCon 2015 2600Hz - The Next Wave - KazooCon 2015
2600Hz - The Next Wave - KazooCon 2015
 
2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600hz WebRTC Meetup at WeWork, San Francisco, CA2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600hz WebRTC Meetup at WeWork, San Francisco, CA
 
KazooCon 2014 - Introduction to Kazoo APIs!
KazooCon 2014 - Introduction to Kazoo APIs!KazooCon 2014 - Introduction to Kazoo APIs!
KazooCon 2014 - Introduction to Kazoo APIs!
 
2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo
 
KazooCon 2014 - Building Your Business: Behind the Numbers!
KazooCon 2014 - Building Your Business: Behind the Numbers!KazooCon 2014 - Building Your Business: Behind the Numbers!
KazooCon 2014 - Building Your Business: Behind the Numbers!
 
KazooCon 2014 - A Primer on Telecom Law
KazooCon 2014 - A Primer on Telecom LawKazooCon 2014 - A Primer on Telecom Law
KazooCon 2014 - A Primer on Telecom Law
 

Similar to KazooCon 2014 - Playing Kazoo Dudka Style

Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling Servers
Daniel-Constantin Mierla
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
Aman Kohli
 
OpenStack Folsom Summit: Melange overview
OpenStack Folsom Summit: Melange overviewOpenStack Folsom Summit: Melange overview
OpenStack Folsom Summit: Melange overview
troytoman
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a Service
Jesus Rodriguez
 
06 network automationwithansible
06 network automationwithansible06 network automationwithansible
06 network automationwithansible
Khairul Zebua
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
Mohammad Qureshi
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
Joel W. King
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
Serge Stinckwich
 
Kamailio Updates - VUC 588
Kamailio Updates - VUC 588Kamailio Updates - VUC 588
Kamailio Updates - VUC 588
Daniel-Constantin Mierla
 
Labs_BT_20221017.pptx
Labs_BT_20221017.pptxLabs_BT_20221017.pptx
Labs_BT_20221017.pptx
ssuserb4d806
 
SolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds Scalability for the Enterprise
SolarWinds Scalability for the Enterprise
SolarWinds
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
SamHoney6
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
Introduction to WSO2 Data Analytics Platform
Introduction to  WSO2 Data Analytics PlatformIntroduction to  WSO2 Data Analytics Platform
Introduction to WSO2 Data Analytics Platform
Srinath Perera
 
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015
Pietro F. Maggi
 
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
InfluxData
 
Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.js
Chris Cowan
 
When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4
月锋 李
 
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
ITCamp
 
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
Aman Kohli
 

Similar to KazooCon 2014 - Playing Kazoo Dudka Style (20)

Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling Servers
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
OpenStack Folsom Summit: Melange overview
OpenStack Folsom Summit: Melange overviewOpenStack Folsom Summit: Melange overview
OpenStack Folsom Summit: Melange overview
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a Service
 
06 network automationwithansible
06 network automationwithansible06 network automationwithansible
06 network automationwithansible
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
Kamailio Updates - VUC 588
Kamailio Updates - VUC 588Kamailio Updates - VUC 588
Kamailio Updates - VUC 588
 
Labs_BT_20221017.pptx
Labs_BT_20221017.pptxLabs_BT_20221017.pptx
Labs_BT_20221017.pptx
 
SolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds Scalability for the Enterprise
SolarWinds Scalability for the Enterprise
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Introduction to WSO2 Data Analytics Platform
Introduction to  WSO2 Data Analytics PlatformIntroduction to  WSO2 Data Analytics Platform
Introduction to WSO2 Data Analytics Platform
 
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015
 
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
 
Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.js
 
When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4
 
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
 
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
 

Recently uploaded

怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
saathvikreddy2003
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 

Recently uploaded (19)

怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 

KazooCon 2014 - Playing Kazoo Dudka Style

  • 1. Playing Kazoo Dudka-style Experience from across the globe Mikhail Rodionov, CEO, marod@siplabs.ru
  • 2. Who? Where? Why? About US
  • 3. Who we are? •Location: Novosibirsk, Russia. That's right, that’s somewhere in Siberia •Occupation: Professional services company •Ambitions: High •Ideas: a lot We give a thing about KAZOO!
  • 5. We are right there
  • 6. What we do? •We plan, design, deploy, test, maintain and support Kazoo-based systems for our clients •We develop for KAZOO platform •Outside KAZOO we work with sipXecs, plain FreeSWITCH and even sometimes Asterisk (yep, guilty) •We resell Yealink hardware and develop Yealink-based solutions (like Yealink support for sipXecs)
  • 7. What we do for our clients PROJECTS
  • 8. Client: Moscow-based ITSP •Dedicated CEPH cluster for storage (24Tb) •CloudStack/KVM-based private IaaS cloud infrastructure •2xRabbitMQ, 2xKamailio-SBC, 3xKAZOO, 3xFreeSWITCH, 3xDB, 2xKamailio-Outbound, SIPCAPTURE, LogStash/ElasticSearch, Email2Fax SMTP proxy, HA PaaS platform for Pivot scripts, monitoring infrastructure, reverse HA HTTP proxy for API access, etc. •Custom built Kamailio with custom Kamailio RADIUS module for outbound gateway •Heavily patched stable 3.13-based system •12 2CPU hardware nodes •Tested at 2000 concurrent calls/35 CPS/20 API calls per second •Client-developed custom UI
  • 9. Client: US-based SaaS •Really tight integration with custom SaaS CRM system •KAZOO is hidden behind the scenes and is top-secret •Targeted to up to 10000 concurrent calls (!) •Custom version of KAZOO with proprietary modules •SuperMicro micro-cloud servers •SuperMicro 1U servers for storage cluster •Private cloud infrastructure Planned: •Custom ACD (call-center) application •Integrated voice quality monitoring solution •WebRTC frontend (now in development)
  • 10. Product in development: Converba Cloud Platform SIPLABS turnkey Kazoo-based solution •Ubuntu LTS-based •IaaS/PaaS/STaaS platforms included •Custom admin UI •Custom client UI •Stable (internally tested and patched) releases •Everything highly-available •Rich set of scripts included •Built-in centralized log collection/monitoring •Built-in monitoring/alerting system •Built-in backup/recovery system
  • 11. What’s already done? Contributions
  • 12. Kazoo-UI i18n It all began with this contribution •All string constants in kazoo-UI were replaced with gettext-like function calls •Russian language pack was included
  • 13. After_bridge callflow module •After hangup call control •Allows remaining leg of call to be transferred to some extension or parked •Useful for call QA (like in real call-centers) "numbers": [ "2010" ], "flow": { "module": "after_bridge", "data": { "action": "transfer", // “transfer” or “park” or “hangup” "data": "1002“ // Extension to transfer ramaining leg to }, "children": { "_": { "module": “user", "data": { "id": "048c8190b52d6f0850a1b72f376dfb9b" }, "children": { } } } }
  • 14. Eavesdrop callflow module •Allows eavesdropping (spying, whispering) for generic (non-ACD) calls. Leg B is addressed •Provides security mechanisms for limiting access •Implemented as generic (target required in data) and feature-code type modules { "numbers" :[ “2555" ], "flow" :{ "module" : "eavesdrop", // “eavesdrop” OR “eavesdrop_feature” "data" :{ "device_id" : "143c8140b52f6f085aa1b74f376dfb9b", // Device OR user to eavesdrop "approved_device_id":”453afa67b52fdf0f5a45c74f316df5c5" // Device OR user OR // group allowed to eavesdrop }, "children" :{ } } } NB: whispering mode can be managed via DTMF commands
  • 15. Intercept callflow module •Allows intercepting ringing or answered calls. Leg B is addressed (changed) •Provides security mechanisms for limiting access •Implemented as generic (target required in data) and feature-code type modules { "data" :{ "numbers": [ "2001" ], "flow" :{ "module" : "intercept", // "intercept_feature" is also available "data" :{ "device_id": "d9722acd6db64e0686365cd79747aabe", //calls to this device // will be intercepted "approved_group_id": “3479acd7452fdf0f5a45c74f336455b7" // Members if this // group are permitted to intercept calls }, "children" :{ } } } }
  • 16. Pattern lists (API) •Lists are meant to be used as a storage for named CID patterns •Special API is created for managing lists and list entries Lists manipulation Create list: PUT /v1/accounts/{account_id}/lists Get all lists: GET /v1/accounts/{account_id}/lists Get list: GET /v1/accounts/{account_id}/lists/{list_id} Modify list: POST /v1/accounts/{account_id}/lists/{list_id} Delete list: DELETE /v1/accounts/{account_id}/lists/{list_id} List entries manipulation Add entry: PUT /v1/accounts/{account_id}/lists/{list_id} Get list entries: GET /v1/accounts/{account_id}/lists/{list_id} Get list entry: GET /v1/accounts/{account_id}/lists/{list_id}/{entry_id} Modify list entry: POST /v1/accounts/{account_id}/lists/{list_id}/{entry_id} Delete list entry: DELETE /v1/accounts/{account_id}/lists/{list_id}/{entry_id}
  • 17. Pattern lists (API), cont. { "data": { "id":"caea32f84b5b2538d0e99c68b6891df7", "name":“testlist", // lists are named "entries":{ "6d42b485b84b8c8c68fc34dd612e7766":{ "pattern":"^79d{9}$", // entry pattern "firstname": "Mobile", // first name (optional) "lastname": "Phones", // last name (optional) "displayname": "Mobile phones", // display name (optional) "type" : "range" // type – freeform string (optional) }, “53476538abcd38475638475638438465":{ "pattern":"^7495d{7}$", // entry pattern "firstname":"Moscow", // first name (optional) "lastname":"Landlines", // last name (optional) "displayname":"Mobile phones", // display name (optional) "type": "range" // type – freeform string (optional) }, } } TODO: Add "number" (exact match) parameter
  • 18. Pattern list CID match (callflow module) •check_cid module was there before, but it was meant to match one pattern •cidlistmatch matches CID to the whole list and makes it easy to manage: • VIP lists • Black lists • Area-based routes • … { "data":{ "id":"01fc63f92d9b89a25dd4ff1039e64497" // list id }, "module":"cidlistmatch", "children": { "match": { }, // something to do if CID matched over list "nomatch": { }, // something to do if CID did not match } } TODO: use CID types (internal/external)
  • 19. Set CID callflow module •Modifies CID name and number (useful for Pivot scripts) { "flow" :{ "module" : "set_cid" , "data" :{ "caller_id_name": "ACME Inc." // "caller_id_number" can also be changed }, "children" :{ "_": { "module": "user", "data": { "id": "048c8190b52d6f0850a1b72f376dfb9b" }, "children": { } } } } TODO: use CID types (internal/external) TODO: set_cid_from_list module – to set CID based on list
  • 20. CAMP-ON feature PBX Camp On This feature is used to "stack" a call onto a busy extension. If the called party hangs up, their phone will ring •New application wasw citreha ttheed "asntadc nkeadm"e cda l"lc.amper" •New callflow module (feature code) was created to initiate "camp on" calls •Works{ differently for onnet and offnet calls "flow": { "module": "camping_feature", "data": { "tries":10, // number of tries (for offnet calls) "try_interval":1, // interval between tries, minutes (for offnet calls) "stop_after": 10, // operation timeout, minutes (for offnet calls) "timeout":9 // for onnet-calls: wait timeout }, "children": { } }, "featurecode": { "name": "camping_feature", "number": "777" }, "patterns": [ "^*777([0-9]*)$" ] }
  • 21. SBC per-account/per-device ACLs (SOON!) •New application was created and named "kamdb" •Kamailio module db_kazoo was modified to match •New Kamailio configuration role was added: ACL-ROLE •Every account/device can have ACLs that work on SBC •Devices can't register or make calls if their IPs don't match ACLs •IP and (soon) User-Agent ACLs "acls":{ "order":"AD", // Allow-Deny, "DA" means Deny-Allow "cidr":[ "12.34.23.54/32" ,"54.34.65.23/32" ] } TODO: Special API within accounts and devices (/acls)
  • 22. SBC per-account/per-device rate limits (SOON!) •"kamdb" application used for ACLs is used for rate-limits as well •Kamailio module db_kazoo was modified to match •New Kamailio configuration role was added: RATE-LIMIT-ROLE •Every account/device can have rate limits that work on SBC. Accounts may have rate-limits for entire realm or for devices •Per-second and per-minute rate limits are implemented "rate_limits": { "own": { "per_minute": { "invites": 2000, "registrations": 2000, "total": 10000 }, "per_second": { "invites": 5, "registrations": 5, "total": 30 } }, "device": { "per_minute": { "invites": 20, "registrations": 20, "total": 300 }, "per_second": { "invites": 2, "registrations": 2, "total": 20 } } } } TODO: Special API within accounts and devices (/ratelimits)
  • 23. What we are working on right now Future contributions (Q4)
  • 24. Device manager (aka Provisioner) •Device provisioner implemented as KAZOO application and set of crossbar modules and APIs •Profile (policy) based devices configuration •Profiles contain data for various brands/families/models •Multiple profiles can be assigned to device/account/provider/system •Core modules and data/modules for Yealink will be open source and freely available (hopefully as part of KAZOO) •Sponsors will get everything Benefits •Highly available and fault tolerant (because it's KAZOO app) •Multi-level policy based – flexible from system to individual device level •Universal and expandable
  • 25. What we are going to do in near future IDEAS WORTH sharing
  • 26. Built-in CNAM provider app •Built-in CNAM database SERVER as KAZOO application •CNAM lookup callflow module •CNAM lookup chain management XMPP integration •XMPP server integration (MongooseIM) •Integrated presence •MyBuddy-like bot
  • 27. User profile data management •Container and API for user profile data: avatar, manager, contacts, etc •Special callflow modules like "call user's manager", "call user's mobile contact" etc. •Active Directory connector app for Windows Servers BW emulation (yes / L,D AwP coenn ector dare) •BW API emulation app •BW features for devices Built-in DNS server •System-integrated GEO-IP enabled smart DNS server •Proper DNS balancing for SBC nodes •Serving proper DNS records for SIP/XMPP: NAPTR, SRV records,etc. Have an idea? Bring it on!
  • 28. What we face daily Challenges
  • 29. Learning curve •Source code serves as the primary documentation • Use the source, Luke! • RTFC (code), repeat •Kazoo is a big, complex system Bugs •There are bugs caused by high development pace •We have to have QA and maintain our own stable builds (and do it for our clients) Community Engagement •We wish for a tightly integrated partner program with 2600hz Community • Improved interactions and response times • Create formal community policy • Moderators and gurus available via community
  • 30. Community is Important! Features cost money to design, build, document, test, support, maintain. (Remember: Kazoo is a big, complex system!) This is often misunderstood. We can leverage the community to help financially and via contributions of time for each of these phases. Consider contributing to the project!
  • 31. What we dream of OUR GOALS
  • 32. Goals to achieve •Our goal, in conjunction with 2600hz, is to be the most amazing KAZOO integrator/developer/support provider •To offer best 3rd party premium components and applications KAZOO (for advanced users/SPs) on the market •To constantly improve the KAZOO system and contribute patches/features/applications to the open source version KAZOO is great. Big, complex and great. We are here to help you use it for your business
  • 34. SIPLABS LLC., 4a, Inzhenernaya str., suite 231 Novosibirsk Russia 630128 info@siplabs.ru +7(383)363-2111 Skype: siplabs