Expected Early Bridge Behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello List,

One thing that ARI lacks at the moment is a way to enable early media from an outbound channel be sent to an inbound channel.

The way we intend to fix this is to provide an alternate means of dialing outbound channels. Currently, when you dial an outbound channel from ARI, Asterisk creates the channel and then calls it. As the ARI application writer, you are handed that channel once it has been answered. With some changes in Asterisk, we intend to allow the application writer to break outbound dialing into two stages. First, the application can request for Asterisk to create a channel. Asterisk will give the application the channel immediately. Next, the application can request Asterisk to call the channel. This allows for the application to create the channel, place it into a bridge, and then call the channel. The result is that if there is early media present, then anyone in that bridge will hear the early media. Victory!

Now, the "fun" part is defining the expected behavior when multiple outbound parties are dialed. Let's say that an ARI application creates outbound channels for Alice, Bob, and Charlie. It places these three channels into a bridge with other participants and then calls them.

Question 1: What is the expected behavior regarding early media in this state?

My proposal is that we behave similarly to app_dial. In other words, we block any incoming media from the outbound channels. If there are already multiple participants, they can talk amongst themselves. If you have a single participant, then you as the application writer can play a ringing indication to them or music on hold while you wait for an answer.

Now let's continue and say that Alice answers her phone.

Question 2: Should there be any implicit behavior from Asterisk in this scenario? For instance, should Asterisk hang up Bob and Charlie's channel and remove them from the bridge?

On this one, I'm a bit torn. My immediate reaction upon hearing this question is "No. ARI is meant to be controlled 100% by the application writer. There should be no implicit behavior." However, when thinking about the user experience, I start to reconsider. If Alice answers, then the bridge will shift to a typical mixing bridge, allowing Alice to talk with any of the previous participants in the bridge. However, they will also hear ringing, early media, or even congestion from Bob and Charlie's channels, making it a nasty experience for the bridge participants.

You might get around this by having the mixing bridge block media from channels that have not been answered. But now, what happens when Bob and Charlie's phones both go to voicemail? They're technically "answered" at this point, so now the participants are hearing weird mixed voicemail from Bob and Charlie's devices and they're not in a position to be able to leave any sort of coherent messages.

What I just described may be exactly what you want. However, it may be that what you actually want is to just use what ARI already provides. Originate calls to Alice, Bob, and Charlie, and as they answer, place them in the bridge.

So folks, if you can provide some feedback for these two questions, that would be super-handy.

Thanks,
Mark Michelson

_______________________________________________
asterisk-app-dev mailing list
asterisk-app-dev@xxxxxxxxxxxxxxxx
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev



[Index of Archives]     [Asterisk SS7]     [Asterisk Announcements]     [Asterisk Users]     [PJ SIP]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Linux API]

  Powered by Linux