Manage incoming call by php web interface

Hi all. I want to manage incoming call activities (like hold, un hold, hangup etc… ) using ARI API.
but only I could manage calls which generate by ARI API. so is there any way to manage incoming calls?

Do you mean the channels which don’t enter Statis application?
If you are not sending calls to Statis then you can use AMI to manage those call operations. If you do then I think you should be able to control the incoming calls using ARI.

@satish4asterisk thx for reply.i am using AMI but AMI has not a hold action.it’s It only has the park action .when I parked the call other channels will disconnect.

I haven’t done myself but try using Redirect action which allows you to play with 2 channels.

thanks for your advice.but i doesn’t full fill my requirement.
when i use statis app to incoming call land.i can’t dial the extension to ring a call.

My dial plan look like below

[aritest]
exten => _x.,1,Noop()
same => n,Stasis(hello)
same => n,Dial(PJSIP/${EXTEN})
same => n,Hangup()

thanks for helping me!!!

what would be the possible solution for my case?

Purpose of Stasis application is to hand over control of the call/channel from Asterisk to the ARI client. You should be doing Dial and Hangup operations in app itself and not in the dialplan.

1 Like

yeah.is there some way to identify incoming call through ARI client to dial extension from ARI client.
thanks for replying!!!

To me it looks like you don’t need ARI here. Explain your end goal of using ARI so that people here can help you better.
If you just want to dial the Endpoint and control the call using AMI, you don’t need ARI.


I am developing calls management application.so I need to manage incoming calls and out going call through this web interface.

ARI is not for third party call management or call control, it’s for writing applications[1]. The best example is a call queue - instead of using app_queue you would instead write a queue application as an ARI application. If you really wanted to use it for control, then you’d need to write applications yourselves. AMI is really the interface for what you’d want.

[1] https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=29395573

thank you for helping me!!!
yes. but in AMI dosen’t have a action for hold a channel.is there some solution for hold a channel.?

There may not be functionality to do as you wish, or it has to be done in a different way with AMI. I haven’t written such a thing so I can’t comment on that specific part.

1 Like

thank for your advice !!!. I will try as you recommended.

hi.can we track hold and unhold event in some where in database. CEL table doesn’t save any event about hold and unhold of a call.

I do not have experience in that area and do not know. Someone else may have done something similar or have information.

thank you for your help!!!

Use AMI events to save those events on a custom DB, that’s the way to track it

1 Like

thank you for helping me!!!.

1 Like