I was trying to enable call-recording in VOIP calls so i read about the SIPREC
https://www.ietf.org/rfc/rfc7866.html
How to use SIPREC protocol with FREESWITCH??is there any module for that??
please gives me your valuable suggestion with respect of SIPREC Protocol only ,the prime requirement is call record not happened on same server(freewitch) RTP will be send to the another call-recording server
Related
I realize Zeek is capable of analyzing packets for a specific protocol using the API. I want to be able to retrieve all packets without being specific to a protocol and create a packets.log type file with uids that can be correlated with the conn.log. I have been searching through the API documentation trying to find a way to do this (all protocols) but have been unsuccessful. Does anyone have any suggestions? Thank you.
I am new to sip protocol.I understand the normal sip mechanism like how it works.I know about sip re-invite method which is useful to update the SDP(Session Description Protocol) parameters.But recently i found UPDATE sip method which also do the same thing.my questions are
1) Why we need UPDATE sip method?
2) Which phones(like zoiper,sjphone) are sending this UPDATE request to the servers for SDP parameter changes?
Any help would be great.
Thank you
Your answer can be found in the abstract of RFC331 - The SIP UPDATE method:
UPDATE allows a client to update parameters of a session (such as the set of media streams and their codecs) but has no impact on the state of a dialog. In that sense, it is like a re-INVITE, but unlike re-INVITE, it can be sent before the initial INVITE has been completed. This makes it very useful for updating session parameters within early dialogs.
To learn which phones can utilize UPDATE you'd best read the manuals.
What is the purpose for using sip with VOIP ? is it just to know the remote ip address ?
If i know (by server) the remote IP address ,then established a direct TCP socket connection for call negotiation, and send the media over RTP protocol ,so am i still need sip protocol ? or how can sip help me here?
The Session Initiation Protocol does rather a lot more than find out a remote IP address/port/transport triple.
It lets two parties
negotiate the media streams (including codecs and transports) and
establish commonly understood extensions to the protocol.
It also describes how to build scalable infrastructure (proxies, using SRV and NAPTR records, back to back user agents), location services and a host of other details that go into making a voice (or any other kind of) call to arbitrary third parties.
then you have implemented a sip alternative. sip (session instanciation protocol) does just control the "phone call". if you want to do that on your own, why not? the only problem would be that there are many sip clients and just one (or few) clients using your protocol.
SIP allocates a IP:port to a voip call. The RTP flows (one for each direction) will then use this IP:port as a destination address. If you have only one static RTP flow to send to your server, it may be useful and ok to do what you said.
Otherwise, if there are many clients, or if your system has to change a lot, it's better to use a polished protocol which will dynamically allocate ports and establish your sessions.
nobody forces you to implement a standard.
e.g. why do you implement the media stream in RTP? most likely because you already have code that "talks" RTP (e.g. a library, or a raedymade application).
the nice thing about standards is, that it will work "out-of-the-box" with all other applications implementing the same standard.
if it is an open standard, there's another nice thing: other people have already spent a lot of brain power into getting the implementation right. you don't need to fall into the same problems.
I need to implement a CAN protocol which is used in Automobile Industry.I wanted to know if it is possible to get the CAN data packets through WiFi using NSNetService/NSNetServiceBrowser class. In Apple's Documentation, everytime they are about to describe about NSNetService/NSNetServiceBrowser
class they say "Bonjour network services" where Bonjour is a protocol implemented by apple itself.
So, I think of course it will detect those i.e Bonjour Data Packets.But now, I am not sure if it will do the same in case of CAN data packets.Hence my question is : Is CAN data packet compatible with NSNetService class so that I can use it directly? If not, is there a way to detect CAN data packets coming from a WiFi network?
Further I got a reply on Apple Developer Forum that if CAN data packets were wrapped up in some High Level Protocol like UDP then NSNetServiceBrowser class MIGHT read it. Now my question is if my CAN data packet was in UDP packet(lets say), is NSNetServiceBrowser class capable of detecting those data packets since NSNetServiceBrowser asks for input on service domain Name and service domain type?
Thanks in Advance.
iParag
Actually We are doing thesis work where we need to make 10 voip phones which are SIP based connected with each other.So they can call and talk among each other.Also we want to add video calls access.Another question is it possible video calls on SIP.
SIP already has built in reliability measures, most of which are specifically to cope with unreliable transports such as UDP. You should read the section in the SIP RFC on Transactions to gain an understanding of how it works. One aspect missing from the SIP RFC is reliability for provisional responses and the supplementary RFC3262 deals with that.
SIP is agnostic to the type of sessions, such as voice or video, it sets up so yes it can be used to set up video calls. There are heaps of readily available SIP softphones around that already provide video, one example being x-lite.
To make it reliable you need to emulate the following two features:
For Calls
You need to sequence the packets.
One end needs to tell the other end that a sequenced packet is missing if this happens, and you probably want take jitter into account -- i.e., wait a small amount of time before you request a missing packet.
For protocol commands
You need to ackknowledge command packets -- if a command is not acknowledged it has to be sent again.