Skip to content
mgp25 edited this page Oct 6, 2015 · 7 revisions

Nodes

Note: tx means transmitted and rx received.

Navigation:

Login nodes

Stream features

tx  <stream:features>
tx    <readreceipts></readreceipts>
tx    <groups_v2></groups_v2>
tx    <privacy></privacy>
tx    <presence></presence>
tx  </stream:features>

Sending authentication

tx  <auth mechanism="WAUTH-2" user="34123456789">?34123456789????Q???č?\?v?l$1444056358</auth>

Receiving challenge

rx  <start from="s.whatsapp.net"></start>

rx  <stream:features></stream:features>

rx  <challenge>?!?S??x?~?????fCR"?</challenge>

Our response

tx  <response>yD??5͔݃??pS	??k>jxy??4b?s??q?</response>

If everything went right, you will receive a success node. Next challenge it's in success node data

rx  <success t="1444056358" props="4" kind="free" status="active" creation="1440960194" expiration="1472496194">?0?$???
                                       R[?l??eC??.</success>

Sending our presence, this is our nickname in push notifications.

tx  <presence name="Chat API rocks!"></presence>

Pending messages and notifications. Before this node, you will have pending messages or notifications, in my case 67.

rx  <ib from="s.whatsapp.net">
rx    <offline count="67"></offline>
rx  </ib>

Our presence.

rx  <presence from="[email protected]"></presence>

Server properties

Request

tx  <iq id="1" type="get" xmlns="w" to="s.whatsapp.net">
tx    <props></props>
tx  </iq>

Response (this changes denpending the platform, by default we use Nokia)

rx  <iq from="s.whatsapp.net" type="result" id="1">
rx    <props version="4">
rx      <prop name="timeout" value="300"></prop>
rx      <prop name="force_long_connect" value="0"></prop>
rx      <prop name="upload_oom_hprof_enabled" value="1"></prop>
rx      <prop name="wbarchive" value="1"></prop>
rx      <prop name="e2e_images" value="1"></prop>
rx      <prop name="e2e_groups" value="1"></prop>
rx      <prop name="e2e_blists" value="0"></prop>
rx      <prop name="mspes" value="1"></prop>
rx      <prop name="plaintext_reenable_threshold" value="5"></prop>
rx      <prop name="plaintext_disabled" value="1"></prop>
rx      <prop name="source" value="1"></prop>
rx      <prop name="location" value="0"></prop>
rx      <prop name="readreceipts" value="1415214000"></prop>
rx      <prop name="qr" value="1"></prop>
rx      <prop name="groups_v2" value="1"></prop>
rx      <prop name="lists" value="1"></prop>
rx      <prop name="library" value="0"></prop>
rx      <prop name="allow" value="all"></prop>
rx      <prop name="call" value="1"></prop>
rx      <prop name="audio" value="1"></prop>
rx      <prop name="checkmarks" value="0"></prop>
rx      <prop name="newmedia" value="0"></prop>
rx      <prop name="video_max_edge" value="960"></prop>
rx      <prop name="image_max_kbytes" value="5120"></prop>
rx      <prop name="image_quality" value="80"></prop>
rx      <prop name="image_max_edge" value="1600"></prop>
rx      <prop name="media" value="16"></prop>
rx      <prop name="broadcast" value="50"></prop>
rx      <prop name="max_subject" value="25"></prop>
rx      <prop name="max_participants" value="101"></prop>
rx      <prop name="max_groups" value="9999"></prop>
rx    </props>
rx  </iq>