How to use recording feature using Twilio Client (VoIP) - node.js

I am using Twilio Client (VoIP) with nodejs for making a call from my device to a phone.
I want a recording functionality also with this but I don't see this API supports it.I see rest API which supports this but then it not supports VOIP.
can someone please provide a sample code or any help for this.
very sorry for a silly question but I am new to programming.
Thanks in advance.

The JavaScript Client is actually not making the recording but the TwiML does. You setup your device and establish a connection to Twilio. Audio from your device's microphone is sent to Twilio, and Twilio plays audio through your device's speakers, like on a normal phone call.
This is analogous to the way Twilio handles incoming calls from a real phone. All the same TwiML verbs and nouns that are available for handling Twilio Voice calls are also available for handling Twilio Client connections.
So assuming that you are calling a customer's number and want to record the call, you will need to pass this instruction in the TwiML, i.e:
<Response><Dial record=true>[Number to call]</Dial></Response>
Or in node.js:
resp.dial({
record:'true'
});
After the recording is complete, it gets assigned a recording SID just like recordings created via the verb, and you can fetch it via the REST API as documented here:
https://www.twilio.com/docs/api/rest/recording#list

Related

Twilio - Understanding if outbound call is transferred by receiver

Using Node.JS and the Twilio API I can easily see when a transfer initiated by my Twilio code is answered using Call Status Events. But, what if the person I am calling transfers my call?
Is there anything in the Twilio API that will tell me the call is being transferred, is currently on hold, and when that transfer is answered?
Desired Flow:
Twilio Bot calls Number
Receptionist answers
Twilio Bot asks to speak with a salesperson
Receptionist says they will transfer the call, and begins the transfer
Twilio Bot is put on hold and hears Silence/Ringing/Music/Automated "pease wait. You are # in the que" messages
Salesperson answers
Twilio Bot greets and continues the conversation with Salesperson
This is not possible.
The information is hidden behind the receptionists PBX, and not exposed outside that platform. The transfer is basically invisible to Twilio or any external parties from a signaling perspective.

Twilio Programmable Chat WebSocket connection

I am working to integrate Twilio Programmable Chat into a Qt/QML application - meaning I cannot readily use the Javascript Client SDK. I would like to have features like typing indicator, token expiration notices, etc. handled in my client.
In the examples, the client sdk initiates a WebSocket connection directly to Twilio and receives events like token expiration, etc. directly.
Twilio seems to provide a number of SDKs that abstract the majority of features (read receipt, typing indicator, access-token), for Javascript, iOs, and Android.
However, it appears that their "server-side" wrappers (helper libraries) offer limited functionality only for accessing REST aspects of API, and not WebSockets.
As I am working in QML I cannot just drop a remote Javascript library into a webpage and start building a client (The Javascript inevitably does not act the same).
Does Twilio provide any documentation for access it's Programmable Chat WebSocket connections directly? I could also build my own NodeJS WebSocket wrapper around a library, however, twilio-node just looks like a wrapper around the REST API as well.
Twilio developer evangelist here.
The websocket API is not a documented API or protocol and it is not recommended to build against it as undocumented changes may break your implementation.
It is true that the server side libraries only cover the REST API. You can also receive events from the Chat API using the webhooks that are available.

Linux SIP Client just to get incoming number

I'm looking for a SIP client based on linux (console only, debian if possible) for one simple goal : To let my CRM app know what is the incoming call number.
There is no need to use voice, autoresponder, etc., I just need to get the incoming call number send somewhere (fill a file with the number, add a row in a sql database, a curl request to my CRM or anything else like that)
Do you know a SIP client that can let me do this ?
Is your intent to receive a SIP INVITE and identify the calling number using this? Because you mentioned you don't need Voice or anything else, a simple SIPP kind of test tool should be fine.
Or do you want to test it over the mobile Network and hence want to use a VoIP Client. or just use the freeware of Xlite etc from either a desktop or mobile device.

Is it possible to have a J2ME app get an SMS and send it to a computer?

That's basically my question, I have written the code for sending/receiving SMS but it's basically a "server/client" so I can't get the SMS that are sent directly to the phone number instead of through the j2me program. Is it even possible?
It is quite possible to write an app that receives an incoming SMS, extracts the message and sends it to server through a HTTP call. You can then make that server send that SMS to another phone.
Using the Wireless Messaging API (JSR 120) you can receive SMS to a JavaME application. However, you must register to receive SMS on a particular port, and you cannot read SMS from the phone's standard inbox.
Register:
import javax.wireless.messaging.MessageConnection;
MessageConnection connection =
(MessageConnection) javax.microedition.io.Connector.open("sms://:1234");
There are 2 different methods of receiving SMS:
event-driven using javax.wireless.messaging.MessageListener
using blocking method javax.wireless.messaging.MessageConnection.receive()

Sending SMS using Java ME application

I want to a Java ME application that transfers any SMS received to a PC using bluetooth. The PC can then direct the Java ME application via bluetooth to send a response SMS. Is there library available for this architecture or I have to design it myself?
Is this approach correct or a better one exists? I want to use bluetooth as then I will not have dependency on the cable.
You'll need to create this yourself, however you'll find that you can't do what you want with J2ME.
J2ME can't access any old SMS that the handset receives, only ones sent to a specific port upon which the MIDlet is listening. So to get all the other SMSes, create a bluetooth serial/dial-up connection to your handset in the way I've described in this answer.
Create a PC client which repeatedly issues AT+CGML commands (as described in the AT command set document linked to in the answer above), to see when an SMS has been received. Use AT+CGMR to read and parse the message text. Then use AT+CGMS to sent a response. This can all be done over bluetooth.
It's better to use the serial connection to send a response, because a MIDlet cannot usually be triggered to open based on incoming bluetooth data.
Hope this helps.
You may have already achieved your task, anyway for the reference I think it is much better if you try using Gammu . I'm using it for the same task (Send / receive SMS through PC ) with a simple bat file I have written, works like a charm.
Anyway you don't need any J2me program for this.
Wammu takes care of making the connection to phone and sending AT commands.

Resources