How can I isolate caller audio with sip or voip? - sip

I have a scenario that i'd like to implement, and don't know where to begin.
I'd like to have 3 participants on a phone call: A, B and C.
A and C should be able to talk to and hear each other.
B should be able to hear A, but not C. B doesn't need to speak to anyone
Is there a way that I can implement this with SIP servers, freeswitch, asterisk or online services such as twilio/tropo?
Is there a name for such a scenario in telephony where you isolate the voices of one or more callers?
Thanks

It is known as call barge and is used in monitoring call center agents.
You can do it using the asterisk ChanSpy command:
http://www.voip-info.org/wiki/view/Asterisk+cmd+ChanSpy

in FreeSWITCH, eavesdropping works for the whole conversation. But as it's an open-source tool, you can probably modify sources for your needs.

You can develop a conferencing application using Call Control XML (CCXML). When you bring a caller on the conference you use the "join" element. When you "join" the caller you can specify in the "duplex" tag whether it is full or half. If it is half then the caller can only hear what is going on and cannot speak.
A great platform for trying this out for free is Voxeo's Prophecy. They have an excellent implementation of CCXML (their CTO is the Editor in Chief for this W3C standard) and you can try this hosted platform for free. You only pay when you put it into production. It supports SIP, Skype, and regular telephone lines. You can even use their Phono plugin to create a phone in a web browser that users could use to join the conference. They also have an on-premise solution that is easy to install on a laptop or server and they give you two ports for free. Additional ports are reasonably priced. There are a lot of examples on developing CCXML conferencing applications in their documentation.

try ivrworx,
you can firstly create freeswitch conference.
Thean make scripts which will call the conference but C will send SDP with rcvonly attribute

Related

Certifying an Actions On Google Smart Home App

my app has passed the first review (yay) - but has now been passed to Allion for 'hardware review'.
The issue is that I am not providing hardware, i've provided voice interactions for an open source HA system, which in turn can support 00s of device types.
The Amazon review process was happy for me to provide them credentials to my service, which had access to a subset of device types, to then QA the interactions.
Is this normal for the review process?
Thus far many of the supported services have been direct hardware partners who own their own hardware and cloud. If your integration is done in a slightly different way it may require special instructions to your reviewer that may be different from normal.
I have had further comment from Google. Unless I can provide 1 of every type of physical device that the underlying HA system supports, they will not review, or certify my app. What this tells me is that either Google aren't committed to small SaaS providers & HA enthusiasts, or that this comment is not true. I note that there are several equivalent services listed on Smart home app list, which do exactly the same thing as mine. I rather doubt they provided one of every manufacturers zwave switch/light etc etc. Very disappointing, Amazon have a more welcoming approach –

How to hold or save the DTMF input in VXML? Any guides to set up a test IVR (VXML) service?

So I currently have an IVR written in some dodgy old code which is confusing and goes way over the top for some things.
I'm wanting to re-write one of my basic IVRs with VXML.
So a little bit of research is that I can call perl scripts which I can use to run data past databases, that part isnt to bad.
My question is how, or what is the syntax to use to "hold" or save the dtmf input for a menu, and then pass it to the perl script.
Question two.
Hosting of the VXML IVR. Are there any guides to setting up a test service? I have a PABX, and a few servers I can play around with.
To play around with VoiceXML I would recommend Voxeo's excellent platform called Prophecy. You can get two ports for free that you can run on a server or even on your workstation/laptop. They provide a SIP softphone to test your apps so it does not require any elaborate setup; just a simple install and you are ready to go. They also have hosted environment that you can test from for free. You just pay for the service if you put it into production. Here is a post that describes how to setup and test applications in the hosted environment. And here is a post on how to setup and test applications if you install Prophecy on your PC. Voxeo's CTO is on the VoiceXML standards committee so their platform conforms very close to the standard.
Voxeo's developer site has excellent documentation on VoiceXML that is full of examples. On your question for how to get dtmf input you can go to the bottom of the left pane in the documentation and click on the element "field". The field element is used to collect information from the caller. To easily do this with DTMF input you can use the builtin grammars. For more information on builtin grammars look at the documentation on the "type" attribute of the "field" element. Once you get a "filled" event from the "field" you can call your Perl script using a "submit" element. Voxeo's documentation has a link to this article on creating a VoiceXML applications with Perl. The Voxeo Forum is also an excellent source of information on VoiceXML and the Prophecy. If you cannot find an answer to your question in the Forum just ask it and their knowledgeable support staff will assist.
If you are also familiar with .NET technologies there is an open source project called VoiceModel that makes it easy to develop VoiceXML applications using ASP.NET. The project has a lot of examples in it.
These resources should get you started with VoiceXML fairly quickly.
To specifically answer your DTMF question, just use <submit> to send the DTMF input to the perl script, using the attribute namelist (which is just a list of variables that you need to send).
Also, from the VXML 2.0 specification:
"The <submit> element is used to submit information to the origin Web server and then transition to the document sent back in the response. Unlike <goto>, it lets you submit a list of variables to the document server via an HTTP GET or POST request. For example, to submit a set of form items to the server you might have:
<submit next="log_request" method="post"
namelist="name rank serial_number"
fetchtimeout="100s" fetchaudio="audio/brahms2.wav"/>
"

