Re: [asterisk-users] [asterisk-app-dev] Handling transfers with ARI

2020-12-23 Thread Jean Aunis

Thank you all for the hints.

I ended up using a mix of dialplan to deal with the Local channels, and 
ARI to detect the transfer and redirect. It doesn't look like a "clean" 
solution but I have nothing better for the moment :


Dialplan :

exten  = 
100,1,GotoIf($[$["${SIPTRANSFER}"="yes"]&$["${CHANNEL(channeltype)}"="Local"]]?waittransfer:)

; deal with channel being transfered
same  = n,Transfer(100)
same  = n,Hangup()

; deal with Asterisk-managed Local channel
same = n(waittransfer),Wait(2)
same  = n,Hangup()

NodeJS :

bridge.once('BridgeAttendedTransfer', event => {
    var transferee = new ari.Channel(event.transferee.id);
    transferee.continueInDialplan({
  context: event.context,
  extension: event.exten,
  priority: 1
    });
});

Le 23/12/2020 à 19:46, Phil Mickelson a écrit :
Unfortunately, I suspect my situation is different from yours in that 
I control everything.  And, when Bob wants to transfer the call he 
clicks a button on the screen, not a button on the phone.  I don't use 
any part of the dialplan except to start ARI.


Sorry.

Phil

On Wed, Dec 23, 2020 at 2:56 AM Jean Aunis > wrote:


Thanks for the answer.

Not sure I get the idea : when a SIP phone performs a
blind-transfer, I have no control over what Asterisk does with the
channels. During my tests, Bob's channel was automatically pulled
out of the bridge, and replaced with a Local channel whose peer
goes through the dialplan to the transfer destination.

How can you link the newly created Local channel with Alice's one ?

For the moment, I have a piece of solution with the
BridgeBlindTransfer event, but I still have troubles with these
Local channel issues.

Le 22/12/2020 à 20:13, Phil Mickelson a écrit :

Not sure if this will help but what I do is fairly simple.  A
couple of things:

1.  This is all written in JS using Node.js.
2.  I use ari-client from npm.

To me this is very simple.  You already have the bridge and
channel setup for Alice.  I create another channel that dials
Charlie.  And, as soon as the create channel call comes back I
just set the channel id (was Bob) in the bridge to the new
channel for Charlie.  That's it.  If it doesn't get answered I
hope it goes to VM.  However, that's the downside of a blind
transfer.  I have some code in there for what happens if Alice
hangs up before Charlie answers, etc but that's because I keep
track of every call in my system.

And I wrote all of this before there were Promises and
Async/Await.  Hopefully next year I'll have the time to rewrite
the whole thing.

And, for the people at Asterisk who came up with the idea of
ARI.  Thank you s much.  Hope everyone has a wonderful
holiday and that 2021 is much better than 2020!

Phil

On Tue, Dec 22, 2020 at 5:38 AM Jean Aunis mailto:jean.au...@prescom.fr>> wrote:

Hello,

I'm struggling to find a way to properly handle blind
transfers with ARI.

This is my use case :

- Alice calls Bob through Asterisk

- dialing and bridging is done with ARI

- when Bob blind-transfers to Charlie, I would like to use the
"redirect" ARI operation, or the Transfer application

But here is the issue : since the channels are stasis-managed,
transferring is done with Local channels which remain in the
path, so
Transfer and redirect have no effect on them. And Alice's
channel is not
aware that it is being transferred.

Has somebody already dealt with this ?

Regards,

Jean


___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com

http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev


___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com  

http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev

___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com

http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev


___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk 

Re: [asterisk-users] [asterisk-app-dev] Handling transfers with ARI

2020-12-22 Thread Jean Aunis

Thanks for the answer.

Not sure I get the idea : when a SIP phone performs a blind-transfer, I 
have no control over what Asterisk does with the channels. During my 
tests, Bob's channel was automatically pulled out of the bridge, and 
replaced with a Local channel whose peer goes through the dialplan to 
the transfer destination.


How can you link the newly created Local channel with Alice's one ?

For the moment, I have a piece of solution with the BridgeBlindTransfer 
event, but I still have troubles with these Local channel issues.


Le 22/12/2020 à 20:13, Phil Mickelson a écrit :
Not sure if this will help but what I do is fairly simple.  A couple 
of things:


1.  This is all written in JS using Node.js.
2.  I use ari-client from npm.

To me this is very simple.  You already have the bridge and channel 
setup for Alice.  I create another channel that dials Charlie.  And, 
as soon as the create channel call comes back I just set the channel 
id (was Bob) in the bridge to the new channel for Charlie.  That's 
it.  If it doesn't get answered I hope it goes to VM.  However, that's 
the downside of a blind transfer.  I have some code in there for what 
happens if Alice hangs up before Charlie answers, etc but that's 
because I keep track of every call in my system.


And I wrote all of this before there were Promises and Async/Await.  
Hopefully next year I'll have the time to rewrite the whole thing.


And, for the people at Asterisk who came up with the idea of ARI.  
Thank you s much.  Hope everyone has a wonderful holiday and that 
2021 is much better than 2020!


Phil

On Tue, Dec 22, 2020 at 5:38 AM Jean Aunis > wrote:


Hello,

I'm struggling to find a way to properly handle blind transfers
with ARI.

This is my use case :

- Alice calls Bob through Asterisk

- dialing and bridging is done with ARI

- when Bob blind-transfers to Charlie, I would like to use the
"redirect" ARI operation, or the Transfer application

But here is the issue : since the channels are stasis-managed,
transferring is done with Local channels which remain in the path, so
Transfer and redirect have no effect on them. And Alice's channel
is not
aware that it is being transferred.

Has somebody already dealt with this ?

Regards,

Jean


___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com

http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev


___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

[asterisk-users] [asterisk-app-dev] Handling transfers with ARI

2020-12-22 Thread Jean Aunis

Hello,

I'm struggling to find a way to properly handle blind transfers with ARI.

This is my use case :

- Alice calls Bob through Asterisk

- dialing and bridging is done with ARI

- when Bob blind-transfers to Charlie, I would like to use the 
"redirect" ARI operation, or the Transfer application


But here is the issue : since the channels are stasis-managed, 
transferring is done with Local channels which remain in the path, so 
Transfer and redirect have no effect on them. And Alice's channel is not 
aware that it is being transferred.


Has somebody already dealt with this ?

Regards,

Jean


___
asterisk-app-dev mailing list
asterisk-app-...@lists.digium.com
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
 https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users