-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design scenario #8
Comments
Hi,
For such a straightforward question - it is incredibly hard to give a
concise answer!
The SIP server talks SIP on one side and HTTP on the other. HTTP is to
configure the SIP server and also for the SIP server to notify the call
control server of events (for example of a new call). We pass a SIP realm,
user and secret to the SIP server so that clients can register.
The RTP server is the same as the SIP server - a standalone server to
handle the real time media of a call.
If a call comes in, it comes into the SIP server. The SIP server notifies
the control server that a new call has happened. The call control server I
have written in JS as this is designed to be configurable by the end user -
so the idea is you write a script as to what to do with the call. Most
likely you will set up an RTP stream, so call control contacts RTP to
request a new stream, gets it, passes it back to SIP to add to SDP for the
client.
The idea is that these components can run on a single machine or on
different ones. Under load, you may have multiple RTP servers - as they are
the workhorses all run from a single SIP and control server.
I have been interested in single threaded architecture for various reasons
(IO completion ports) including efficiency and reliability. So the whole
system is built around that. RTP I want to improve - as I made it
multithreaded (thread pool) - but now regret part of that design - it makes
the config of each stream messy. But that is the basis of the seperation of
the different components and how they communicate with each other.
Nick
…On Tue, May 19, 2020 at 7:47 AM smalls12 ***@***.***> wrote:
I've finished cross compiling everything for my raspberry pi and can run
the sip and rtp servers respectively there.
I'm now trying to establish a working understanding of these components
and what I can do with them.
I had a basic idea of a baby monitor in my head where the raspberry pi
could make some sort of sip call to my x86 machine; further down the line
this call could stream video and audio.
Do you have a starting point maybe for me?
I've also only been able to get the control server running, but don't know
what it's doing.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#8>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBM4NRERKAQYNIMOZKVI23RSITRZANCNFSM4NEWZXTQ>
.
|
That all makes sense. My first goal is to establish a connection from my rpi to my x86 machine. Since the rpi is headless, I will probably just use a script to send the necessary HTTP commands to the local SIP server to call the x86 machine, and just play one of the sound files. I can use the node client you made on the x86 side to receive the call. I guess I am looking for the step by step commands my rpi would need to send to its local SIP server that would call the x86 SIP server. |
I guess I'm looking for more info to get the following to work:
|
Hi,
That's a very open question you are asking.
I haven't looked at or written any startup scripts for the modules. You
need all 3 running to have a full system.
I would guess the rpi is handling the server. Are you going to have a
softphone on the x86? The design is very much to have a phone registered to
the SIP server, then in node you can simply call. Or on the reverse, it
receives a call and you connect the caller to the camera and mike on the
rpi?
…On Tue, May 19, 2020 at 5:21 PM smalls12 ***@***.***> wrote:
Reopened #8 <#8>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#8 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBM4NTE3CTLUDSW3QLK2HTRSKW2NANCNFSM4NEWZXTQ>
.
|
Sorry for this, my ignorance on the system design. I just want the rpi to call my x86 machine; ideally there would be a mic on the rpi and streaming voice to the x86 machine; however the rpi could just play an mp3 for now. Based on what you've said, I will run all three components on x86. What would the rpi need on its end to call the SIP server on my x86 machine? |
On one machine you need a softphone? This could be asterisk or some other
server style softphone - but it needs to sip register to mediaswitch
…On Wed, May 20, 2020 at 6:01 PM smalls12 ***@***.***> wrote:
Sorry for this, my ignorance on the system design.
I just want the rpi to call my x86 machine; ideally there would be a mic
on the rpi and streaming voice to the x86 machine; however the rpi could
just play an mp3 for now.
Based on what you've said, I will run all three components on x86.
What would the rpi need on its end to call the SIP server on my x86
machine?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#8 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBM4NWA4QVTCQ74USEJ5MLRSQEE7ANCNFSM4NEWZXTQ>
.
|
Okay I installed a couple different soft phones on my x86 machine, asterisk and linphone, but I haven't figured out how to get them to connect into mediaswitch. It seems to try and bind to the same port as the mediaswitch SIP server, I assume they will launch their own SIP server by default. The rpi would need to install similar software presumably and connect int the SIP server on the x86 machine? |
Can you explain what are you trying to do in more detail?
A softphone will typically listen on 5060 also - which when they act as a
UA I never understood why they don't act like a normal client and go random
high.
Run SIP server on rpi. Hav a look at the section about directory on the
maingithub page, i.e.:
projectcontrol.directory( "bling.babblevoice.com", [ { "username": "1003",
"secret": "1123654789" } ] )
When you start the sip server, followed by your control server, this will
create a user on the server to auth against (domain, user, secret). Once
that is done a softphone can register against the server. Which then you
can make calls to that softphone.
…On Thu, May 21, 2020 at 5:14 AM smalls12 ***@***.***> wrote:
Okay I installed a couple different soft phones on my x86 machine,
asterisk and linphone, but I haven't figured out how to get them to connect
into mediaswitch. It seems to try and bind to the same port as the
mediaswitch SIP server, I assume they will launch their own SIP server by
default.
The rpi would need to install similar software presumably and connect int
the SIP server on the x86 machine?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#8 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBM4NQKSAW2KHG32WYS5L3RSSTC7ANCNFSM4NEWZXTQ>
.
|
Right going to take a step back here. |
So what is this exactly ?
I'm not overly familiar with node and js so I'm trying to figure out a way to get this working with curl and python if possible. |
I've finished cross compiling everything for my raspberry pi and can run the sip and rtp servers respectively there.
I'm now trying to establish a working understanding of these components and what I can do with them.
I had a basic idea of a baby monitor in my head where the raspberry pi could make some sort of sip call to my x86 machine; further down the line this call could stream video and audio.
Do you have a starting point maybe for me?
I've also only been able to get the control server running, but don't know what it's doing.
The text was updated successfully, but these errors were encountered: