SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
AG Projects
SIP Infrastructure Experts

Workshop
Adrian Georgescu
@agprojects

Monday, October 21, 2013

Saúl Ibarra Corretgé
@saghul
AG Projects
SIP Infrastructure Experts

Hello!

• AG Projects, 10+ years of experience
• Software development for SIP
infrastructures

• Blink (and many other projects!)
• Open Source
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Commercial Products

•
•

MSP and SIP Thor - Turnkey SIP platforms
Blink - SIP Client for OSX, Linux and Windows
Self-organizing SIP Infrastructure

DB

DB

Self-organizing
Horizontally scalable
Built-in disaster recovery
No single point of failure
Maintenance free

Node 5

Node 1

DB

Node 6

Multiple Roles
SIP Proxy/Registrar
RTP Media relay
Presence Agent
XCAP server
Voicemail
Provisioning

DB

Internet

Node 2

DB

Node 3
DB

Node 4

RTP

SIP User Agents
User agents need only RFC3263 support
(locating SIP services using DNS lookups)

Monday, October 21, 2013

NAT

SIP

NAT
4
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

We like questions, interrupt us!

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

What is OpenSIPS?

• Open Source SIP Server
• It does SIP, just SIP
• Proxy, registrar, B2BUA, ...

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Possible deployment scenarios

• Load balancer
• Edge proxy
• Proxy / registrar
• LCR gateway
• Presence Agent
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Monday, October 21, 2013
12
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

1. Keep the core proxy as lean as possible

• Edge proxy
• Sanity checks
• NAT traversal
• Forward to core proxy
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

• Core proxy
• Main routing logic
• User lookup
• Route request to destination

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Using Path support

• RFC 3327
• Keep the edge proxy always in the path
• Always route requests through it (also
outgoing)

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Using Path support
…
loadmodule "rr.so"
loadmodule "registrar.so"
loadmodule "path.so"
…
modparam("path", "use_received", 1)
…
# On the edge proxy
if (method == "REGISTER") {
if (!add_path_received("edge-in"))
sl_send_reply("503", "Internal Path Error");
...
}
# On the core proxy
if (method == "REGISTER") {
…
save("location", "p2v");
}

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

NAT traversal

• Always apply NAT traversal techniques
• Chances of not needing them are too low
• But do not break ICE

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

NAT traversal
if (method != "REGISTER" && client_nat_test("3")) {
fix_contact();
}

Fix
signaling

if ((method=="REGISTER" || method=="SUBSCRIBE" ||
(method=="INVITE" && !has_totag())) && client_nat_test("3")) {
nat_keepalive();
}
if (method==INVITE && !has_totag()) {
engage_media_proxy();
}

Monday, October 21, 2013

Fix media
AG Projects
SIP Infrastructure Experts

2. Keep your configuration tidy

• Use a version control system such as git
• Separate logical sections in different files
• Use a template language to help you
• Handle each method separately
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Handle each SIP method separately

