How to proxy transfer requests

I understand Asterisk is best described as a B2BUA, and not a proxy, but I just want to check if this is possible before I look elsewhere.

Let’s say I have Asterisk1 and Asterisk2. The main box is Asterisk1, with trunks, queues, and a bunch of users registered say 100-105, now Asterisk2, just has a few more users 200-205.

If a call goes from Trunk → Asterisk1 → Asterisk2 - > User 201, and that person wants to transfer the call to (Asterisk1)100 or anyone in Asterisk1 (100-105), how do I do that?

It can be a blanket rule that all transfer are forced down from Asterisk2 to Asterisk1, because the 20X rules map back up.

Are you talking about this:
Trunk → Asterisk1 → Asterisk2 → User 201 → Asterisk2 → Asterisk1 → User 100 ?
Wouldn’t a simple proxy make more sense in this case? In the end you would have 12 RTP streams for a single call.

That’s why I want the Asterisk1 box to perform the transfer, so that the entire leg gets re-established
Trunk → Asterisk1 → Asterisk2 → User 201
then transfer:
Trunk → Asterisk1 → User 101
or even:
Trunk → Asterisk1 → Asterisk2 → User 205

If Asterisk2 is changed to a proxy, yes, this helps, but removes some functionality, and my load in now very heavy on Asterisk1. Part of my strategy is to split out the load for things like transcoding and call recording etc.

Asterisk can de-trombone the media, as long as it doesn’t need to record or examine it itself, but isn’t really designed to de-trombone signalling. Simply make sure direct media is enabled, and you don’t do anything incompatible with it.

It can generate a blind transfer requests, but would require work in the dialplan to try to recognize a transfer, or third party control. It has no support for originating attended transfers.

About how many concurrent calls are we talking? In a larger setup I’d probably first look at a Kamailio setup with some load balancing. But that would also depend on what the PBX is supposed to support.

As David already pointed out, Asterisk can get out of the way under certain circumstances. Let’s say everything is fine and in half a year some outside consultant changes something “minor” and two weeks later the customer notices network problems. I’d say, what you are trying to do is far too risky.

One of the main problems is that Asterisk1 does not have Websocket or WebRTC capabilities, and Asterisk2 would be for the WebRTC clients.

From what I understand a WebRTC media cannot be optimised out because of SDES. My only option then is to have some sort of SIP-to-WebRTC service with Kamailio. I was wondering if there was an Asterisk only way.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.