Automate your OpenSIPS config tests - OpenSIPS Summit 2024

AndreasGranig 93 views 23 slides May 17, 2024
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

These are the slides of my OpenSIPS Summit 2024 presentation about automating your test calls. It dives into why automated call testing is crucial, how to integrate it into your CI/CD pipeline and how to extend testing of single calls into load testing and testing of other protocols.

The presentati...


Slide Content

Automating your
OpenSIPS config tests
Andreas Granig <[email protected]>

It’s me, Andreas

“Let’s build our own test framework …”

“... but I already run Homer!”

Issues happen.

Time for some (Github) Action!

Github CI Trigger
sipfront-app
command & control
baresip
SIP UA
kamailio
SIP proxy
rtpengine
media handler
sipfront-persistor
Kafka to DB
TimestreamDB
metrics
PostgreSQL
events
sipfront-finalizer
condition evaluator
System
under
Test
MQTT SIP
RTP/RTCP
stats via
MQTT/KafkaHTTPS
SQL
SIP
RTP/RTCP
Github
GH action
via Sipfront API

Agent Anatomy
System
under
Test
Orchestration
Aggregation
generate
terminate
kamailio rtpengine
kamailio rtpengine
sipp baresip codecept
kamailio rtpengine
Docker
asterisk

Types of Tests
●SIP ↔ SIP calls

●Mobile App ↔ SIP calls

●Browser WebRTC ↔ SIP calls

●FAX

●…

T-38 is fantastic

T-38 is fantastic
Northrop T-38 Talon

T-38 is fantastic
Northrop T-38 Talon T.38 Fax

Surprises!
●Offer/Answer handling
(Re-INVITE, 415, 488)

●Transcoding on SBCs

Fax Setup
System
under
Test
Orchestration
Aggregation
sipfront-agent
kamailio rtpengine
asterisk
AMI
internal
external
SIP
UDP
IP4
RTP
IP4
G711/T.38
SIP
UDP/TCP/TLS
IP4/6
RTP
SDES/DTLS
IP4/6
G711/T.38
FAX_MODE_T38
FAX_MODE_G711

FAX_SUCCESSFUL
FAX_FAILED

App/WebRTC ↔ SIP
●Many variations in the wild
○OS, Browser
○IPv4/v6
○RTP/SRTP
○G711/Opus
●Device Farms help!

Lifting the carpet

Lifting the carpet

WebRTC Setup
Web App
sipfront-agent
appium Browserstack
codeceptjs
HTTPS
WebRTC
Orchestration
Aggregation
Audio recordings
SDP offer/answer
RTCP statistics
to SIP agent on B side

SIP ↔ SIP
●Basic Call + Media at scale

●Presence

●“Exotic” call flows
○E911 + multipart/mime
○SCAIP/NowIP Telecare

●IMS?

SIP Setup
System
under
Test
sipfront-agent
kamailio rtpengine
sipp
ctrl_udp
internal
external
SIP
UDP
IP4
play-media
SIP
UDP/TCP/TLS
IP4/6
RTP
SDES/DTLS
IP4/6
Orchestration
Aggregation
Post Dial Delay
CLI Info
Retransmits
Loss

RTT
Jitter
Loss
Packets/Bytes in/out

“The boy who cried wolf”

Key Takeaways
&
Learnings
●Test early & often


●Keep usage barrier low


●Make it reliable

THANK
YOU
Andreas Granig
<[email protected]>