Search code examples
androidasterisksipvoip

How does a SIP based app scheme work?


This is an abstract question on how the SIP protocol works. Let us say I have a SIP server (Asterisk/Yate). And I have two Android devices that wish to connect to each other to have an audio call. ( I am looking for a purely VoIP call, no need for telephone numbers or carrier information).

How would this work? Do the packets have to pass through the server? or does the connection happen between the end-points. If the packets has to pass through the server, does the SIP server also provides profiles, or do profiles have to be created by a third party?

I need to understand how the scheme works in order to start planning building the system.

I have read lots of technical documentations, but none show an abstraction of the system. If you can provide me with resources, that would be great too.

Thanks


Solution

  • Since your device not know where each other located(ip/port), they call sip server or proxy.

    Sip server match dialplan and send request changed(server) or unchanged(proxy) to other side.

    In INVITE request each peer send address/port and info about media stream RTP

    If that info unchanged(proxy) they can see each other rtp info and send rtp packets directly.

    Also there is posible enother INVITE after call bridged,called re-INVITE with info about new stream for rtp(can be sound on other ip/port or video)

    There are nothing called profiles in sip standart, sorry.

    Anyway seams bad idea start planning voip system if you have limited REAL experience with sip server.

    There are alot of articles(including wikipedia), videos on youtube with topic "how sip works", there are no way put all that here in one answer.