+1 Having this layer of granularity also makes it much easier to answer questions like "How come ARI? What's wrong with AMI/AGI ?" On 11/1/13, 9:15 AM, Joshua Colp wrote: > Matthew Jordan wrote: >> I'm not entirely sure of this approach. >> >> On the one hand, having a nice, clean virtual channel driver that has >> this explicit purpose is a nice convenience - it is certainly easier to >> manipulate than a Local channel (both halves). >> >> On the other hand, it feels like it limits the usage of /snoop a bit, >> and makes it a bit more complicated to construct some scenarios. For >> example, if I want a SIP channel to spy on another SIP channel, I >> have to: >> >> (1) Make a bridge >> (2) Put my SIP channel in it >> (3) Call /snoop on the channel I want to spy on >> (4) Take the Snoop channel and put it in the bridge > > That's an application. The act of spying on another channel is an > application, that's what I'm trying to avoid because it limits things > (take for example all of the gotchas you put in your description) and > also means we now have to continue to add features to this operation. > By providing the snoop as a media conduit primitive we give more > control. That does come at the cost of having to do the above. > >> That's not onerous, but it is a bit more complicated than having /snoop >> be an operation on any channel. > > Well, it'll be an operation on any channel - it just won't take > another channel as an argument and connect them together for spying. ^_^ > >> I do worry as well that a specific channel driver may have its own rules >> that have to be followed via ARI. The lifetime of a Snoop channel would >> have to be defined carefully as well - once the channel it is hooked >> onto is disposed of, you'd almost certainly have to dispose of the Snoop >> channel automatically as well - you don't really "control" the end of >> the Snoop channel that was hooked onto the real channel. > > Correct, when the hooks that snoop uses are terminated then it would > hangup. If you want to stop snooping, then you hangup the snoop > channel yourself. > >> I wonder if we're not providing another convenience mechanism similar to >> /dial - only this time in the form of a specific channel driver. > > I would say the original approach is the convenience mechanism. >