[asterisk-users] Converence/Meetme with Manager API
Lee Jenkins
lee at datatrakpos.com
Thu Feb 21 08:42:47 CST 2008
Mitchell Jackson wrote:
> Hello! I am having problems figuring out how to do something, and any
> help would be much appreciated.
>
> I would like to use the manager API to take an existing call on a
> specific SIP extension, dial and conference in a third party.
>
> From what I can tell, the way to do this would be to take the two
> original parties on the call and stick them in a meetme room using
> Redirect with ExtraChannel, then dial the new party and also dump them
> into the meetme room.
>
> The problem I am having is this: I know the extension of the SIP phone
> that is on the call, but I don't know it's channel, or the channel of
> the other party. I need to figure both of these out to be able to use
> the Manager API and dump those callers into the meetme room.
>
> Can anybody tell me how to determine the channels on an active call?
>
> Kind Regards,
>
You need to track those calls somehow, Mitch.
Someone can correct me where I'm wrong, but I see you can do this in a couple of
ways.
1. Track the status of peers. My application performs a sippeers manager (and
zapshowchannels) command to get the status of each device I'm watching at start
up. As events are sent from AMI, I match each device with that event,
specifically, the "LINK" event (changed to "Bridge" event in AMI 1.1). This
way, when the user goes to click on or drag and drop a device on screen, we
already know its information such as its channel info and linked channel
information.
2. Another way I can think of would be to use the CLI command "show channels"
from AMI and parse the output for your device. After figuring out which one is
the device you're interested in, you can use the "Status" manager AMI command to
get the info (including linked channel on the device). As you probably figured
out, the "Status" command requires the channel of the device and not just its
name/ident such as "sip/114" so you have to go through the "Show Channels" hoop
first, I imagine.
As you say, its the easiest to just "redirect" both parties to an extension
already setup in your extensions.conf. I also "push" channel variables from my
application to Asterisk channel vars for use in the dialplan. This way I can
have a bit of dynamic operations. If my user want to create a new conference by
dragging a "live" sip phone to the conference view of my application, I just
prompt the user for conference number, send it as a var along with my redirect
request to AMI and use dialplan logic from there.
As I said, I'm still learning (although learning a lot!) about AMI operations as
I build my own application for AMI so take my info with a minuscule portion of
sodium. ;)
--
Warm Regards,
Lee
"Everything I needed to learn in life, I learned selling encyclopedias door to
door."
More information about the asterisk-users
mailing list