how to capture GTalk data with Asterisk? - asterisk

im working in a IVTR via Asterisk and gtalk chat (using the chat box in gmail ) , the configuration of gtalk account and jabber are working almost perfectly except when i want capture data from the chat.
Using JABBER_RECEIVE method i'm able to capture chat text but if nothing was received and the timeout is over, Asterisk crash.
i've no idea of what's going on , is there another way (method or agi) to capture gtalk chat in Asterisk without crashing?
i'm using Asterisk 1.8.3 in CentOS 6.2.

I'm not sure what you mean by "capture gtalk chat".
If you want to display - for debugging purposes only - the XMPP messages that are sent to/from GTalk, you can use "jabber set debug on". This will dump as DEBUG messages to the Asterisk logs/CLI all XMPP messages.
Crashes are a "bad thing". While res_jabber in Asterisk 1.8 is a community support module, you may still want to report any crashes to the public issue tracker. Since this is a crash, you'll be asked to provide a properly generated backtrace - instructions for doing so can be found on this wiki page here.

Related

Thinger.IO endpoints return "rate limit reached" without any further explanation

I have a couple of IoT devices hosted on Thinger.IO and as part of their code execution from time to time they try to invoke thinger.io endpoints. This basically is their way of letting you connect with your business back-end services and handle IoT devices events.
It basically looks something like this:
as here at step 3 we make a reference to Thinger.IO's input resources. This basically lets your back-end to invoke functions on your IoT device. The issue that I am facing right now is related to step 2
My endpoints just stopped getting invoked. When I try to test the endpoint using their embedded client:
I get an error which is saying:
I don't really understand that. The last time an endpoint was invoked was on the 27th of February (5 days ago) and since then I've had my device completely turned off.
SIDE NOTE: The problem is not with my back-end because we can successfully invoke the endpoint using Postman.
Thee free cloud (community version) of Thinger.io has some rate limiters to throttle requests per user. However, it seems that you are not reaching those limits, so it should be a bug introduced in latest release 2.9.9 in Community Version. Will look into it. Thanks for reporting.
Edit: It should be fixed now in 2.9.91 version. Consider using a private cloud instance if you are connecting a couple of devices ;)

Amazon Alexa Skills Fallback intent not working

I'm reading the docs for Alexa Skills and there seems to be a fallback intent
https://developer.amazon.com/docs/custom-skills/standard-built-in-intents.html#fallback
I've turned it on in my app (added to the list of intents), but when I enter an unknown command in the test area (either by voice or by typing) all I'm getting is an annoying error sound and no request is sent to my server. I was expecting to receive an Amazon.FallbackIntent request on my server.
UPDATE: more complete answer here: Why does the Fallback Intent not get called if you say ONE random word?
FallbackIntent is designed to catch out-of-domain requests when you're in your skill session. From what you describe it sounds that you're typing garbage in the simulator before opening your skill.
In order to test it, open your skill in the simulator ("alexa open xxxxx"), respond from the backend without closing the session and then try entering/saying garbage.

Automated system testing for chromecast receiver application

