[Help/Advice] VOIP -> Linux Server Softphone

Hi all,

Just a preface that I’m a programmer that’s out of my depth working with phone systems.

I’m looking to create an application that’s essentially a softphone with no client (UI) - I want to be able to use a VOIP phone to make a call to my linux server, and have my application accept the call and I then maintain a 2 way audio stream with that call. For example, I should be able to record the audio from the call or I should be able to broadcast audio to the call in realtime.

I’ve seen that * and other services do implement features for call recording etc. for this, I really need to be acting as a call endpoint rather than a middleman.

Sorry if this seems vague… I’ve tried researching this for a few days but I think it’s one of those problems that I need to know the right words to search for!

Is this something that seems possible? If so, can I get some information on the required setup or at least a recommendation on where to look?

Thank you!

What do you mean with “a softphone with no client (UI)” ?

A softphone that works through the cli has a UI, because the cli is the user interface…

Lets assume you mean that you are working on a softphone without a graphical user interface, you could take a look at the pjsua (PJ sip user agent). This works fine as a cli sip client.

Think you should google “asterisk soundcard”, eventhough you dont use a soudcard, think that will guide you in the right direction…

Or you could give more information on what you want to happen functional, then a lot of pp on the forum could provide you with more information.

I think he means a SIP user agent with no associated human computer interface.

Yes, could be… But then you could use the pjsua with autoanswer… I think…

Hi thanks for your replies.

@david551 is right, I need to be able to interact with the call programmatically with no user interaction. PJSUA sounds promising, I’ll look into that. In a programming sense (and absolute best case scenario), I want access to the socket connection for the call so I can Read/Write data to the call.

You can do this with Asterisk, Have your PBX answer the call and then use something like AGI to pass the audio stream and call control to your program.

AGI to pass the audio stream

How would you pass the audio stream to an external app ?

EAGI handles it for you.

https://wiki.asterisk.org/wiki/display/AST/Application_EAGI

https://www.packtpub.com/books/content/primer-agi-asterisk-gateway-interface

You can see how it works in a third party script like this one:

1 Like

Through a pipe or TCP connection/

Piping it wouldn’t be two way though would it?

Quite a few years working with asterisk, and still discovering new features !!! Many thanks

Use two pipes. They can be named.