Comments (7)
I've never come across out of band DTMF in the will I'm sure it's out there given there are RFC's for it (RFC2733 and RFC4733) but I suspect it might be restricted to inter-carrier networks. Had a brain fade when I originally wrote that, RFC2833 is the default DTMF mechanism for a lot of soft phones and media servers.
The best approach is to use DTMF via SIP Info. That mechanism puts DTMF events into SIP INFO requests and means there's no extraction from audio RTP packets required.
If you do need to go down the out of band path then there's nothing specifically useful in the sipsorcery code base as I've never worked with it.
from sipsorcery.
Lightning fast :)
I was just looking at this:
https://www.voip-info.org/wiki/view/SIP+DTMF+Signalling
Which implies to me that "telephone-event" might actually arrive in the same RTP Channel and so it might be a matter of replacing ProcessRTPPackets?
If I pull https://github.com/sipsorcery/sipsorcery/tree/master/sipsorcery-core will that match 1.5.6?
I might go through and add a pile of logging in there and test if the DTMF packets are coming through.
from sipsorcery.
Just to say I "think" I've managed to submit a change to you that allows you to intercept an RTP Packet and choose to handle it first (such as for handling DTMF)
Change was in RTPChannel.cs which I've attached, just in case.
from sipsorcery.
You should hook up the RTPChannel.OnFrameReady event. There's no need for your additional ProcessRTPPacketsCustom property.
The additional advantage of using the OnFrameReady event is that you will get full RTP frames rather than partial ones. If your DTMF was spread across multiple RTP packets you'd need the full frame to be able to extract them.
from sipsorcery.
Yeah, that got it.
Looks like for End/Reserved/Volume I had to reverse the bit order (IsLittleEndian = true).
Does that sound right to you?
from sipsorcery.
Only other thing I've got is a Before Send Request/Response event added to SIP Transaction because the server I'm talking to isn't happy with a blank "user" in the contact field for some reason.
SIPTransaction.zip
I couldn't find any other way to gain access to the "OK" response.
I've tried to attach it here.
from sipsorcery.
RTP events are now available. An example program and explanatory article are also available.
from sipsorcery.
Related Issues (20)
- VP8 Error: `Header size larger than data provided` => VP8 Payload Descriptor is miscalculated for some packets
- Video lags after few minutes and high memory consumption HOT 3
- WebRTC connection using a JWT token and custom domain HOT 2
- Question regarding SIPRegistrationUserAgent HOT 2
- get error if udp package is longer than 1472 HOT 1
- WebRtc MediaStreamTrack `Stop & Mute` feature HOT 3
- voipMediaSession.AudioExtrasSource.SendAudioFromStream more than one play starts with extra noise HOT 1
- Getting distorted image after converting RawImage to System.Drawing.Bitmap HOT 1
- SendTurnCreatePermissionsRequest causes program to crash HOT 4
- Error when working with the PJSIP protocol HOT 3
- When installing the package SipSorceryMedia.Windows, an error occurs windows-x64, .Net7.0 AvaloniaUI HOT 6
- How to get the current connection type of WebRTC HOT 5
- Does sipsorcery support echo cancellation? HOT 1
- Doesn't prflx type exist for local ICE candidates? HOT 1
- Closing PeerConnection is not done correctly ? HOT 2
- setRemoteDescription doesn't change signalingState (webRTC) HOT 3
- C# WPF "VOIP" app using WebRTC - Net Framework app HOT 16
- How To Add RTP Header Extension? HOT 4
- Line 231 from FFmpegVideoDecoder.cs consumes high CPU HOT 1
- Do incoming calls work with the SoftPhone example? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sipsorcery.