When using asterisk ari, am i meant to develop my own softphone?

I’m a quite a rookie at asterisk development, i understand some basic fundamental concepts of channels and bridges . i understand that channels are created by the channel driver written in c when using a dialplan configuration.i have been able to configure sip phones to make inbound calls and outbound and also been able to configure a local sip provider to make trunk calls. The issue i have is with ari, what i dont understand is if i am meant to develop a soft sip phone (on a browser) from where a channels rest call is initiated. and if i’m mean to do that , how will the audio be communicated via the browser.

ARI itself isn’t made for developing softphones or anything like that. That is outside of its scope. ARI provides the fundamentals to write Asterisk applications - like a new Voicemail, or a new call queue.

Thanks for the response @jcolp, So i have seen an example on youtube where a php client used asterisk ari. and on the html page , its had html buttons like “Call”, “Answer” , "Hangup " and i believe these rest actions are based on ;
POST /channels/{channelId} - dial (originate )
POST /channels/{channelId}/answer - answer
DELETE /channels/{channelId}
What i don’t understand is if a call is meant to be taken from the browser ,or there is a way of communication between endpoints via the browser. Thanks for your help

If the call was being done and audio was going through the browser then it was likely using WebRTC, which allows VoIP to be done through the browser. That is completely separate from ARI.

Okay @jcolp , so if am using a sip phone like linphone or zoiper , how can asterisk dialplans be replaced with ARI ?

There is no real answer to that because it depends on what you are trying to achieve. ARI is meant for writing telephony applications like voicemail or queue as I previously mentioned. We provide the building blocks, you do the rest. Whether you need to use ARI or not also depends on what you are trying to achieve.

You send a call into your ARI application, and the rest is up to you.

Or better still my question @jcolp , i have two sip phones mobile and desktop , how do i replace my dial plan with ARI , i need both phones to be able to call each other, create and channel and bridge .

You write an ARI application to do what you want. I don’t really have a better answer because it’s like asking “how do I replace my email client from scratch?”

You do not replace dialplans with ARI. You supplement dialplans with ARI

I feel that you don’t know the basics well enough to be even attempting what you are attempting.

Thanks @david551 i’m clearly missing some concepts , i’m not exactly intending to replace a dialplan with ARI, because i know the chain of responsibility occurs when a Statis application is invoked on a diaplan, The question i need to be answered right now is what invokes the rest endpoint

POST /channels/{channelId} - dial (originate )
POST /bridges - create a new bridge
POST /bridges/{bridgeId}/addChannel - add a channel id to bridge
POST /channels/{channelId}/answer - answer
DELETE /channels/{channelId}

is this happening at the click of a button on a web page , at a service level , in a business logic ?

N.B i’m java developer intending to integrate an existing crm with a pbx system.

That’s up to your application, it’s generally an application that is running all the time somewhere. You could interface the application with your own web page app if you wanted. It’s up to you.

@jcolp
What i have gathered so far is :

  1. ARI designed to control asterisk via rest-like interface
    2 . It has no any relation to softphone.
    3 .“audio be comunicated via the browser” = WebRTC

How can i use ARI with a sip phone or hardphone to control asterisk ?

Audio is communicated in many different ways. Via a browser is a rather recent development.

@jcolp @david551 my apologies , everything you have been saying made sense just 5 minutes ago after watching a webinar on Ari by some digium cats, Ari is used enhance and monitor call queueing and voice mail. It allows you build applications around a call center unit where endpoint channels needs to bridged , I actually feel like a fool after seeing my shallow questions.