I have created an XMPP chat application for Android and iPhone. While testing the app in jwchat.org, users who are created from iPhone devices are shown as 'stalker', and Android usernames are shown as online / offline. What does 'stalker' mean? Because of this, messages are sent and received from Android to iPhone, but iPhone devices' messages are not recieved by Android devices. Can anyone please help me?
"Stalker" is an unfortunate term that is embedded in the user interface of your client, not a standard part of the protocol. It likely refers to people who are in your roster as type="from", which indicates that they are subscribed to your presence but you are not subscribed to their presence. If you want to change this state, send them:
<presence type='subscribe' to='stalker#example.com'/>
Once they accept with:
<presence type='subscribed' to='you#example.com'/>
You should have each other in the type="both" state on one anothers' rosters.
It sounds like a presence problem on the iPhone app -- that it is successfully logging in/authenticating to the xmpp server, but then failing to send an xmpp presence stanza.
Do you have any traces of the xmpp communication?
Related
I'm writing an app that use xmpp to exchange messagge between users. If I have two devices logged with the same account,any xmpp message is received only by one device, maybe the one with the fast connection? Anyway how I can do to ensure that any message will be send to any device connected with the receiver account? I'm using ejabberd server and XMPPFramework for ios.
You can login simultaneously in two different devices provided you are using different resource names when logging in. You can check sessions and resources the user has used to sign in on the server
I'm kind of starting programmer and on Objective-C. So I want to make an app for iOS that receives messages from a server. These messages are inputed manually, and send to all iOS connected to the server. People connected will receive a Push Notification, if they aren't connected to internet they will receive when they do and run the app.
So my question is: do I need to use a server to do this (sending messages for multiple iPhones)? In case of yes, with is the best server? TCP/socket?
If your only purpose behind using is to send push notifictaion message, then you dont need to spend on that. There are some service providers available which allow you to send notification from there website. for ex: you can use urbanairship. You need to register device token from your Xcode project using their SDK, and then you can send notification from their website.
Thanks!
Ok I know there are many possible duplicate questions but none answers my question.
According to Apple's App Store Review Guidelines (if it is the official one) I can only find 4 rules stating anything about messaging
5.5 Apps that use Push Notifications to send unsolicited messages, or for the purpose of phishing or spamming will be rejected
6.5 Apps that use Game Center service to send unsolicited messages, or for the purpose of phishing or spamming will be rejected
21.2 The collection of donations must be done via a web site in Safari or an SMS
22.6 Apps that enable anonymous or prank phone calls or SMS/MMS messaging will be rejected
According to me these rules does not restrict auto sending a message completely, if we have user's concern of sending the SMS.
Now I want to know is there's anyway that I can auto send SMS on a scheduled time when the app is suspended, like we can fire UILocalNotification?
If Yes then how and if No then why?
I also don't want to use any third party API or some server side programming. I want to send a simple SMS from phone.
No you can not send an e-mail or SMS via the Apple provided SDK without the user sending the messages.
You could setup your own mail server of SMS server to provide a solution to this, but you will not be able to do it with the Apple provided SDK.
The reason why this is implement this way is to protect the user, since you could just send 100 SMS to some kind of server number and thus make the user unaware of the costs.
Or you app could start spamming user with email by sending email without the users consent.
I have an iphone app where I want to use chat rooms. I've installed an XMPP server (ejabberd) and downloaded the XMPP framework for iOS from google code (http://code.google.com/p/xmppframework/). The server and client work as expected, since I'm able to log in and send chat messages between two users.
However, when I try to create a chat room using the createOrJoinRoom method of the XMPPRoom class (in XEP-0045), I don't get any reply from the server and the chat room is not created.
I've debugged to see what kind of package is sent to the server and it looks like this:
<presence from="test2#beta.bogus.net/mynick" to="muumit15#conference.beta.bogus.net">
<x xmlns="http://jabber.org/protocol/muc"/>
</presence>
I get no error message back but the chat room (muumit15) is not created. At the same time I can use e.g. Adium client to create a chat room and it succeeds. The server has been configured so that every user has a right to create chat rooms.
Any ideas? I even tried sniffing the TCP/IP traffic sent by the Adium client but that was encrypted/compressed/binary so I couldn't see what kind of packages it is sending.
See section 7.2.2 of XEP-0045, particularly Example 18:
<presence
from='hag66#shakespeare.lit/pda'
to='coven#chat.shakespeare.lit/thirdwitch'>
<x xmlns='http://jabber.org/protocol/muc'/>
</presence>
Note that the to address MUST contain a resource, and yours doesn't. The resource is the string after the /, which is used as your nickname in the room. For more information on the XMPP address format, see RFC 6122.
I am new to iPhone application development. In the application that I am developing for iPhone there is a module which sends the sms without knowing to the user to my sms server and gets the response and displays the result. Is there any way to send and receive sms message in app?
Thanks in advance.
You should use data instead of SMS.
SMS are not a way to send information between a client and a server, but Internet is. And by using data, you also get a much more reliable transfer protocol (SMS aren't).
You shouldn't send SMS without the agreement of your users, because it can become really costly. Imagine you have a user on vacation in another country, and think that your app is using wifi, while it is using SMS. This user will be really mad when he will get is cellphone bill.
So even if you can do it, I think you shouldn't. And if you really need to do this, be sure that it is really clear to the user that your app is going to send SMS from his phone (with the charge of a normal SMS).
This is not possible with the iPhone SDK as it stands. It's probably not possible with any mobile platform without the user knowing about it as it's an obvious security hole.
I am also working on GPS-based application and I can have the device stop sending SMS back to the user every time the user send an SMS command. I think as long as the SMS is sent, it should be fine.
If the user wants to see the status of the device, then I might have to establish communication between my server and the device via TCP/UDP and have the iPhone app "parse" the information and display the status. Perhaps the best way is to have the server respond to the iPhone app saying "The device received your SMS command" and display it on the app so that the user knows his/her SMS were sent.
But yes, if we could get the location via SMS, then I could send those coordinates to the Google Maps app in the iPhone itself and it would display it for you.
I am the author of an App on Android which does this, called ImHerePlus. Check it out and see if it helps.