Yahoo SMS Specification
From YChatSharpWiki
Contents |
Introduction
SMS facility introduced in YMSG version-9 is one of the best ways to send SMS to your friends all over the world. Although Yahoo Messenger supported it for three releases now, not many chat client(actually with an exception of a YahELite) added SMS feature. We would like to show you how to send and receive Yahoo Messenger style SMSes to mobile numbers of your friends and foes. So lets begin
Validation
Example below shows for a random number served by TMobile : 15163032083
First Yahoo Messenger sends a HTTP POST method to http://validate.msg.yahoo.com/ with POST data as : POST /mobileno?intl=us&version=9.0.0.2112 HTTP/1.1\r\nCookie:Y=v=...(and the rest of the cookies); path=/; domain=.yahoo.com; T=z=<TCookie Value>User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n Host:validate.msg.yahoo.com\r\nContent-Length:106\r\nCache-Control:no-cache\r\n\r\n<validate intl=”us” version=”9.0.0.2112” qos=”0”><mobile_no msisdn=”15163032083”></mobile_no>\r\n</validate>
Do remember to send it thrice to verify if the number is being served by Yahoo services and is a valid number. This is to ensure there is no mistake from the server side
Acknowledgement
Once the validation XML is sent through POST HTTP method, we receive a response from validate.msg.yahoo.com which looks like the following XML sequence
<validate>
<mobile_no msisdn = “15163032083”>
<status>Valid</status>
<carrier>pcsms.us.tmobile</carrier>
</mobile_no>
</validate>
<status> </status>: this node tells us if the phone number is a valid number/is being served by Yahoo SMS facility
<carrier></carrier> : this is an important node in this and will be used in SENDING and RECEIVING SMS through YMSG protocol
Sending SMS
Sending an SMS once finished with validation is an easy step for anyone writing their own Yahoo Client.
The Yahoo packet stripped after header is as follows: “À€” is the regular field delimiter
So if my user id is lost_protocol then any SMS sent to 15163032083 goes through to yahoo messenger chat server and then routed to the mobile carrier.
YMSG Version: 16
Service Number : 746
Packet: 1lost_protocol69lost_protocol51516303208368pcsms.us.tmobile14<SMS MESSAGE>
1 : From User
69: From User
5: Mobile Number
68: Carrier details got from Authentication Step
14: SMS Message
Receiving SMS
From 15163032083 to lost_protocol when lost_protocol is online
YMSG Version : 16
Service : 746
Packet: 4151630320835lost_protocol14<SMS>68pcsms.us.tmobile690
4: From number
5: User Name
14: SMS Message
68: Carrier
69:
Retreiving OFFLINE SMS
From 15163032083 to lost_protocol
YMSG Version: 16
Service: 746
Packet: 4151630320835lost_protocol14<SMS>15126677272968pcsms.us.tmobile3391
4: Mobile Number From
5: To Username
14: SMS Message
15: 1266772729(we don’t know what this is actually)
68: carrier name
339: 1 (we don’t know what this is either)
Authors:
LoSty Aka LoSt_PrOtOcOL
WickedCoder