...
if (method == "REGISTER") {
...
} else if (method == "INVITE") {
...
} else if (method == "SUBSCRIBE") {
...
} else if (method == "PUBLISH") {
...
...

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Using jcfg

• https://github.com/saghul/jcfg
• Uses Jinja templates for generating config
files

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Using jcfg

# TCP
{% if use_tcp %}
disable_tcp=no
{% for listener in tcp_listeners %}
listen=tcp:{{ listener }}
{% endfor %}
disable_tcp=yes
{% endif %}

context = {
# UDP
'udp_listeners':
['127.0.0.1:5060', '127.0.0.1:5080'],
# TCP
'use_tcp': True,
'tcp_listeners':
['127.0.0.1:5060', '127.0.0.1:5080']
}

jcfg --input opensips.tpl --output opensips.cfg --context settings.py

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

3. Fraud is unavoidable, deal with it

• Usage quotas per user, per day / month
• Implement a quick way for switching off an
account

• Blacklist premium numbers
•

Nobody calls to Antarctica, really

• Limit number of concurrent calls
Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

4. Apply common sense sec. measures

• ‘1234’ is not a password, it’s a joke
• Different credentials for SIP and for web
configuration tools

• Detect multiple authentication failures
• Discard well known bad UAs
•

Monday, October 21, 2013

‘friendly-scanner’ anyone?
AG Projects
SIP Infrastructure Experts

Mitigating signaling attacks

if (has_totag()) {
# in-dialog request
if (!validate_dialog())
fix_route_dialog();
...
}

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Call limit with CallControl
if (method==INVITE && !has_totag()) {
$avp(cc_call_limit) := 10;
$avp(cc_call_token) := $RANDOM;
call_control();
switch ($retcode) {
case 2:
# Call with no limit
case 1:
# Call has limit and is under callcontrol management
break;
case -1:
# Not enough credit (prepaid call)
sl_send_reply("402", "Not enough credit");
exit;
case -2:
# Locked by another call in progress (prepaid call)
sl_send_reply("403", "Call locked by another call in progress");
exit;
case -3:
# Duplicated callid
sl_send_reply("400", "Duplicated callid");
exit;
case -4:
# Call limit reached
sl_send_reply("503", "Too many concurrent calls");
exit;
default:
# Internal error (message parsing, communication, ...)
sl_send_reply("500", "Internal server error");
exit;
}
}

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Using the new Event Interface
…
loadmodule("event_datagram")
…
# Subscribe to the E_PIKE_BLOCKED event
# Raise your own events from the routing script
$avp(s:attr) = "number";
$avp(s:val) = 0;
$avp(s:attr) = "string";
$avp(s:val) = "dummy value";
raise_event("E_DUMMY", $avp(s:attr), $avp(s:val));

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

BYE

• Keep configuration simple
• Apply Common Sense (TM)
• Be prepared to deal with fraud and failure

Monday, October 21, 2013
AG Projects
SIP Infrastructure Experts

Questions?

@agprojects
@saghul

Monday, October 21, 2013

Weitere ähnliche Inhalte

Was ist angesagt?

DataPower Restful API Security
DataPower Restful API SecurityDataPower Restful API Security
DataPower Restful API SecurityJagadish Vemugunta
 
High Availability Asterisk and FreePBX on Microsoft Azure
High Availability Asterisk and FreePBX on Microsoft AzureHigh Availability Asterisk and FreePBX on Microsoft Azure
High Availability Asterisk and FreePBX on Microsoft AzureSanjay Willie
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouFred Posner
 
FIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionOlle E Johansson
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker建澄 吳
 
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentThree Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentFred Posner
 
DataPower Security Hardening
DataPower Security HardeningDataPower Security Hardening
DataPower Security HardeningShiu-Fun Poon
 
Keeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultKeeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultMitchell Pronschinske
 
Managing secrets at scale
Managing secrets at scaleManaging secrets at scale
Managing secrets at scaleAlex Schoof
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best PracticeShiu-Fun Poon
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 
Open Standards in Identity Management
Open Standards  in  Identity ManagementOpen Standards  in  Identity Management
Open Standards in Identity ManagementPrabath Siriwardena
 
Kamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & HowKamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & HowFred Posner
 
HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩smalltown
 
FreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sFreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sChien Cheng Wu
 

Was ist angesagt? (20)

Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
 
DataPower Restful API Security
DataPower Restful API SecurityDataPower Restful API Security
DataPower Restful API Security
 
High Availability Asterisk and FreePBX on Microsoft Azure
High Availability Asterisk and FreePBX on Microsoft AzureHigh Availability Asterisk and FreePBX on Microsoft Azure
High Availability Asterisk and FreePBX on Microsoft Azure
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
 
FIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access Control
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentThree Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
 
DataPower Security Hardening
DataPower Security HardeningDataPower Security Hardening
DataPower Security Hardening
 
Keeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultKeeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp Vault
 
Managing secrets at scale
Managing secrets at scaleManaging secrets at scale
Managing secrets at scale
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Sipwise rtpengine
Sipwise rtpengineSipwise rtpengine
Sipwise rtpengine
 
Open Standards in Identity Management
Open Standards  in  Identity ManagementOpen Standards  in  Identity Management
Open Standards in Identity Management
 
Kamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & HowKamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & How
 
Openstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetupOpenstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetup
 
HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩
 
FreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sFreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8s
 
SIP Tutorial/Workshop 2
SIP Tutorial/Workshop 2SIP Tutorial/Workshop 2
SIP Tutorial/Workshop 2
 

Andere mochten auch

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é
 
ICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPSaúl Ibarra Corretgé
 
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é
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia PaloSanto Solutions
 

Andere mochten auch (20)

SIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masasSIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masas
 
Proyecto Open Pi Phone
Proyecto Open Pi PhoneProyecto Open Pi Phone
Proyecto Open Pi Phone
 
De SIP a WebRTC y vice versa
De SIP a WebRTC y vice versaDe SIP a WebRTC y vice versa
De SIP a WebRTC y vice versa
 
Proyecto OP^2: Open Pi Phone
Proyecto OP^2: Open Pi PhoneProyecto OP^2: Open Pi Phone
Proyecto OP^2: Open Pi Phone
 
Extendiendo SIP con WebRTC
Extendiendo SIP con WebRTCExtendiendo SIP con WebRTC
Extendiendo SIP con WebRTC
 
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
 
Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTC
 
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!
 
SIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempreSIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempre
 
[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP
 
ICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIP
 
Blink: SIP beyond VoIP
Blink: SIP beyond VoIPBlink: SIP beyond VoIP
Blink: SIP beyond VoIP
 
Rethinking the PBX
Rethinking the PBXRethinking the PBX
Rethinking the PBX
 
Blink: voice is not enough
Blink: voice is not enoughBlink: voice is not enough
Blink: voice is not enough
 
SIP Conferencing Reloaded
SIP Conferencing ReloadedSIP Conferencing Reloaded
SIP Conferencing Reloaded
 
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
 
SIP Beyond VoIP
SIP Beyond VoIPSIP Beyond VoIP
SIP Beyond VoIP
 
Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
 
Janus @ DevDay Napoli
Janus @ DevDay NapoliJanus @ DevDay Napoli
Janus @ DevDay Napoli
 

Ähnlich wie SIP Infrastructure Experts Workshop - AG Projects

Router hardening project.slide
Router hardening project.slideRouter hardening project.slide
Router hardening project.slideAlya Al Saadi
 
V2 d2013 saúl ibarra - sip2sip
V2 d2013   saúl ibarra - sip2sipV2 d2013   saúl ibarra - sip2sip
V2 d2013 saúl ibarra - sip2sipVOIP2DAY
 
Visual Studio for IoT Solutions
Visual Studio for IoT SolutionsVisual Studio for IoT Solutions
Visual Studio for IoT SolutionsAlessio Biasiutti
 
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é
 
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaDataStax Academy
 
Integrating Application Security into a Software Development Process
Integrating Application Security into a Software Development ProcessIntegrating Application Security into a Software Development Process
Integrating Application Security into a Software Development ProcessAchim D. Brucker
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentBobby Curtis
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Cyrille Le Clerc
 
CI/CD and TDD in deploying kamailio
CI/CD and TDD in deploying kamailioCI/CD and TDD in deploying kamailio
CI/CD and TDD in deploying kamailioAleksandar Sosic
 
Active Directory Recon 101
Active Directory Recon 101Active Directory Recon 101
Active Directory Recon 101prashant3535
 
How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...
How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...
How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...Amazon Web Services
 
Schema management with Scalameta
Schema management with ScalametaSchema management with Scalameta
Schema management with ScalametaLars Albertsson
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
Juraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CVJuraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CVJuraj Vysvader
 
Automating Enterprise Wireless Deployments
Automating Enterprise Wireless DeploymentsAutomating Enterprise Wireless Deployments
Automating Enterprise Wireless DeploymentsZack Smith
 
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
 Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e... Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...VMware Tanzu
 
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...JBossArchitectForum
 
When it all GOes right
When it all GOes rightWhen it all GOes right
When it all GOes rightPavlo Golub
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...TigerGraph
 

Ähnlich wie SIP Infrastructure Experts Workshop - AG Projects (20)

Router hardening project.slide
Router hardening project.slideRouter hardening project.slide
Router hardening project.slide
 
V2 d2013 saúl ibarra - sip2sip
V2 d2013   saúl ibarra - sip2sipV2 d2013   saúl ibarra - sip2sip
V2 d2013 saúl ibarra - sip2sip
 
Visual Studio for IoT Solutions
Visual Studio for IoT SolutionsVisual Studio for IoT Solutions
Visual Studio for IoT Solutions
 
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
 
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
 
Video Analysis in Hadoop
Video Analysis in HadoopVideo Analysis in Hadoop
Video Analysis in Hadoop
 
Integrating Application Security into a Software Development Process
Integrating Application Security into a Software Development ProcessIntegrating Application Security into a Software Development Process
Integrating Application Security into a Software Development Process
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgent
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
 
CI/CD and TDD in deploying kamailio
CI/CD and TDD in deploying kamailioCI/CD and TDD in deploying kamailio
CI/CD and TDD in deploying kamailio
 
Active Directory Recon 101
Active Directory Recon 101Active Directory Recon 101
Active Directory Recon 101
 
How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...
How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...
How Trend Micro Build their Enterprise Security Offering on AWS (SEC307) | AW...
 
Schema management with Scalameta
Schema management with ScalametaSchema management with Scalameta
Schema management with Scalameta
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Juraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CVJuraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CV
 
Automating Enterprise Wireless Deployments
Automating Enterprise Wireless DeploymentsAutomating Enterprise Wireless Deployments
Automating Enterprise Wireless Deployments
 
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
 Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e... Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
 
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
 
When it all GOes right
When it all GOes rightWhen it all GOes right
When it all GOes right
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
 

Mehr von 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é
 
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é
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenSaúl Ibarra Corretgé
 

Mehr von 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
 
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
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in between
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

SIP Infrastructure Experts Workshop - AG Projects

  • 1. AG Projects SIP Infrastructure Experts Workshop Adrian Georgescu @agprojects Monday, October 21, 2013 Saúl Ibarra Corretgé @saghul
  • 2. AG Projects SIP Infrastructure Experts Hello! • AG Projects, 10+ years of experience • Software development for SIP infrastructures • Blink (and many other projects!) • Open Source Monday, October 21, 2013
  • 3. AG Projects SIP Infrastructure Experts Commercial Products • • MSP and SIP Thor - Turnkey SIP platforms Blink - SIP Client for OSX, Linux and Windows Self-organizing SIP Infrastructure DB DB Self-organizing Horizontally scalable Built-in disaster recovery No single point of failure Maintenance free Node 5 Node 1 DB Node 6 Multiple Roles SIP Proxy/Registrar RTP Media relay Presence Agent XCAP server Voicemail Provisioning DB Internet Node 2 DB Node 3 DB Node 4 RTP SIP User Agents User agents need only RFC3263 support (locating SIP services using DNS lookups) Monday, October 21, 2013 NAT SIP NAT
  • 5. AG Projects SIP Infrastructure Experts We like questions, interrupt us! Monday, October 21, 2013
  • 6. AG Projects SIP Infrastructure Experts What is OpenSIPS? • Open Source SIP Server • It does SIP, just SIP • Proxy, registrar, B2BUA, ... Monday, October 21, 2013
  • 7. AG Projects SIP Infrastructure Experts Possible deployment scenarios • Load balancer • Edge proxy • Proxy / registrar • LCR gateway • Presence Agent Monday, October 21, 2013
  • 8. AG Projects SIP Infrastructure Experts Monday, October 21, 2013
  • 9. AG Projects SIP Infrastructure Experts Monday, October 21, 2013
  • 10. AG Projects SIP Infrastructure Experts Monday, October 21, 2013
  • 11. AG Projects SIP Infrastructure Experts Monday, October 21, 2013
  • 13. AG Projects SIP Infrastructure Experts 1. Keep the core proxy as lean as possible • Edge proxy • Sanity checks • NAT traversal • Forward to core proxy Monday, October 21, 2013
  • 14. AG Projects SIP Infrastructure Experts • Core proxy • Main routing logic • User lookup • Route request to destination Monday, October 21, 2013
  • 15. AG Projects SIP Infrastructure Experts Using Path support • RFC 3327 • Keep the edge proxy always in the path • Always route requests through it (also outgoing) Monday, October 21, 2013
  • 16. AG Projects SIP Infrastructure Experts Using Path support … loadmodule "rr.so" loadmodule "registrar.so" loadmodule "path.so" … modparam("path", "use_received", 1) … # On the edge proxy if (method == "REGISTER") { if (!add_path_received("edge-in")) sl_send_reply("503", "Internal Path Error"); ... } # On the core proxy if (method == "REGISTER") { … save("location", "p2v"); } Monday, October 21, 2013
  • 17. AG Projects SIP Infrastructure Experts NAT traversal • Always apply NAT traversal techniques • Chances of not needing them are too low • But do not break ICE Monday, October 21, 2013
  • 18. AG Projects SIP Infrastructure Experts Monday, October 21, 2013
  • 19. AG Projects SIP Infrastructure Experts NAT traversal if (method != "REGISTER" && client_nat_test("3")) { fix_contact(); } Fix signaling if ((method=="REGISTER" || method=="SUBSCRIBE" || (method=="INVITE" && !has_totag())) && client_nat_test("3")) { nat_keepalive(); } if (method==INVITE && !has_totag()) { engage_media_proxy(); } Monday, October 21, 2013 Fix media
  • 20. AG Projects SIP Infrastructure Experts 2. Keep your configuration tidy • Use a version control system such as git • Separate logical sections in different files • Use a template language to help you • Handle each method separately Monday, October 21, 2013
  • 21. AG Projects SIP Infrastructure Experts Handle each SIP method separately ... if (method == "REGISTER") { ... } else if (method == "INVITE") { ... } else if (method == "SUBSCRIBE") { ... } else if (method == "PUBLISH") { ... ... Monday, October 21, 2013
  • 22. AG Projects SIP Infrastructure Experts Using jcfg • https://github.com/saghul/jcfg • Uses Jinja templates for generating config files Monday, October 21, 2013
  • 23. AG Projects SIP Infrastructure Experts Using jcfg # TCP {% if use_tcp %} disable_tcp=no {% for listener in tcp_listeners %} listen=tcp:{{ listener }} {% endfor %} disable_tcp=yes {% endif %} context = { # UDP 'udp_listeners': ['127.0.0.1:5060', '127.0.0.1:5080'], # TCP 'use_tcp': True, 'tcp_listeners': ['127.0.0.1:5060', '127.0.0.1:5080'] } jcfg --input opensips.tpl --output opensips.cfg --context settings.py Monday, October 21, 2013
  • 24. AG Projects SIP Infrastructure Experts 3. Fraud is unavoidable, deal with it • Usage quotas per user, per day / month • Implement a quick way for switching off an account • Blacklist premium numbers • Nobody calls to Antarctica, really • Limit number of concurrent calls Monday, October 21, 2013
  • 25. AG Projects SIP Infrastructure Experts 4. Apply common sense sec. measures • ‘1234’ is not a password, it’s a joke • Different credentials for SIP and for web configuration tools • Detect multiple authentication failures • Discard well known bad UAs • Monday, October 21, 2013 ‘friendly-scanner’ anyone?
  • 26. AG Projects SIP Infrastructure Experts Mitigating signaling attacks if (has_totag()) { # in-dialog request if (!validate_dialog()) fix_route_dialog(); ... } Monday, October 21, 2013
  • 27. AG Projects SIP Infrastructure Experts Call limit with CallControl if (method==INVITE && !has_totag()) { $avp(cc_call_limit) := 10; $avp(cc_call_token) := $RANDOM; call_control(); switch ($retcode) { case 2: # Call with no limit case 1: # Call has limit and is under callcontrol management break; case -1: # Not enough credit (prepaid call) sl_send_reply("402", "Not enough credit"); exit; case -2: # Locked by another call in progress (prepaid call) sl_send_reply("403", "Call locked by another call in progress"); exit; case -3: # Duplicated callid sl_send_reply("400", "Duplicated callid"); exit; case -4: # Call limit reached sl_send_reply("503", "Too many concurrent calls"); exit; default: # Internal error (message parsing, communication, ...) sl_send_reply("500", "Internal server error"); exit; } } Monday, October 21, 2013
  • 28. AG Projects SIP Infrastructure Experts Using the new Event Interface … loadmodule("event_datagram") … # Subscribe to the E_PIKE_BLOCKED event # Raise your own events from the routing script $avp(s:attr) = "number"; $avp(s:val) = 0; $avp(s:attr) = "string"; $avp(s:val) = "dummy value"; raise_event("E_DUMMY", $avp(s:attr), $avp(s:val)); Monday, October 21, 2013
  • 29. AG Projects SIP Infrastructure Experts BYE • Keep configuration simple • Apply Common Sense (TM) • Be prepared to deal with fraud and failure Monday, October 21, 2013
  • 30. AG Projects SIP Infrastructure Experts Questions? @agprojects @saghul Monday, October 21, 2013