Sorry, just found that:
http://www.openmobilealliance.org/tech/affiliates/wap/wap-247-pap-20010429-a.pdf

See 5.5:
A CCQ is not even delivered to the phone! It is entirely handled inside the PPG!
So no access to the PPG means no CCQ.
For CCQ specific informations see also 8.10 and 8.11

Regards
Falko

2008/8/20 Falko Ziemann <[EMAIL PROTECTED]>:
> Hmm, the whole thing sounds strange, because a normal SMSC can't
> provide (nor forward) ccq informations.
>
> Let me give you an example from real life:
> Let's say you want to show a wappage with a GIF file on an unkown device.
> The device does only support JPG, but the Wapgateway has a gif2jpg
> converter. Then the ccq request would return, that the device supports
> jpg and gif, because the Wapgateway thinks "Ha! I can handle that!".
> So the ccq is in reality a mixture of device and gateway function. And
> I have never ever seen a SMSC that knows the functions of a
> Wapgateway.
>
> So, whatever the MNO wants you to do is a special solution and not
> compatible with GSM specifications.
>
> Regards
> Falko
>
> 2008/8/20 Calle Kabo <[EMAIL PROTECTED]>:
>> Yeay, I poked at a few things and now actually got it working with the
>> Service Indication.
>> Now on to next question: how do I send a ccq-message?
>> How is the XML formatted? Here's something I found in the code
>> (wap_push_pap_mime.c):
>> --------------------------------
>> /*
>>  * PAP, Chapter 8 states that PAP multipart message MUST have at least two
>>  * parts, control entity (containing the pap control message) and content
>>  * entity (containing the push message). So we must have at least one body
>>  * part here, and at most two (MIME grammar in rfc 2046, appendix A sets no
>>  * limitations here).
>>  * Input: mime content, part boundary
>>  * Output: Push content, rdf content if present, content headers. In addi-
>>  * tion, modified mime content (without parsed parts).
>>  * Returns 1, if rdf content was present
>>  *         0, if it was absent
>>  *         -1, when error
>>  */
>> static int parse_encapsulation(Octstr **mime_content, Octstr *boundary,
>>                               Octstr **push_data, List **content_headers,
>>                               Octstr **rdf_content)
>> {
>> --------------------------------
>>
>> But I can't find a DTD for how the ccq should be formatted! I can only find
>> SI and SL DTDs. This leads me to believe that there should be no second part
>> containing the ccq, and the PPG should act only on the information in the
>> PAP and do a ccq from that.
>> Is this right or can anybody show how the XML should be formatted? :)
>> Thanks!
>>
>> Best Regards,
>> Calle Kabo
>>
>> 20 aug 2008 kl. 08.29 skrev Calle Kabo:
>>
>>> 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
>>>>>
>>>>>
>>>
>>>
>>
>>
>>
>

Reply via email to