SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Bringing real-time text to WebRTC
for NG Emergency Services
Lorenzo Miniero
@lminiero@fosstodon.org
Kamailio World
June 7th 2023,
Who am I?
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Main author of Janus
Contacts and info
• lorenzo@meetecho.com
• https://fosstodon.org/@lminiero
• https://www.slideshare.net/LorenzoMiniero
• https://lminiero.bandcamp.com
Just a few words on Meetecho
• Co-founded in 2009 as an academic spin-off
• University research efforts brought to the market
• Completely independent from the University
• Focus on real-time multimedia applications
• Strong perspective on standardization and open source
• Several activities
• Consulting services
• Commercial support and Janus licenses
• Streaming of live events (IETF, ACM, etc.)
• Proudly brewed in sunny Napoli(*), Italy
((*)
A different picture, for once!)
Emergency Services for the Hearing Impaired
• Ad-hoc text telephones and telecommunication devices
• Originally conceived and implemented in the 60’s
• Commonly known as TDD / TTY / TT
• “Telecommunications Device for the Deaf”
• Units made of keyboard, small screen and modem
• Messages converted to electric signals
• Phone line used to deliver messages
• Widely used in legacy Emergency Services
• e.g., to allow 911 operators to engage with hard of hearing people
• Uses phone line + batteries −→ still works in power failure
Emergency Services for the Hearing Impaired
• Ad-hoc text telephones and telecommunication devices
• Originally conceived and implemented in the 60’s
• Commonly known as TDD / TTY / TT
• “Telecommunications Device for the Deaf”
• Units made of keyboard, small screen and modem
• Messages converted to electric signals
• Phone line used to deliver messages
• Widely used in legacy Emergency Services
• e.g., to allow 911 operators to engage with hard of hearing people
• Uses phone line + batteries −→ still works in power failure
Emergency Services for the Hearing Impaired
• Ad-hoc text telephones and telecommunication devices
• Originally conceived and implemented in the 60’s
• Commonly known as TDD / TTY / TT
• “Telecommunications Device for the Deaf”
• Units made of keyboard, small screen and modem
• Messages converted to electric signals
• Phone line used to deliver messages
• Widely used in legacy Emergency Services
• e.g., to allow 911 operators to engage with hard of hearing people
• Uses phone line + batteries −→ still works in power failure
TDD/TTY/TT (PSTN)
TDD/TTY/TT (PSTN)
• Different acronyms for mostly similar things
• TDD (Telecommunications Device for the Deaf)
• TTY (TeleTYpe)
• TT (Text Telephone)
• Some important limitations
• Half-duplex (GA = GO AHEAD)
• Can’t be interrupted (garbled output)
• Limited set of “characters” (e.g., Baudot)
• No specific handshake, and no error correction
• Requires specific device
TDD/TTY/TT (PSTN)
• Different acronyms for mostly similar things
• TDD (Telecommunications Device for the Deaf)
• TTY (TeleTYpe)
• TT (Text Telephone)
• Some important limitations
• Half-duplex (GA = GO AHEAD)
• Can’t be interrupted (garbled output)
• Limited set of “characters” (e.g., Baudot)
• No specific handshake, and no error correction
• Requires specific device
Next Generation Emergency Services
• Multiple efforts in different areas
• NG9-1-1 (https://www.911.gov/issues/ng911/)
• NG112 (https://eena.org/next-generation-112/)
• Attempt to switch to modern ways of communication
• Existing NG services based on PSTN
• Internet-based communication allows for richer media, though
• Location, , photos, videos, etc.
Next Generation Emergency Services
• Multiple efforts in different areas
• NG9-1-1 (https://www.911.gov/issues/ng911/)
• NG112 (https://eena.org/next-generation-112/)
• Attempt to switch to modern ways of communication
• Existing NG services based on PSTN
• Internet-based communication allows for richer media, though
• Location, , photos, videos, etc.
Next Generation Emergency Services
• Multiple efforts in different areas
• NG9-1-1 (https://www.911.gov/issues/ng911/)
• NG112 (https://eena.org/next-generation-112/)
• Attempt to switch to modern ways of communication
• Existing NG services based on PSTN
• Internet-based communication allows for richer media, though
• Location, real-time text, photos, videos, etc.
Next Generation Emergency Services
• Multiple efforts in different areas
• NG9-1-1 (https://www.911.gov/issues/ng911/)
• NG112 (https://eena.org/next-generation-112/)
• Attempt to switch to modern ways of communication
• Existing NG services based on PSTN
• Internet-based communication allows for richer media, though
• Location, real-time text, photos, videos, etc.
Real-Time Text (RTT)
• Text transmitted instantly, as it is typed or created
• TDD/TTY work that way too
• How to do it over IP, though?
• Text over IP (ToIP)
• ITU-T T.140 (Protocol for multimedia application text conversation)
• Allows for real-time editing (e.g., backspace, rewriting)
• T.140 messages transported over RTP
• RFC 4103 (RTP Payload for Text Conversation)
• Redundancy implemented via RED (RFC 2198)
Real-Time Text (RTT)
• Text transmitted instantly, as it is typed or created
• TDD/TTY work that way too
• How to do it over IP, though?
• Text over IP (ToIP)
• ITU-T T.140 (Protocol for multimedia application text conversation)
• Allows for real-time editing (e.g., backspace, rewriting)
• T.140 messages transported over RTP
• RFC 4103 (RTP Payload for Text Conversation)
• Redundancy implemented via RED (RFC 2198)
Real-Time Text (RTT)
• Text transmitted instantly, as it is typed or created
• TDD/TTY work that way too
• How to do it over IP, though?
• Text over IP (ToIP)
• ITU-T T.140 (Protocol for multimedia application text conversation)
• Allows for real-time editing (e.g., backspace, rewriting)
• T.140 messages transported over RTP
• RFC 4103 (RTP Payload for Text Conversation)
• Redundancy implemented via RED (RFC 2198)
T.140
• ITU-T T.140 (Protocol for multimedia application text conversation)
• https://www.itu.int/rec/T-REC-T.140/
• Protocol based on the concept of T140blocks
• Set of characters or special codes that one party is delivering to one or more others
• Participant typing −→ typed characters bundled together in a T.140 block
• Buffering size up to sender (overhead vs. latency)
• UTF-8 used for characters, including special codes (actions)
• e.g., Byte Order Mark (BOM), backspace, etc.
T.140
• ITU-T T.140 (Protocol for multimedia application text conversation)
• https://www.itu.int/rec/T-REC-T.140/
• Protocol based on the concept of T140blocks
• Set of characters or special codes that one party is delivering to one or more others
• Participant typing −→ typed characters bundled together in a T.140 block
• Buffering size up to sender (overhead vs. latency)
• UTF-8 used for characters, including special codes (actions)
• e.g., Byte Order Mark (BOM), backspace, etc.
T.140
• ITU-T T.140 (Protocol for multimedia application text conversation)
• https://www.itu.int/rec/T-REC-T.140/
• Protocol based on the concept of T140blocks
• Set of characters or special codes that one party is delivering to one or more others
• Participant typing −→ typed characters bundled together in a T.140 block
• Buffering size up to sender (overhead vs. latency)
• UTF-8 used for characters, including special codes (actions)
• e.g., Byte Order Mark (BOM), backspace, etc.
T.140 over RTP
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC=0 |M| T140 PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp (1000Hz) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| T.140 encoded data |
+ +---------------+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Dealing with packet loss using RED
Dealing with packet loss using RED
Dealing with packet loss using RED
Dealing with packet loss using RED
Dealing with packet loss using RED
T.140 over RTP (with redundancy)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC=0 |M| "RED" PT | sequence number of primary |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp of primary encoding "P" |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| T140 PT | timestamp offset of "R" | "R" block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| T140 PT | "R" T.140 encoded redundant data |
+-+-+-+-+-+-+-+-+ +---------------+
+ | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+
| "P" T.140 encoded primary data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
RTT and SIP/SDP
• As an RTP-based stream, easy to negotiate via SDP
• Needs text as media in m-line
• t140 used to advertise codec in rtpmap
• Sampling rate always 1000 (also for RED)
SDP example
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98
What about WebRTC?
• WebRTC heavily based on existing VoIP technologies
• SDP (on “steroids”) is mandatory
• RTP used for media (encrypted via DTLS-SRTP)
• That said, not all RTP media is supported
• Only m=audio and m=video supported out of the box
• No support at all for m=text, so RTT won’t work
• Only m=application media that can be used is UDP/DTLS/SCTP
• WebRTC data channels
• Generic data sent via SCTP and encapsulated in DTLS
What about WebRTC?
• WebRTC heavily based on existing VoIP technologies
• SDP (on “steroids”) is mandatory
• RTP used for media (encrypted via DTLS-SRTP)
• That said, not all RTP media is supported
• Only m=audio and m=video supported out of the box
• No support at all for m=text, so RTT won’t work
• Only m=application media that can be used is UDP/DTLS/SCTP
• WebRTC data channels
• Generic data sent via SCTP and encapsulated in DTLS
What about WebRTC?
• WebRTC heavily based on existing VoIP technologies
• SDP (on “steroids”) is mandatory
• RTP used for media (encrypted via DTLS-SRTP)
• That said, not all RTP media is supported
• Only m=audio and m=video supported out of the box
• No support at all for m=text, so RTT won’t work
• Only m=application media that can be used is UDP/DTLS/SCTP
• WebRTC data channels
• Generic data sent via SCTP and encapsulated in DTLS
T.140 RTT over WebRTC Data Channels
• Why not use data channels for RTT, then?
• T.140 Real-Time Text Conversation over WebRTC Data Channels (RFC 8865)
• https://www.rfc-editor.org/rfc/rfc8865.html
• Sending T.140 frames directly in data channels, not on RTP
• Data channels can be configured to be ordered and reliable
• Helps avoiding hoops needed for RTP (e.g., RED)
• A specific label can be associated with a specific RTT session
• Of course, needs gatewaying to be backwards compatible
• WebRTC endpoints can’t do RTP/RTT, and legacy ones don’t do data channels
• Something needs to “translate” (media and SDP)
T.140 RTT over WebRTC Data Channels
• Why not use data channels for RTT, then?
• T.140 Real-Time Text Conversation over WebRTC Data Channels (RFC 8865)
• https://www.rfc-editor.org/rfc/rfc8865.html
• Sending T.140 frames directly in data channels, not on RTP
• Data channels can be configured to be ordered and reliable
• Helps avoiding hoops needed for RTP (e.g., RED)
• A specific label can be associated with a specific RTT session
• Of course, needs gatewaying to be backwards compatible
• WebRTC endpoints can’t do RTP/RTT, and legacy ones don’t do data channels
• Something needs to “translate” (media and SDP)
T.140 RTT over WebRTC Data Channels
• Why not use data channels for RTT, then?
• T.140 Real-Time Text Conversation over WebRTC Data Channels (RFC 8865)
• https://www.rfc-editor.org/rfc/rfc8865.html
• Sending T.140 frames directly in data channels, not on RTP
• Data channels can be configured to be ordered and reliable
• Helps avoiding hoops needed for RTP (e.g., RED)
• A specific label can be associated with a specific RTT session
• Of course, needs gatewaying to be backwards compatible
• WebRTC endpoints can’t do RTP/RTT, and legacy ones don’t do data channels
• Something needs to “translate” (media and SDP)
T.140/data channels SDP usage
m=application 911 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP6 2001:db8::3
a=max-message-size:1000
a=sctp-port 5000
a=setup:actpass
a=dcmap:2 label="ACME customer service";subprotocol="t140"
a=dcsa:2 fmtp:t140 cps=20
a=dcsa:2 hlang-send:es eo
a=dcsa:2 hlang-recv:es eo
Prototyping T.140/WebRTC in Janus
• Created a prototype in Janus a few years ago
• Old PR: https://github.com/meetecho/janus-gateway/pull/1898 (closed)
• Blog post: https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• Used the SIP plugin in Janus as the necessary gateway
• Negotiates text m-lines and the text/t140 format on the SDP side
• Negotiates data channels on the WebRTC side (binary)
• T140blocks are then bridged (no translation) as they are
• T140blocks decapsulated from RTP packets −→ data channels
• Data channels −→ crafting RTP packets with T140blocks
• RED optionally supported in both directions on the RTP side
Prototyping T.140/WebRTC in Janus
• Created a prototype in Janus a few years ago
• Old PR: https://github.com/meetecho/janus-gateway/pull/1898 (closed)
• Blog post: https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• Used the SIP plugin in Janus as the necessary gateway
• Negotiates text m-lines and the text/t140 format on the SDP side
• Negotiates data channels on the WebRTC side (binary)
• T140blocks are then bridged (no translation) as they are
• T140blocks decapsulated from RTP packets −→ data channels
• Data channels −→ crafting RTP packets with T140blocks
• RED optionally supported in both directions on the RTP side
Prototyping T.140/WebRTC in Janus
• Created a prototype in Janus a few years ago
• Old PR: https://github.com/meetecho/janus-gateway/pull/1898 (closed)
• Blog post: https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• Used the SIP plugin in Janus as the necessary gateway
• Negotiates text m-lines and the text/t140 format on the SDP side
• Negotiates data channels on the WebRTC side (binary)
• T140blocks are then bridged (no translation) as they are
• T140blocks decapsulated from RTP packets −→ data channels
• Data channels −→ crafting RTP packets with T140blocks
• RED optionally supported in both directions on the RTP side
SIP plugin in Janus
https://janus.conf.meetecho.com/docs/sip
SIP plugin in Janus + RTT
Example: SDP offer from SIP/RTT endpoint
v=0
o=Lorenzo_Miniero 1 1 IN IP4 192.168.1.74
s=Omnitor_SDP_v1.1
c=IN IP4 192.168.1.74
t=0 0
m=text 1024 RTP/AVP 99 98
a=rtpmap:99 red/1000
a=fmtp:99 98/98/98
a=rtpmap:98 t140/1000
Example: SDP offer to WebRTC endpoint
v=0
o=Lorenzo_Miniero 1 1 IN IP4 192.168.1.74
s=Omnitor_SDP_v1.1 t=0 0
a=group:BUNDLE data
a=msid-semantic: WMS janus
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.1.74
a=sendrecv
a=sctp-port:5000
a=mid:0
[.. ICE/DTLS details follow..]
Testing: TIPcon1 (SIP/RTT)
https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
Testing: Janus SIP demo (WebRTC)
https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
T.140 conversation on the wire
https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
What’s next?
• First of all, revive the effort
• The original PR was closed a few months ago
• Little to no feedback, and core had changed a lot in the meanwhile
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• New revision can take advantage of some new features
• e.g., RED supported in the Janus core, now
• Maybe write a prettier and more functional UI too...
• Possibly test with something more complex than TIPcon1
• TIPcon1 good for basic functional testing, but very limited
• RTT endpoints very hard to find, especially in FOSS
• Possibly integration tests with actual RTT deployments?
What’s next?
• First of all, revive the effort
• The original PR was closed a few months ago
• Little to no feedback, and core had changed a lot in the meanwhile
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• New revision can take advantage of some new features
• e.g., RED supported in the Janus core, now
• Maybe write a prettier and more functional UI too...
• Possibly test with something more complex than TIPcon1
• TIPcon1 good for basic functional testing, but very limited
• RTT endpoints very hard to find, especially in FOSS
• Possibly integration tests with actual RTT deployments?
What’s next?
• First of all, revive the effort
• The original PR was closed a few months ago
• Little to no feedback, and core had changed a lot in the meanwhile
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• New revision can take advantage of some new features
• e.g., RED supported in the Janus core, now
• Maybe write a prettier and more functional UI too...
• Possibly test with something more complex than TIPcon1
• TIPcon1 good for basic functional testing, but very limited
• RTT endpoints very hard to find, especially in FOSS
• Possibly integration tests with actual RTT deployments?
What’s next?
• First of all, revive the effort
• The original PR was closed a few months ago
• Little to no feedback, and core had changed a lot in the meanwhile
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• New revision can take advantage of some new features
• e.g., RED supported in the Janus core, now
• Maybe write a prettier and more functional UI too...
• Possibly test with something more complex than TIPcon1
• TIPcon1 good for basic functional testing, but very limited
• RTT endpoints very hard to find, especially in FOSS
• Possibly integration tests with actual RTT deployments?
What’s next?
• First of all, revive the effort
• The original PR was closed a few months ago
• Little to no feedback, and core had changed a lot in the meanwhile
• New PR: https://github.com/meetecho/janus-gateway/pull/3231
• New revision can take advantage of some new features
• e.g., RED supported in the Janus core, now
• Maybe write a prettier and more functional UI too...
• Possibly test with something more complex than TIPcon1
• TIPcon1 good for basic functional testing, but very limited
• RTT endpoints very hard to find, especially in FOSS
• Possibly integration tests with actual RTT deployments?
Thanks! Questions? Comments?
Get in touch!
• https://fosstodon.org/@lminiero
• https://twitter.com/elminiero
• https://twitter.com/meetecho
• https://www.meetecho.com/blog/

Mais conteúdo relacionado

Mais procurados

SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingHossein Yavari
 
Scaling Asterisk with Kamailio
Scaling Asterisk with KamailioScaling Asterisk with Kamailio
Scaling Asterisk with KamailioFred Posner
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Fred Posner
 
Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityFred Posner
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)Fred Posner
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopstefansayer
 
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariGetting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariPascal Cadotte-Michaud
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouFred Posner
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsGiacomo Vacca
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022Lorenzo Miniero
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesPaolo Visintin
 
SIP & TLS - Security in a peer to peer world
SIP & TLS - Security in a peer to peer worldSIP & TLS - Security in a peer to peer world
SIP & TLS - Security in a peer to peer worldOlle E Johansson
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCArt Matsak
 
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Olle E Johansson
 

Mais procurados (20)

SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load BalancersKamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
Scaling Asterisk with Kamailio
Scaling Asterisk with KamailioScaling Asterisk with Kamailio
Scaling Asterisk with Kamailio
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
 
Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and Security
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshop
 
JsSIP: SIP + WebRTC
JsSIP: SIP + WebRTCJsSIP: SIP + WebRTC
JsSIP: SIP + WebRTC
 
Kamailio - API Based SIP Routing
Kamailio - API Based SIP RoutingKamailio - API Based SIP Routing
Kamailio - API Based SIP Routing
 
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariGetting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
 
Asterisk Complete Training
Asterisk Complete TrainingAsterisk Complete Training
Asterisk Complete Training
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
SIP & TLS - Security in a peer to peer world
SIP & TLS - Security in a peer to peer worldSIP & TLS - Security in a peer to peer world
SIP & TLS - Security in a peer to peer world
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.
 

Semelhante a Real-Time Text and WebRTC @ Kamailio World 2023

Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Lorenzo Miniero
 
Internet telephony
Internet telephonyInternet telephony
Internet telephonySajan Sahu
 
Internet telephony by abhishek mahajan
Internet telephony by abhishek mahajanInternet telephony by abhishek mahajan
Internet telephony by abhishek mahajanabhimaha09
 
Internet telephony by abhishek mahajan
Internet telephony by abhishek mahajanInternet telephony by abhishek mahajan
Internet telephony by abhishek mahajanAbhishek Mahajan
 
Profoss 20071010-to ip shared by voip.com.vn
Profoss 20071010-to ip shared by voip.com.vnProfoss 20071010-to ip shared by voip.com.vn
Profoss 20071010-to ip shared by voip.com.vnTran Thanh
 
Telefonica TU Go - Phone in a Browser - WebRTC Paris '15
Telefonica TU Go - Phone in a Browser - WebRTC Paris '15Telefonica TU Go - Phone in a Browser - WebRTC Paris '15
Telefonica TU Go - Phone in a Browser - WebRTC Paris '15John Neystadt
 
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)Victor Pascual Ávila
 
Practical Fundamentals of Voice over IP (VoIP) for Engineers and Technicians
Practical Fundamentals of Voice over IP (VoIP) for Engineers and TechniciansPractical Fundamentals of Voice over IP (VoIP) for Engineers and Technicians
Practical Fundamentals of Voice over IP (VoIP) for Engineers and TechniciansLiving Online
 
The challenges of generating 2110 streams on Standard IT Hardware
The challenges of generating 2110 streams on Standard IT HardwareThe challenges of generating 2110 streams on Standard IT Hardware
The challenges of generating 2110 streams on Standard IT HardwareKieran Kunhya
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Lorenzo Miniero
 
DT021_4_Notes 4_QOS_Rev_M.pdf
DT021_4_Notes 4_QOS_Rev_M.pdfDT021_4_Notes 4_QOS_Rev_M.pdf
DT021_4_Notes 4_QOS_Rev_M.pdfSubhanshu5
 
Polycom soundpoint ip320 ip330 data sheet
Polycom soundpoint ip320 ip330 data sheetPolycom soundpoint ip320 ip330 data sheet
Polycom soundpoint ip320 ip330 data sheetbest4systems
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Lorenzo Miniero
 
Introduction to VoIP, RTP and SIP
Introduction to VoIP, RTP and SIP Introduction to VoIP, RTP and SIP
Introduction to VoIP, RTP and SIP ThousandEyes
 
Polycom soundpoint ip430 data sheet
Polycom soundpoint ip430 data sheetPolycom soundpoint ip430 data sheet
Polycom soundpoint ip430 data sheetbest4systems
 

Semelhante a Real-Time Text and WebRTC @ Kamailio World 2023 (20)

Introduction to VOIP
Introduction to VOIPIntroduction to VOIP
Introduction to VOIP
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
Internet telephony
Internet telephonyInternet telephony
Internet telephony
 
Internet telephony by abhishek mahajan
Internet telephony by abhishek mahajanInternet telephony by abhishek mahajan
Internet telephony by abhishek mahajan
 
Internet telephony by abhishek mahajan
Internet telephony by abhishek mahajanInternet telephony by abhishek mahajan
Internet telephony by abhishek mahajan
 
A glance-at-voip
A glance-at-voipA glance-at-voip
A glance-at-voip
 
Profoss 20071010-to ip shared by voip.com.vn
Profoss 20071010-to ip shared by voip.com.vnProfoss 20071010-to ip shared by voip.com.vn
Profoss 20071010-to ip shared by voip.com.vn
 
Telefonica TU Go - Phone in a Browser - WebRTC Paris '15
Telefonica TU Go - Phone in a Browser - WebRTC Paris '15Telefonica TU Go - Phone in a Browser - WebRTC Paris '15
Telefonica TU Go - Phone in a Browser - WebRTC Paris '15
 
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
 
Practical Fundamentals of Voice over IP (VoIP) for Engineers and Technicians
Practical Fundamentals of Voice over IP (VoIP) for Engineers and TechniciansPractical Fundamentals of Voice over IP (VoIP) for Engineers and Technicians
Practical Fundamentals of Voice over IP (VoIP) for Engineers and Technicians
 
The challenges of generating 2110 streams on Standard IT Hardware
The challenges of generating 2110 streams on Standard IT HardwareThe challenges of generating 2110 streams on Standard IT Hardware
The challenges of generating 2110 streams on Standard IT Hardware
 
VOIP security
VOIP securityVOIP security
VOIP security
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
 
VOIP
VOIPVOIP
VOIP
 
DT021_4_Notes 4_QOS_Rev_M.pdf
DT021_4_Notes 4_QOS_Rev_M.pdfDT021_4_Notes 4_QOS_Rev_M.pdf
DT021_4_Notes 4_QOS_Rev_M.pdf
 
Polycom soundpoint ip320 ip330 data sheet
Polycom soundpoint ip320 ip330 data sheetPolycom soundpoint ip320 ip330 data sheet
Polycom soundpoint ip320 ip330 data sheet
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019
 
Introduction to VoIP, RTP and SIP
Introduction to VoIP, RTP and SIP Introduction to VoIP, RTP and SIP
Introduction to VoIP, RTP and SIP
 
Polycom soundpoint ip430 data sheet
Polycom soundpoint ip430 data sheetPolycom soundpoint ip430 data sheet
Polycom soundpoint ip430 data sheet
 
VoIP for Beginners
VoIP for BeginnersVoIP for Beginners
VoIP for Beginners
 

Mais de Lorenzo Miniero

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerLorenzo Miniero
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023Lorenzo Miniero
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023Lorenzo Miniero
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!Lorenzo Miniero
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Lorenzo Miniero
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022Lorenzo Miniero
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21Lorenzo Miniero
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021Lorenzo Miniero
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Lorenzo Miniero
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source WorldLorenzo Miniero
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceLorenzo Miniero
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDLorenzo Miniero
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Lorenzo Miniero
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Lorenzo Miniero
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Lorenzo Miniero
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSLorenzo Miniero
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Lorenzo Miniero
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Lorenzo Miniero
 

Mais de Lorenzo Miniero (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020
 

Último

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Real-Time Text and WebRTC @ Kamailio World 2023

  • 1. Bringing real-time text to WebRTC for NG Emergency Services Lorenzo Miniero @lminiero@fosstodon.org Kamailio World June 7th 2023,
  • 2. Who am I? Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Main author of Janus Contacts and info • lorenzo@meetecho.com • https://fosstodon.org/@lminiero • https://www.slideshare.net/LorenzoMiniero • https://lminiero.bandcamp.com
  • 3. Just a few words on Meetecho • Co-founded in 2009 as an academic spin-off • University research efforts brought to the market • Completely independent from the University • Focus on real-time multimedia applications • Strong perspective on standardization and open source • Several activities • Consulting services • Commercial support and Janus licenses • Streaming of live events (IETF, ACM, etc.) • Proudly brewed in sunny Napoli(*), Italy
  • 5. Emergency Services for the Hearing Impaired • Ad-hoc text telephones and telecommunication devices • Originally conceived and implemented in the 60’s • Commonly known as TDD / TTY / TT • “Telecommunications Device for the Deaf” • Units made of keyboard, small screen and modem • Messages converted to electric signals • Phone line used to deliver messages • Widely used in legacy Emergency Services • e.g., to allow 911 operators to engage with hard of hearing people • Uses phone line + batteries −→ still works in power failure
  • 6. Emergency Services for the Hearing Impaired • Ad-hoc text telephones and telecommunication devices • Originally conceived and implemented in the 60’s • Commonly known as TDD / TTY / TT • “Telecommunications Device for the Deaf” • Units made of keyboard, small screen and modem • Messages converted to electric signals • Phone line used to deliver messages • Widely used in legacy Emergency Services • e.g., to allow 911 operators to engage with hard of hearing people • Uses phone line + batteries −→ still works in power failure
  • 7. Emergency Services for the Hearing Impaired • Ad-hoc text telephones and telecommunication devices • Originally conceived and implemented in the 60’s • Commonly known as TDD / TTY / TT • “Telecommunications Device for the Deaf” • Units made of keyboard, small screen and modem • Messages converted to electric signals • Phone line used to deliver messages • Widely used in legacy Emergency Services • e.g., to allow 911 operators to engage with hard of hearing people • Uses phone line + batteries −→ still works in power failure
  • 9. TDD/TTY/TT (PSTN) • Different acronyms for mostly similar things • TDD (Telecommunications Device for the Deaf) • TTY (TeleTYpe) • TT (Text Telephone) • Some important limitations • Half-duplex (GA = GO AHEAD) • Can’t be interrupted (garbled output) • Limited set of “characters” (e.g., Baudot) • No specific handshake, and no error correction • Requires specific device
  • 10. TDD/TTY/TT (PSTN) • Different acronyms for mostly similar things • TDD (Telecommunications Device for the Deaf) • TTY (TeleTYpe) • TT (Text Telephone) • Some important limitations • Half-duplex (GA = GO AHEAD) • Can’t be interrupted (garbled output) • Limited set of “characters” (e.g., Baudot) • No specific handshake, and no error correction • Requires specific device
  • 11. Next Generation Emergency Services • Multiple efforts in different areas • NG9-1-1 (https://www.911.gov/issues/ng911/) • NG112 (https://eena.org/next-generation-112/) • Attempt to switch to modern ways of communication • Existing NG services based on PSTN • Internet-based communication allows for richer media, though • Location, , photos, videos, etc.
  • 12. Next Generation Emergency Services • Multiple efforts in different areas • NG9-1-1 (https://www.911.gov/issues/ng911/) • NG112 (https://eena.org/next-generation-112/) • Attempt to switch to modern ways of communication • Existing NG services based on PSTN • Internet-based communication allows for richer media, though • Location, , photos, videos, etc.
  • 13. Next Generation Emergency Services • Multiple efforts in different areas • NG9-1-1 (https://www.911.gov/issues/ng911/) • NG112 (https://eena.org/next-generation-112/) • Attempt to switch to modern ways of communication • Existing NG services based on PSTN • Internet-based communication allows for richer media, though • Location, real-time text, photos, videos, etc.
  • 14. Next Generation Emergency Services • Multiple efforts in different areas • NG9-1-1 (https://www.911.gov/issues/ng911/) • NG112 (https://eena.org/next-generation-112/) • Attempt to switch to modern ways of communication • Existing NG services based on PSTN • Internet-based communication allows for richer media, though • Location, real-time text, photos, videos, etc.
  • 15. Real-Time Text (RTT) • Text transmitted instantly, as it is typed or created • TDD/TTY work that way too • How to do it over IP, though? • Text over IP (ToIP) • ITU-T T.140 (Protocol for multimedia application text conversation) • Allows for real-time editing (e.g., backspace, rewriting) • T.140 messages transported over RTP • RFC 4103 (RTP Payload for Text Conversation) • Redundancy implemented via RED (RFC 2198)
  • 16. Real-Time Text (RTT) • Text transmitted instantly, as it is typed or created • TDD/TTY work that way too • How to do it over IP, though? • Text over IP (ToIP) • ITU-T T.140 (Protocol for multimedia application text conversation) • Allows for real-time editing (e.g., backspace, rewriting) • T.140 messages transported over RTP • RFC 4103 (RTP Payload for Text Conversation) • Redundancy implemented via RED (RFC 2198)
  • 17. Real-Time Text (RTT) • Text transmitted instantly, as it is typed or created • TDD/TTY work that way too • How to do it over IP, though? • Text over IP (ToIP) • ITU-T T.140 (Protocol for multimedia application text conversation) • Allows for real-time editing (e.g., backspace, rewriting) • T.140 messages transported over RTP • RFC 4103 (RTP Payload for Text Conversation) • Redundancy implemented via RED (RFC 2198)
  • 18. T.140 • ITU-T T.140 (Protocol for multimedia application text conversation) • https://www.itu.int/rec/T-REC-T.140/ • Protocol based on the concept of T140blocks • Set of characters or special codes that one party is delivering to one or more others • Participant typing −→ typed characters bundled together in a T.140 block • Buffering size up to sender (overhead vs. latency) • UTF-8 used for characters, including special codes (actions) • e.g., Byte Order Mark (BOM), backspace, etc.
  • 19. T.140 • ITU-T T.140 (Protocol for multimedia application text conversation) • https://www.itu.int/rec/T-REC-T.140/ • Protocol based on the concept of T140blocks • Set of characters or special codes that one party is delivering to one or more others • Participant typing −→ typed characters bundled together in a T.140 block • Buffering size up to sender (overhead vs. latency) • UTF-8 used for characters, including special codes (actions) • e.g., Byte Order Mark (BOM), backspace, etc.
  • 20. T.140 • ITU-T T.140 (Protocol for multimedia application text conversation) • https://www.itu.int/rec/T-REC-T.140/ • Protocol based on the concept of T140blocks • Set of characters or special codes that one party is delivering to one or more others • Participant typing −→ typed characters bundled together in a T.140 block • Buffering size up to sender (overhead vs. latency) • UTF-8 used for characters, including special codes (actions) • e.g., Byte Order Mark (BOM), backspace, etc.
  • 21. T.140 over RTP 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC=0 |M| T140 PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp (1000Hz) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T.140 encoded data | + +---------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 22. Dealing with packet loss using RED
  • 23. Dealing with packet loss using RED
  • 24. Dealing with packet loss using RED
  • 25. Dealing with packet loss using RED
  • 26. Dealing with packet loss using RED
  • 27. T.140 over RTP (with redundancy) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC=0 |M| "RED" PT | sequence number of primary | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp of primary encoding "P" | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| T140 PT | timestamp offset of "R" | "R" block length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| T140 PT | "R" T.140 encoded redundant data | +-+-+-+-+-+-+-+-+ +---------------+ + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+ | "P" T.140 encoded primary data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 28. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 29. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 30. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 31. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 32. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 33. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 34. RTT and SIP/SDP • As an RTP-based stream, easy to negotiate via SDP • Needs text as media in m-line • t140 used to advertise codec in rtpmap • Sampling rate always 1000 (also for RED) SDP example m=text 11000 RTP/AVP 98 100 a=rtpmap:98 t140/1000 a=rtpmap:100 red/1000 a=fmtp:100 98/98/98
  • 35. What about WebRTC? • WebRTC heavily based on existing VoIP technologies • SDP (on “steroids”) is mandatory • RTP used for media (encrypted via DTLS-SRTP) • That said, not all RTP media is supported • Only m=audio and m=video supported out of the box • No support at all for m=text, so RTT won’t work • Only m=application media that can be used is UDP/DTLS/SCTP • WebRTC data channels • Generic data sent via SCTP and encapsulated in DTLS
  • 36. What about WebRTC? • WebRTC heavily based on existing VoIP technologies • SDP (on “steroids”) is mandatory • RTP used for media (encrypted via DTLS-SRTP) • That said, not all RTP media is supported • Only m=audio and m=video supported out of the box • No support at all for m=text, so RTT won’t work • Only m=application media that can be used is UDP/DTLS/SCTP • WebRTC data channels • Generic data sent via SCTP and encapsulated in DTLS
  • 37. What about WebRTC? • WebRTC heavily based on existing VoIP technologies • SDP (on “steroids”) is mandatory • RTP used for media (encrypted via DTLS-SRTP) • That said, not all RTP media is supported • Only m=audio and m=video supported out of the box • No support at all for m=text, so RTT won’t work • Only m=application media that can be used is UDP/DTLS/SCTP • WebRTC data channels • Generic data sent via SCTP and encapsulated in DTLS
  • 38. T.140 RTT over WebRTC Data Channels • Why not use data channels for RTT, then? • T.140 Real-Time Text Conversation over WebRTC Data Channels (RFC 8865) • https://www.rfc-editor.org/rfc/rfc8865.html • Sending T.140 frames directly in data channels, not on RTP • Data channels can be configured to be ordered and reliable • Helps avoiding hoops needed for RTP (e.g., RED) • A specific label can be associated with a specific RTT session • Of course, needs gatewaying to be backwards compatible • WebRTC endpoints can’t do RTP/RTT, and legacy ones don’t do data channels • Something needs to “translate” (media and SDP)
  • 39. T.140 RTT over WebRTC Data Channels • Why not use data channels for RTT, then? • T.140 Real-Time Text Conversation over WebRTC Data Channels (RFC 8865) • https://www.rfc-editor.org/rfc/rfc8865.html • Sending T.140 frames directly in data channels, not on RTP • Data channels can be configured to be ordered and reliable • Helps avoiding hoops needed for RTP (e.g., RED) • A specific label can be associated with a specific RTT session • Of course, needs gatewaying to be backwards compatible • WebRTC endpoints can’t do RTP/RTT, and legacy ones don’t do data channels • Something needs to “translate” (media and SDP)
  • 40. T.140 RTT over WebRTC Data Channels • Why not use data channels for RTT, then? • T.140 Real-Time Text Conversation over WebRTC Data Channels (RFC 8865) • https://www.rfc-editor.org/rfc/rfc8865.html • Sending T.140 frames directly in data channels, not on RTP • Data channels can be configured to be ordered and reliable • Helps avoiding hoops needed for RTP (e.g., RED) • A specific label can be associated with a specific RTT session • Of course, needs gatewaying to be backwards compatible • WebRTC endpoints can’t do RTP/RTT, and legacy ones don’t do data channels • Something needs to “translate” (media and SDP)
  • 41. T.140/data channels SDP usage m=application 911 UDP/DTLS/SCTP webrtc-datachannel c=IN IP6 2001:db8::3 a=max-message-size:1000 a=sctp-port 5000 a=setup:actpass a=dcmap:2 label="ACME customer service";subprotocol="t140" a=dcsa:2 fmtp:t140 cps=20 a=dcsa:2 hlang-send:es eo a=dcsa:2 hlang-recv:es eo
  • 42. Prototyping T.140/WebRTC in Janus • Created a prototype in Janus a few years ago • Old PR: https://github.com/meetecho/janus-gateway/pull/1898 (closed) • Blog post: https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/ • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • Used the SIP plugin in Janus as the necessary gateway • Negotiates text m-lines and the text/t140 format on the SDP side • Negotiates data channels on the WebRTC side (binary) • T140blocks are then bridged (no translation) as they are • T140blocks decapsulated from RTP packets −→ data channels • Data channels −→ crafting RTP packets with T140blocks • RED optionally supported in both directions on the RTP side
  • 43. Prototyping T.140/WebRTC in Janus • Created a prototype in Janus a few years ago • Old PR: https://github.com/meetecho/janus-gateway/pull/1898 (closed) • Blog post: https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/ • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • Used the SIP plugin in Janus as the necessary gateway • Negotiates text m-lines and the text/t140 format on the SDP side • Negotiates data channels on the WebRTC side (binary) • T140blocks are then bridged (no translation) as they are • T140blocks decapsulated from RTP packets −→ data channels • Data channels −→ crafting RTP packets with T140blocks • RED optionally supported in both directions on the RTP side
  • 44. Prototyping T.140/WebRTC in Janus • Created a prototype in Janus a few years ago • Old PR: https://github.com/meetecho/janus-gateway/pull/1898 (closed) • Blog post: https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/ • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • Used the SIP plugin in Janus as the necessary gateway • Negotiates text m-lines and the text/t140 format on the SDP side • Negotiates data channels on the WebRTC side (binary) • T140blocks are then bridged (no translation) as they are • T140blocks decapsulated from RTP packets −→ data channels • Data channels −→ crafting RTP packets with T140blocks • RED optionally supported in both directions on the RTP side
  • 45. SIP plugin in Janus https://janus.conf.meetecho.com/docs/sip
  • 46. SIP plugin in Janus + RTT
  • 47. Example: SDP offer from SIP/RTT endpoint v=0 o=Lorenzo_Miniero 1 1 IN IP4 192.168.1.74 s=Omnitor_SDP_v1.1 c=IN IP4 192.168.1.74 t=0 0 m=text 1024 RTP/AVP 99 98 a=rtpmap:99 red/1000 a=fmtp:99 98/98/98 a=rtpmap:98 t140/1000
  • 48. Example: SDP offer to WebRTC endpoint v=0 o=Lorenzo_Miniero 1 1 IN IP4 192.168.1.74 s=Omnitor_SDP_v1.1 t=0 0 a=group:BUNDLE data a=msid-semantic: WMS janus m=application 9 UDP/DTLS/SCTP webrtc-datachannel c=IN IP4 192.168.1.74 a=sendrecv a=sctp-port:5000 a=mid:0 [.. ICE/DTLS details follow..]
  • 50. Testing: Janus SIP demo (WebRTC) https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
  • 51. T.140 conversation on the wire https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
  • 52. What’s next? • First of all, revive the effort • The original PR was closed a few months ago • Little to no feedback, and core had changed a lot in the meanwhile • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • New revision can take advantage of some new features • e.g., RED supported in the Janus core, now • Maybe write a prettier and more functional UI too... • Possibly test with something more complex than TIPcon1 • TIPcon1 good for basic functional testing, but very limited • RTT endpoints very hard to find, especially in FOSS • Possibly integration tests with actual RTT deployments?
  • 53. What’s next? • First of all, revive the effort • The original PR was closed a few months ago • Little to no feedback, and core had changed a lot in the meanwhile • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • New revision can take advantage of some new features • e.g., RED supported in the Janus core, now • Maybe write a prettier and more functional UI too... • Possibly test with something more complex than TIPcon1 • TIPcon1 good for basic functional testing, but very limited • RTT endpoints very hard to find, especially in FOSS • Possibly integration tests with actual RTT deployments?
  • 54. What’s next? • First of all, revive the effort • The original PR was closed a few months ago • Little to no feedback, and core had changed a lot in the meanwhile • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • New revision can take advantage of some new features • e.g., RED supported in the Janus core, now • Maybe write a prettier and more functional UI too... • Possibly test with something more complex than TIPcon1 • TIPcon1 good for basic functional testing, but very limited • RTT endpoints very hard to find, especially in FOSS • Possibly integration tests with actual RTT deployments?
  • 55. What’s next? • First of all, revive the effort • The original PR was closed a few months ago • Little to no feedback, and core had changed a lot in the meanwhile • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • New revision can take advantage of some new features • e.g., RED supported in the Janus core, now • Maybe write a prettier and more functional UI too... • Possibly test with something more complex than TIPcon1 • TIPcon1 good for basic functional testing, but very limited • RTT endpoints very hard to find, especially in FOSS • Possibly integration tests with actual RTT deployments?
  • 56. What’s next? • First of all, revive the effort • The original PR was closed a few months ago • Little to no feedback, and core had changed a lot in the meanwhile • New PR: https://github.com/meetecho/janus-gateway/pull/3231 • New revision can take advantage of some new features • e.g., RED supported in the Janus core, now • Maybe write a prettier and more functional UI too... • Possibly test with something more complex than TIPcon1 • TIPcon1 good for basic functional testing, but very limited • RTT endpoints very hard to find, especially in FOSS • Possibly integration tests with actual RTT deployments?
  • 57. Thanks! Questions? Comments? Get in touch! • https://fosstodon.org/@lminiero • https://twitter.com/elminiero • https://twitter.com/meetecho • https://www.meetecho.com/blog/