I am wondering if there is a good way of making automated system testing for a Chromecast receiver application?
If you open the application URL in a Chrome browser, the cast_receiver library cannot find the websocket connection on:
ws://localhost:8008/v2/ipc
Since this handles the communication between the app and the Chromecast hardware, I am thinking of something like a Node.js websocket server that can talk to the chromecast receiver app. Is there such a system, or do anyone know if there are plans of google releasing something for this kind of testing?
Also, would there be other problems related to the difference between the chromecast browser and chrome browser? As I understand, the chromecast browser is just a subset of chrome, which makes me think it should work.
No, there is no easy way to do this.
DISCLAIMER: I haven't tried any of what I'm about to suggest. It's also probably a terribly idea as Google could change the protocol any time and in any fashion they desire since it isn't a public thing.
BIG DISCLAIMER: You may be in violation of the ToS by doing this as Section 3.2 (Developer Policies) states that you "may not ... develop a standalone technology ... any functionality of any Google Cast Receiver". Possibly, you'd be making a standalone piece of technology that replicated the IPC functionality. But I don't know. I'm not a lawyer.
If you want to go and do this, I'd suggest making a copy of the Google Cast Receiver SDK (www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js as of April 28, 2015) and altering it so that it logs out the messages that are being sent and received.
Luckily, it appears that we have logging messages to help us find the relevant code.
The receiving method has the string "Received message". I would guess that "a.message" is what is being received.
The sending method has the string "IPC message sent". I would guess that "a" is what is being sent.
Once you've instrumented your copy of the code, you need to publish it somewhere that your receiver app can see it and then you need to edit your receiver app to point to your new and improved SDK. Please please please make sure that you do this on a non-published app for testing purposes only.
Once that is done, you need to find some way to get your messages out of the code and into something that you can access. You have a few options.
Fiddle around with the code more and figure out how to get the Chromecast to log out the data you want;
Store the information in an array and read it using the debugger;
Open your own socket (or websocket) and send that data to a server that you control.
From here, you can run your app, interact with it, and then have a complete record of the IPC messages that were sent and received. Armed with this, you can create your own Fake-IPC server that listens for specific messages and spits out the stuff that is in your log.

Code to implement personal voicemail in Skype

I have a project where I will be receiving Skype calls from certain set of Skype users.
The user needs to be responded by a pre-defined message and then based on response will be directed to next stop (agent or call or another pre-recorded message).
I did found lot of DTMF and IVR implementation of Skype and tried implementing them, Everything works but the problem comes in playing the recorded message as Skype call response.
Can somebody please help me how to write a C# code to change the audio source of skype to play a wav or mp3 file?
I have checked:
http://devforum.skype.com/t5/Desktop-API/Event-for-incoming-call/td-p/9174
http://community.skype.com/t5/Desktop-API-former-Public-API/Sending-Audio-in-Skype/td-p/422
Send audio over skype call
to name some.
Can implement everything except playing the audio as skype response.
Please help.
I have done this thing using C#. if your call varrialbe is CurrentCall:
TCallIoDeviceType DeviceType = TCallIoDeviceType.callIoDeviceTypeFile;
CurrentCall.set_InputDevice(DeviceType, audio_file_directory);
Audio files must be mono WAV-s files.

QueueMetrics, qLoader, and Asterisk not talking correctly

I have 2 servers, one with QueueMetrics installed and the other with Asterisk and qLoader. Both of these servers are able to communicate with each other and pass data back and forth. The problem that I am running into is that when adding an agent to a queue, neither Queuemetrics or the Asterisk server is recognizing that the agent is being added. I can make a call into the queue and see it being offered to the queue in real-time in QM. When I try to add an agent to the queue, QM says that the agent is being added. When watching the real-time monitor after the agent is added, the agent just never shows up as logged in. I have checked the MySQL database as well and it never shows the agent as being logged in either. I am unsure at this point what is causing the issue, and whether it is that the agent isn't being add to MySQL because of QM or because the agent available isn't being sent to the Asterisk server.
Any help would be greatly appreciated.
i think you need read something about queues setup and check your setup. For example this book: http://cdn.oreilly.com/books/9780596510480.pdf
Unfortanly no way troubleshoot your install without see config&debug.
QueueMetrics uses two different channels to work with the server: it reads data from the queue_log through qloader (and that is working for you) and uses AMI plus a custom Asterisk dialplan to perform actions like logging-on agents.
You can test the AMI and whether the dialplan is included through the DbTester tool - see http://queuemetrics.com/manuals/QM_UserManual-chunked/ar01s20.html#DBTEST - note that you may need to edit the supplied dialplan to match the format of your channel names. Qm is very flexible, but you need to tell it how your environment is set-up.
Or just keep an Asterisk CLI open when trying to log in agents and see what happens.

Resources