Twilio Programmable Wireless - Message Blocking is active - twilio

I am working with the NB Alpha Kit from Signal 2018. The SIM is connected to the T-Mobile network (blue LED on):
AT+COPS?
+COPS: 0,0,"T-Mobile",9
OK
When I try to send a command from the SIM I get:
AT+CMGS="2936"
> HELLO
+CMGS: 7
OK
When I try to send from the API, the Command stays in a queued status and when I try to recieve it with the SIM, I get:
AT+CMGL
+CMGL: 0,"REC UNREAD","2936",,"19/09/10,00:14:10-20"
Free Msg: Unable to send message - Message Blocking is active.
OK
Any ideas on how to get messages flowing?

Twilio developer evangelist here.
The NB-IoT network is not intended for communications use and thus doesn't support SMS at this time. The message you sent from the SIM likely didn't go anywhere either.
However, we recognise that you should receive an error message when trying to send messages to a SIM that doesn't support it. We will look into making that an error in the API rather than queueing and never sending the message.

Related

Twilio - Super Sim - Incoming SMS to Sim card

I am trying to achieve 2 way messaging with a super sim. I have been able to successfully configure sms received on my virtual Twilio number to be delivered to my sim by Http post (with authentication).
I would like to find a way to send an SMS from the sim and receive the SMS at a specific phone number. I've tried several flows without any success. I was able to get this working on Make.com and retrieve the data structure of the webhook but I still cant get this working on Twilio.
Thank you for the reply.
The sim is in an iot device and I am able to achieve 2 way communication utilizing webhooks with make.com. What I would like to achieve is to utilize a virtual number with Twilio to be the associated number for the iot device.
I have successfully received incoming "SMS" messages (commands) to the iot device, using a studio flow. When an sms is received via my virtual number number on twilio, the studio flow fires an https Post with the appropriate payload, populated from the received webhook from the virtual number., in turn receiving the "SMS" on the iot device.
Now I would like to create a flow or something similar on Twilio, that would generate a Twilio webhook that would listen for SMS commands (replies) "sent from" my appropriate Super Sim.
On Make.com I am able to generate the webhook and analyze the data structure, successfully receiving the payload of the webhook, from my Sim Fleet. I would like to utilize only Twilio for the webhooks, if possible. Do you have any more suggestions? Thank you in advance.
The Twilio Super Sim is not intended for use in a phone and does not support voice or regular SMS.
The Super Sim does support sending and receiving command (machine to machine, M2M) messages over SMS which can be used to send instructions to the device or receive data from a device. In this case the sim card can send messages to the number 000 and those messages will be received by Twilio and turned into a webhook request.
There is some documentation for how to send command messages from the Super Sim from a Raspberry Pi 4 or Raspberry Pi Pico and an in depth article on AT Commands that you can use to control the Sim.

Twilio Device Cannot Be Connected : Twilio Js

I have an issue regarding Twilio Javascript SDK and stuck in a
situation where the issue directly involve IOS and RTC support. Right
now, i cannot connect the twilio device after device is ready. There
is no error or anything to track/debug.
Constantly, running the connection.status() return back connecting always. I think the signaling system works when there is an incoming call but again, connection.accept() and status remain connecting like forever.
Application Overview
Cordova/Phonegap app
https://media.twiliocdn.com/sdk/js/client/releases/1.6.9/twilio.min.js
shim:https://webrtc.github.io/adapter/adapter-1.0.2.js
https://github.com/BasqueVoIPMafia/cordova-plugin-iosrtc
Possible reasons: Can this be directly CSP issue? or I have you setup configuration using STUN/TURN?
Let me know if you need any information. It's not going to resolve because there is no error just "connecting" status.

OBD-II iOS WiFi Connection

I am trying to write an iOS application that connects to an OBD-II Interface over WiFi (specifically the OBDLink MX WiFi Scan Tool). I have written some basic socket code taken and I am able to open a socket to 192.168.0.10:35000. I receive the NSStreamEventOpenCompleted for both input and output streams.
The first event that fires shortly after is the NSStreamEventHasBytesAvailable. I attempt to read the stream, but the length comes back 0. My question is what is the flow of execution for communicating with these devices? I have tried to issue an ATZ\r command, but nothing is happening (no stream events are firing).
How do I know if if I am connected and the OBD-II interface is ready?
The usual command terminator is ˋ\r\nˋ, so first try sending ˋATZˋ with this command. Only send, after you have received the HasSpace notification from the ˋNSOutputStreamˋ.
Another alternative to communicate with this device would be this Car Diagnostics API, access to the API can be found on
https://github.com/HellaVentures/Car-Diagnostic-API

Losing messages over lost connection xmpp

i went through this question
Lost messages over XMPP on device disconnected
but there is no answer.
When a connection is lost due to some network issue then the server is not able to recognize it and keeps on sending messages to disconnected receiver which are permanently lost.
I have a workaround in which i ping the client from server and when the client gets disconnected server is able to recognize it after 10 sec and save further messages in queue preventing them from being lost.
my question is can 100% fail save message delivery be achieved by using some other way i know psi and many other xmpp client are doing it.
on ios side i am using xmppframework
One way is to employ the Advanced Message Processing (AMP) on your server; another one is to employ the Message Delivery Receipts on your clients.
The former one requires an AMP-enabled server implementation and the initiating client has to be able to tell the server what kind of delivery status reports it wants (it wants an error to be returned if the delivery is not possible). Note that this is not bullet-proof anyway as there is a window between the moment the target client losts its connectivity with the server and the moment the TCP stack on the server's machine detects this and tells the server about it: during this window, everything sent to the client is considered by the server to be sent okay because there's no concept of message boundaries in the TCP layer and hence if the server process managed to stuff a message stanza's XML into the system buffers of its TCP connection, it considers that stanza to be sent—there's no way for it to know which bits of its stream did not get to the receiver once the TCP stack says the connection is lost.
The latter one is bullet-proof as the clients rely on explicit notifications about message reception. This does increase chattiness though. In return, no server support for this feature is required—it's implemented solely in the clients.
go with XEP-0198 and enjoy...
http://xmpp.org/extensions/xep-0198.html
For a XMPP client I'm working on, the following mechanism is used:
Add Reachability to the project, to detect quickly when the phone is having connectivity problems.
Use a modified version of XEP-0198, adding a confirmation sent by the server. So, the client sends a message, the server confirms with a receipt. Later on, the receiving user will also confirm with a receipt. For each message you send, you get two confirmations, one from the server, one from the client. This requires modifications on the server of course.
When the app is not connected to the XMPP server, messages are queued.
When the app is logged in again to the XMPP server, the app takes all messages which were not confirmed by the server and sends them again.
For this to work, you have to locally store the messages in the app with three possible states: "Not sent", "Confirmed by server", "Confirmed by user"

Chat between two iphones

I am looking to create a chat app so that two iphones/mobile can chat with each other.
Can someone please head me in the right direction ?
1. Should I try to connect two devices directly using HTTP or TCP
2. Or should the communication pass through a server i.e. one phone sends the message to the server and server then push the message to other phone ?
If you can tell me any libraries/api that I should use, that would be greatly helpful too.
Or should the communication pass through a server i.e. one phone sends the message to
the server and server then push the message to other phone ?
That's the usual approach. A server with a known address is easy to find; mobile phones that move from one network to another and frequently change their addresses are not. Also, you can keep a server running all the time, so that when one device sends a message, the server receives it and stores it until the other device becomes available. If you were to try to run your chat program on the phones all the time, you'd quickly deplete the batteries.

Resources