Thanks for the answer!
That put me on the right track :)
However the operator does not provide public access to their PPG.
They told me to set up my own PPG and that PPG can then talk SMPP with
their SMSC.
Here is what I'm POSTing to my PPG (http://myhost/wappush)
-----------------------------------
<?php
require_once "HTTP/Request.php"; // PEAR package
$req =& new HTTP_Request("http://myhost/wappush");
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addHeader('Content-Type', 'multipart/related; type="application/
xml"; boundary="myBoundary"');
$xml = '--myBoundary
Content-Type: application/xml
<?xml version="1.0"?>
<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 1.0//EN" "http://www.wapforum.org/DTD/pap_1.0.dtd
">
<pap>
<push-message push-id="2e4a21">
<address address-value="WAPPUSH=+4670XXXXX/TYPE=PLMN"/>
</push-message>
</pap>
--myBoundary
Content-Type: text/vnd.wap.si
<?xml version="1.0"?>
<!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN" "http://www.wapforum.org/DTD/si.dtd
">
<si>
<indication si-id="si2e4a21" href="http://m.myhost.se/">
test
</indication>
</si>
--myBoundary--';
$req->addRawPostData($xml);
$req->sendRequest();
?>
------------------------------------
Here's what I get back:
-----------------------------------
<?xml version="1.0"?>
<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 1.0//EN" "http://www.wapforum.org/DTD/pap_1.0.dtd
">
<pap>
<push-response push-id="2e4a21" sender-name="lost02.linksys; WAP/1.3
(Kannel/1.4.1)" reply-time="2008-08-20T06:06:49Z" sender-address="/
wappush">
<response-result code ="1001" desc="The request has been accepted for
processing"></response-result>
</push-response>
</pap>
----------------------------------
Here's what I see in my wapbox-log:
-----------------------------------
2008-08-20 08:06:49 [2291] [11] DEBUG: HTTP: Creating HTTPClient for
`195.24.XXX.XXX'.
2008-08-20 08:06:49 [2291] [11] DEBUG: HTTP: Created HTTPClient area
0x8193e70.
2008-08-20 08:06:49 [2291] [14] INFO: PPG: Accept request </wappush>
from <195.24.XXX.XXX >
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: http_read_thread: pap
multipart accepted
2008-08-20 08:06:49 [2291] [14] INFO: client address was <
+4670XXXXXX>, accepted
2008-08-20 08:06:49 [2291] [14] DEBUG: PAP COMPILER: doing semantic
analysis for address type a phone number
2008-08-20 08:06:49 [2291] [14] DEBUG: PAP COMPILER: network orbearer
missing, reverting to GSM+SMS
2008-08-20 08:06:49 [2291] [14] INFO: reverting to default bearer and
network
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: http_read_thread: pap
control entity compiled ok
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: transform_message: push
message content and headers valid
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: push machine 0 created
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: store_push_data: push
machine 0 appended to unit push list
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: send_push_response:
telling pi
2008-08-20 08:06:49 [2291] [14] DEBUG: HTTP: Destroying HTTPClient
area 0x8193e70.
2008-08-20 08:06:49 [2291] [14] DEBUG: HTTP: Destroying HTTPClient for
`195.24.XXX.XXX'.
2008-08-20 08:06:49 [2291] [14] INFO: PPG: handle_push_message: push
message accepted for processing
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: OTA request for unit push
2008-08-20 08:06:49 [2291] [14] INFO: PPG: unconfirmed push delivered
to OTA
2008-08-20 08:06:49 [2291] [14] DEBUG: PPG: destroying push machine 0
2008-08-20 08:06:49 [2291] [9] DEBUG: OTA: event arrived
2008-08-20 08:06:49 [2291] [9] DEBUG: OTA: made connectionless session
service request
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP (UNIT): event arrived
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP_UNIT: Connectionless push
accepted
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP: Mapping `application/
vnd.wap.sic', WSP 1.2 to 0x002e.
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP: Mapping `User-Agent', WSP
1.3 to 0x0029.
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP: Mapping `Accept-Encoding',
WSP 1.3 to 0x003c.
2008-08-20 08:06:49 [2291] [2] ERROR: WSP: Do not know how to encode
header type 60
2008-08-20 08:06:49 [2291] [2] WARNING: Skipping header: Accept-
Encoding: gzip
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP: Mapping `Content-Length',
WSP 1.3 to 0x000d.
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP: Mapping `Content-Type', WSP
1.3 to 0x0011.
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP: Mapping `Encoding-Version',
WSP 1.3 to 0x0043.
2008-08-20 08:06:49 [2291] [2] DEBUG: WDP (wapbox): delivering 1
segments to bearerbox
2008-08-20 08:06:49 [2291] [2] DEBUG: WSP (UNIT): delivering to wdp
2008-08-20 08:06:49 [2291] [0] WARNING: Received other message than
wdp/admin, ignoring!
---------------------------------------
And I don't see any Service Indications popping up on my phone :/
Suggestions? :)
Best Regards,
Calle Kabo
19 aug 2008 kl. 10.00 skrev Falko Ziemann:
No, that's not the way.
The message is not handled by an SMSC but it is a Wapgateway
internal function.
You send the query and the Wap-Gateway tells you, what it has stored
about the device. So you can only use this form of query if the device
is provisioned at your Wapgateway (mind: a PPG is meant to be one part
of a Wapgateway an should - in theory - only handle messages for "his"
devices, but the most "misuse" it to generate Pushmessages for
external applications). So you have to generate a PAP message and send
it to the MNOs PPG (don't worry it's simple XML, but you need access
to the PPG).
Regards
Falko
2008/8/19 Calle Kabo <[EMAIL PROTECTED]>:
Hi,
I'm trying to make a "client capabilities query". But I can't find
any info
on how to do it. :/
Is this how the communication should be?
* POST a PAP formatted document to http://myKannel/wappush
containing my
ccq-element
* That url fires up my PPG which sends the message to the operator
via the
operators SMSC
* Operator performs the ccq and replies with the capabilites
* A PAP formatted document containing the capabilities of the phone
is
returned as a response to the initial POST.
If this is not the correct flow, please tell me the correct one.
Also, please tell me if there is anything I should know on how to
format the
ccq-message. I can't seem to find the info. Or does Kannel generate
that
xml?
The documentation is really not very complete on this :/
Best Regards,
Calle Kabo