Does an Alcatel Genesys simulator/emulator exist?

Me and my team were tasked to integrate our application with Alcatel Genesys call center, but we don't have access to a proper instalation nor equipment (like, for instance, phones).
Is there some kind of software I can use to simulate such environment to test our application? And where should I begin researching how to do this integration?
(PS: I posted this same question on https://serverfault.com/questions/308381 - I didn't exactly know which of the sites this really belongs to).
Doesn't look like there is a public one. You would probably have to go through one of their product managers.
The Genesys Platform SDK documentation appears to be public though:
http://docs.genesyslab.com/Documentation/PSDK
The good news - you do not need phones to test integration with Genesys. The bad news is that integrating requires quite a lot of components and is quite complicated so there is no simulator or mock interface you could use. One of the best ways would be to get in contact with Genesys tech support who are usually quite helpful or pre-sales and ask them about access to a virtual demo image you could use for integration.
Also a great resource of information is their newly designed doc site:
http://docs.genesys.com/Documentation/OS
Also Alcatel has sold Genesys a while ago and they're independent now, just in case ;-)
Actually there is. Genesys Simulator Toolkit. It will enable to emulate an Avaya PBX or a Simple TDM scenario. Last version also includes as Genesys SIP Server emultaor.
You won't care too much about the PBX on the other side for basic integrations, your goal is to learn the SDK and the TEvents (TLib). You can achieve this with the Emulator. You need to ask it to a Genesys representative.

What is the technology behind Google Buzz?

I am really curious to know how Google Buzz and Facebook implement their comment feature which is being updated instantly. is it similar to Google wave technology? are there any resources to learn that technology and implement it to our website?
Thanks !!
I work on the Google Buzz team, so hopefully I can give you a good answer for our side of the equation. I obviously won't go into any of the confidential backend stuff, but I'm happy to address the open standards we use and the open source projects involved.
Starting in the UI space, we use technologies like Closure and GWT to build rich, responsive user interfaces. We use a technology vaguely similar to what you see in the Google App Engine Channel API to push real-time updates to the users. GAE is a really good choice for real-time web applications right now.
On the API side of things, we try to use open standards wherever possible. We use the Atom syndication format to enable feed readers to consume Buzz content, and Pubsubhubbub to enable real-time pushes of the content. In fact, we use Pubsubhubbub for our activity firehose — it's possible to subscribe to the entire real-time stream of all updates that happen in Buzz. Needless to say, this sends a massive amount of traffic to your application. On the JSON side of the equation, we use Activity Streams, and we're actively working with the community to refine and improve that specification. Our Atom feeds include Activity Streams as well, but the focus there is on syndication. All our secured API endpoints for Buzz use the OAuth standard for authorization.
On the backend, I think the only thing we're willing to say publicly is that Protocol Buffers are pretty awesome.
The technology is called Real-time web (http://en.wikipedia.org/wiki/Real-time_web). You have many application models to achieve real-time and one of them is Comet (http://en.wikipedia.org/wiki/Comet_%28programming%29). Good server to use it in your implementation is APE (http://www.ape-project.org/). It supports many common javascript frameworks. More you can check in provided links.

I want to program an IRC bot in node.js. What are the discrepancies between the networks?

I want to setup a trivia bot and while I know there are many other bots around ( Eggbot, various Python bots, Nerfbendr's Trivia Bot ), I want to do it for learning purposes too so I understand the protocol.
To save some time for myself, can anyone point out what differences there are between the various networks like Freenode, Efnet, Gamesurge? Do they all follow some standard protocol or do I have to branch out my commands per each network?
The basic IRC protocol (RFC 1459) is the same for all the networks.
Differences only appear when you get into things like nickname/channel registration, operator levels, services etc.
If your bot only sends and listens to messages, you will be fine if you only consider the IRC protocol. If you want it to interact with services and the like, you will have to see what each network you want to support uses and go from there.
All those network should (and i believe they do) follow the IRC RFC. So no, you should not need to program your bot for each network separately.