OPensips keynote presentation by bogdan Iancu

MaiconViniciusNunes1 11 views 42 slides Jul 31, 2024
Slide 1
Slide 1 of 42
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
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42

About This Presentation

OPensips 2.3 presentation by bogdan


Slide Content

Bogdan Andrei Iancu
- 2 May 2017 -
Keynotes
OpenSIPS 2.3

Bogdan Iancu - OpenSIPS Project
Welcome
2

Bogdan Iancu - OpenSIPS Project
3

Bogdan Iancu - OpenSIPS Project
4

Bogdan Iancu - OpenSIPS Project
5

Bogdan Iancu - OpenSIPS Project
OpenSIPS 2.3 - when ?
●Beta release - 16th of March
●Stable Release – 26th April 2017
●General Availability – 2nd of May 2017
6

Bogdan Iancu - OpenSIPS Project
Keyword “Integration”
●VoIP platforms/systems are more than SIP Engines/OpenSIPS
●OpenSIPS must have the ability to integrate and work
together in all possible means with other projects,
protocols, systems or concepts.
7

Bogdan Iancu - OpenSIPS Project
Benefits of the “Integration”
●Ability to build complex systems
○More possibilities means more value
○Brings in third-party value
●Reduces the user effort
○As required knowledge
○As required work
8

Bogdan Iancu - OpenSIPS Project
The Success of the “Integration”
●A collaboration with the teams of the partner projects in
terms of ideas, brainstorming, solutions and of course,
work.
●A collaboration that resulted in solutions and benefits
for all the involved communities.
9

SIPCapturing/HOMER Integration

Bogdan Iancu - OpenSIPS Project
Integrated capturing
●non-SIP tracing - tracing more than SIP
●data correlation - see the being picture
11

Bogdan Iancu - OpenSIPS Project
Integrated capturing
12
OpenSIPS
Server
HOMER 6
Correlation between:
●SIP
●LOGS
●REST queries
●MI commands
●Transport layer (TLS, WS, WSS)
Capturing via HEP

Bogdan Iancu - OpenSIPS Project
Global view
13

FreeSWITCH integration

Bogdan Iancu - OpenSIPS Project
Mid-registrar
●An OpenSIPS frontend can offload and help FreeSWITCH with
REGISTER traffic processing.
●OpenSIPS can prolong the registration sessions or can
aggregate all the registration for the same
AOR/subscriber.
15

Bogdan Iancu - OpenSIPS Project
Mid-registrar 1
16
OpenSIPS
Front-end

FreeSWITCHSIP UAC
SIP UAC
SIP UAC

FreeSWITCH

FreeSWITCH
60 seconds registration
rate ->
60 registers / hour
3600 seconds registration
rate ->
1 register / hour

Bogdan Iancu - OpenSIPS Project
Mid-registrar 2
17
OpenSIPS
Front-end
SIP UAC
SIP UAC
SIP UAC
3 devices per AOR ->
3 registers / AOR
1 contact per AOR
1 register / AOR

FreeSWITCH

FreeSWITCH

FreeSWITCH

Bogdan Iancu - OpenSIPS Project
FreeSWITCH driven LB
●get load feedback from FreeSWITCH via ESL
●do an accurate load-balancing over a FreeSWITCH cluster
●Adjust the load distributions to correct external
influence
18

Bogdan Iancu - OpenSIPS Project
FreeSWITCH driven balancing
19
OpenSIPS
Load Balancer

FreeSWITCH

FreeSWITCH
Load ??
Load info via HeartBeat (ESL)

CGRates Integration

Bogdan Iancu - OpenSIPS Project
CGRates
●SIP without billing is like a dinner without a good wine
●CGRateS is an open-source rating engine used for
○carrier-grade, multi-tenant, real-time billing
○Post and pre paid
21

Bogdan Iancu - OpenSIPS Project
CGRates Integration
●Call authorization
●Accounting and charging
●CDR generation
22

Bogdan Iancu - OpenSIPS Project
CGRates billing
23
OpenSIPS
Server CGRates
SIP UAC
SIP UAC
SIP
JSONRPC
# do accounting for this call
cgrate_acc("cdr", "$fU", "$rU");

SIP-I Integration

Bogdan Iancu - OpenSIPS Project
SS7
25
SS7 GW
Carrier
SIP UAC
SS7 SIP
$$$$$$$$$
●SS7 interconnections are costly and difficult to set

Bogdan Iancu - OpenSIPS Project
SIP-I
SIP-I is very powerful as:
●it is SIP based, so simple to deal with (comparing to
SS7, of course )
●it exposes SS7 specific data via the ISUP payload
26

Bogdan Iancu - OpenSIPS Project
SIP-I is not SIP
27
SIP Server
Carrier
SIP UAC
SIP-I SIP-I

Bogdan Iancu - OpenSIPS Project
SIP-I gatewaying
28
OpenSIPS
Server
Carrier
SIP UAC
SIP-I SIP
Simple script usage:
●add_isup_part(“ANM”)
●strip_body_part(“application/isup”)
●$isup_param(Called Party Number | Address signal)

Event Based Routing

Bogdan Iancu - OpenSIPS Project
Event Based Routing
Addressed problems:
●communicate and exchange data with the processing of a
different SIP message
●synchronize or wait for actions related to the
processing of a different SIP message


30

Bogdan Iancu - OpenSIPS Project
EBR concepts
●Implements a Subscriber - Notify model
●Events - triggered by actions / data processing during
runtime; events carry custom data.
●Subscriber - any IPS msg processing may subscribe for
events (with filtering)


31

Bogdan Iancu - OpenSIPS Project
Event async waiting
32



Time
SIP packet arrivals
Thread 1
Thread 2
SIP msg A
SIP msg B
wait(event X)resume()
event X

Bogdan Iancu - OpenSIPS Project
Event notification
33



Time
SIP packet arrivals
Thread 1
Thread 2
SIP msg A
SIP msg B
trigger(eventX,handler)
eventX
handler

Bogdan Iancu - OpenSIPS Project
EBR scenarios
●Push notification
●Call pickup
●DTMF call driving


34

Bogdan Iancu - OpenSIPS Project
Push Notification scenario
●we want to deliver the call right away to already
registered UACs, without any waiting due the PN logic.
●we want to do parallel forking (simultaneous ringing) to
newly registered UACs, as soon as it registers (as a
result of PN)
●we want to keep the call on, even if the registered UACs
declines it (maybe due to DND) and give a chance to the
PN to trigger the mobile device registration.
35

Bogdan Iancu - OpenSIPS Project
Push Notification
Route[do_pn]{
t_newtran();
t_wait_for_new_branches();

$avp(filter) = "aor="+$rU+"@"+$rd;
notify_on_event("E_UL_CONTACT_INSERT","$avp(filter)","fork_call");

launch ( exec("/my/pn_triggering_script.sh") );

if (lookup("location"))
t_relay();
}

route[use_new_contact] {
t_inject_branches("event");
}
36

And More….

Bogdan Iancu - OpenSIPS Project
RabbitMQ enhancements
●Direct trigger of RMQ messages from script
●Custom data can be pushed into RMQ messages
●Custom formatting (attributes/headers) of RMQ messages
●Fine tuning of the AMQP protocol options


38

Bogdan Iancu - OpenSIPS Project
XML wise variables
●provides parsing and manipulation of XML documents
●Very useful for Presence related data manipulation
$xml(body) = $rb(application/dialog-info+xml);
$var(identity) = $xml(body/dialog-info/dialog/remote/identity.val);
39

Bogdan Iancu - OpenSIPS Project
Extended Async Support
“Launch()” script statement
●Spinoff some processing without waiting for it to finish
●Continue the script execution (no resuming)
...
launch( avp_db_query("insert into .....") );
xlog("insert started, continuing...\n);
...
40

Bogdan Iancu - OpenSIPS Project
More Reliable Accounting
A more reliable way to populate ACC data
●$acc_extra[]
●$acc_leg[] (instead of old complicated AVP)
modparam("acc", "leg_fields", "log: caller; callee")
...
acc_new_leg();
$acc_leg(callee) = $ru;
...
41

●Bogdan Iancu
○OpenSIPS Project: www.opensips.org
○Email: [email protected]
Enjoy OpenSIPS 2.3
Tags