The only differences I see are on this part, this is your code:
'<push-message push-id="'.$wap_push_id.'">'."\r\n\t".
'<address
address-value="WAPPUSH=+'.$country_code.$phone.'/TYPE=p...@ppg.nokia.com"/>'."\r\n\t".
'<quality-of-service delivery-method="unconfirmed"
network-required="true" network="GSM" bearer-required="true"
bearer="SMS"/>'.
"\r\n</push-message>\r\n".
"</pap>\r\n\r\n".
This is my original code:
'<push-message push-id="'.$wap_push_id.'">'."\r\n".
'<address
address-value="WAPPUSH=+'.$country_code.$phone.'/TYPE=PLMN@xxxxxxxxxxxxx"/>'."\r\n".
'<quality-of-service delivery-method="unconfirmed" network="GSM"
bearer="SMS"/>'.
"</push-message>\r\n".
"</pap>\r\n\r\n".
On the first 2 lines you added a \t, not sure if that would affect,
don't think so, but I had a hard time getting my original code to work,
since PPG was very picky about the line breaks and line feeds
On the third line you added network-required="true" and
bearer-required="true", I guess you checked those are valid options
On the 4th line you added a \r\n at the beginning, although it would
make sense for that one to go, it may be the one breaking the thing.
As I mentioned, I spent lots of time tweaking line breaks and line
feeds, cause a missing one or an extra one would break it.
So, I would start by taking out that extra \r\n from the 4th line.
If that doesn't make it, I would take out the \t's
And if that doesn't make it, take out the attributes you added.
Another approach is to send wap push without PPG, via sendsms cgi, which
is much easier and you avoid running an extra service.
See here: http://www.blogalex.com/archives/12
On this article you can find what each hexadecimal value on the
resultant message means, and you can even do a more complete version:
http://mobiforge.com/developing/story/binary-sms-sending-rich-content-devices-using-sms
I'm currently using Alex's approach with something similar to this
(simplified code below):
$udh = '%06%05%04%0B%84%23%F0';
$text = '%1B%06%01%AE%02%05%6A%00%45%C6%0C%03'.hexEncode($url, '%').
'%00%11%03'.hexEncode($si_id,
'%').'%00%07%01%03'.hexEncode($subject, '%').'%00%01%01';
Hope this helps.
On 9/21/11 3:02 AM, christopher serumola wrote:
Yes, these are single lines on the php script. Its only that i use
a dell mini netbook with a small screen size which tends to wrap the
text to the next line when it is long. could that be the cause of the
problem?
On Tue, Sep 20, 2011 at 11:16 PM, Juan Nin <jua...@gmail.com
<mailto:jua...@gmail.com>> wrote:
Do you have these lines that on your email look like more than 1
line each as 1 line or more than 1 line? (should be 1)
'<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP
1.0//EN"'."\r\n".
'<address address-value="WAPPUSH=
+'.$country_code.$phone.'/TYPE=p...@ppg.nokia.com
<mailto:p...@ppg.nokia.com>"/>'."\r\n\t".
'<quality-of-service delivery-method="unconfirmed"
network-required="true" network="GSM" bearer-required="true"
bearer="SMS"/>'.
'<?xml version="1.0"?>'."\r\n".
'<!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN"'."\r
\n".
'<indication action="signal-high" si-id="'.$wap_push_id.'" href="'.
$push_url .'">'.$text.'</indication>'."\r\n".
"X-Kannel-SMSC: $smsc_id\r\n".'Content-Type: multipart/related;
boundary=multipart-boundary; type="application/xml"'."\r\n".
On 9/20/11 4:38 PM, chris wrote:
I have installed kannel 1.5.0 on ubuntu 10.0.4 and configured
bearerbox,smsbox and wapbox. All are working well except that
i can't
send wap pushes through ppg from the php sample script posted
in the
mailing lists named "wappush.conf". i have checked all the related
postings on the matter and implemented the suggestions without
success.So i need help. The error message i get from the
browser is;
This XML file does not appear to have any style information
associated
with it. The document tree is shown below.
-
<pap>
<badmessage-response code="2000" desc="Not understood due to
malformed
syntax" bad-message-fragment="No MIME content"/>
</pap>
The wappush.php script(with corrected line feeds and
indentation) used
is as below;
<?php
$country_code = 'xxx';
$phone = 'xxxxxxxx';
$push_url = "http://m.yahoo.com <http://m.yahoo.com/>";
$text = 'Test yahoo wap';
$smsc_id = 'mysmsc-id';
$out = send_wap_push($smsc_id, $country_code, $phone, $push_url,
$text);
echo $out;
function send_wap_push($smsc_id, $country_code, $phone, $push_url,
$text)
{
$host = 'localhost';
$port = '8080';
$url = "http://$host:$port";
$ppg_user = 'push';
$ppg_pass = 'push';
$wap_push_id = get_rand_numbers(5);
$body = "--multipart-boundary\r\n".
"Content-type: application/xml\r\n\r\n".
'<?xml version="1.0"?>'."\r\n".
'<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP
1.0//EN"'."\r\n".
'"http://www.wapforum.org/DTD/pap_1.0.dtd">'."\r\n".
'<pap>'."\r\n".
'<push-message
push-id="'.$wap_push_id.'">'."\r\n\t".
'<address address-value="WAPPUSH=
+'.$country_code.$phone.'/TYPE=p...@ppg.nokia.com
<mailto:p...@ppg.nokia.com>"/>'."\r\n\t".
'<quality-of-service delivery-method="unconfirmed"
network-required="true" network="GSM" bearer-required="true"
bearer="SMS"/>'.
"\r\n</push-message>\r\n".
"</pap>\r\n\r\n".
"--multipart-boundary\r\n".
"Content-type: text/vnd.wap.si
<http://vnd.wap.si/>\r\n\r\n".
'<?xml version="1.0"?>'."\r\n".
'<!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI
1.0//EN"'."\r
\n".
'"http://www.wapforum.org/DTD/si.dtd">'."\r\n".
"<si>\r\n".
'<indication action="signal-high"
si-id="'.$wap_push_id.'" href="'.
$push_url .'">'.$text.'</indication>'."\r\n".
"</si>\r\n"."--multipart-boundary--\r\n";
$post = "POST /wappush.php HTTP/1.1\r\n"."Host:
$host:$port\r\n".
"Authorization: Basic
".base64_encode("$ppg_user:$ppg_pass")."\r\n".
"X-Kannel-SMSC: $smsc_id\r\n".'Content-Type:
multipart/related;
boundary=multipart-boundary; type="application/xml"'."\r\n".
"Content-Length:
".strlen($body)."\r\n"."\r\n".$body;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt ($ch,CURLOPT_CUSTOMREQUEST , $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$reply = curl_exec($ch);
curl_close ($ch);
return $reply;
//print_r($post.$body);
}
function assign_rand_value($num)
{
// accepts 1 - 36
switch($num)
{
case "1":
$rand_value = "a";
break;
case "2":
$rand_value = "b";
break;
case "3":
$rand_value = "c";
break;
case "4":
$rand_value = "d";
break;
case "5":
$rand_value = "e";
break;
case "6":
$rand_value = "f";
break;
case "7":
$rand_value = "g";
break;
case "8":
$rand_value = "h";
break;
case "9":
$rand_value = "i";
break;
case "10":
$rand_value = "j";
break;
case "11":
$rand_value = "k";
break;
case "12":
$rand_value = "l";
break;
case "13":
$rand_value = "m";
break;
case "14":
$rand_value = "n";
break;
case "15":
$rand_value = "o";
break;
case "16":
$rand_value = "p";
break;
case "17":
$rand_value = "q";
break;
case "18":
$rand_value = "r";
break;
case "19":
$rand_value = "s";
break;
case "20":
$rand_value = "t";
break;
case "21":
$rand_value = "u";
break;
case "22":
$rand_value = "v";
break;
case "23":
$rand_value = "w";
break;
case "24":
$rand_value = "x";
break;
case "25":
$rand_value = "y";
break;
case "26":
$rand_value = "z";
break;
case "27":
$rand_value = "0";
break;
case "28":
$rand_value = "1";
break;
case "29":
$rand_value = "2";
break;
case "30":
$rand_value = "3";
break;
case "31":
$rand_value = "4";
break;
case "32":
$rand_value = "5";
break;
case "33":
$rand_value = "6";
break;
case "34":
$rand_value = "7";
break;
case "35":
$rand_value = "8";
break;
case "36":
$rand_value = "9";
break;
}
return $rand_value;
}
function get_rand_numbers($length)
{
if($length>0)
{
$rand_id="";
for($i=1; $i<=$length; $i++)
{
mt_srand((double)microtime() * 1000000);
$num = mt_rand(27,36);
$rand_id .= assign_rand_value($num);
}
}
return $rand_id;
}
?>
and from the wap log file;
2011-09-20 21:02:23 [1833] [14] INFO: PPG: Accept
request</wappush.php>
from<127.0.0.1>
2011-09-20 21:02:23 [1833] [14] WARNING: PPG: No MIME content
received,
the request unacceptable
2011-09-20 21:02:23 [1833] [14] DEBUG: PPG:
send_bad_message_response:
telling pi
2011-09-20 21:02:23 [1833] [14] DEBUG: HTTP: Resetting
HTTPClient for
`127.0.0.1'.
2011-09-20 21:02:23 [1833] [11] DEBUG: HTTP: Creating
HTTPClient for
`127.0.0.1'.
2011-09-20 21:02:23 [1833] [11] DEBUG: HTTP: Created
HTTPClient area
0x99ec880.
2011-09-20 21:02:24 [1833] [14] ERROR: Request</favicon.ico> from
<127.0.0.1>: service not found
2011-09-20 21:02:24 [1833] [14] DEBUG: your configuration
uses /wappush.php
2011-09-20 21:02:24 [1833] [14] DEBUG: HTTP: Resetting
HTTPClient for
`127.0.0.1'.
2011-09-20 21:03:23 [1833] [10] DEBUG: HTTP: Destroying
HTTPClient area
0x99ec880.
2011-09-20 21:03:23 [1833] [10] DEBUG: HTTP: Destroying
HTTPClient for
`127.0.0.1'.
and my kannel configuration file;
group = core
admin-port = 13050
smsbox-port = 13051
wapbox-port= 13052
admin-password= chris
dlr-storage = mysql
wdp-interface-name="*"
log-file = "/var/log/kannel/bearerbox.log"
log-level=0
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1"
group=smsc
smsc-id=mysmsc-id
port=13053
smsc=at
modemtype=huawei
device=/dev/ttyUSB0
#speed=115200
my-number=xxxxxxxxxx
validityperiod=167
pin=7172
sim-buffering=true
#keepalive=5
sms-center=+xxxxxxxxxx
group=modems
id=huawei
name="huawei E230"
detect-string="huawei"
init-string="ATZ"
init-string="AT+CNMI=2,1,2,2,0"
enable-hwhs=false
message-storage=SM
message-start=0
#speed=115200
group=smsbox
#smsbox-id=smsbox1
bearerbox-host=127.0.0.1
sendsms-port=13054
global-sender=xxxxxxxxxxx
sendsms-chars="0123456789+-"
log-file = "/var/log/kannel/smsbox.log"
log-level=0
group=sendsms-user
username=kannel
password=kannel
concatenation=true
max-messages=10
#Receive MO sms and direct to specified url
group=sms-service
keyword=default
get-url="http://localhost/receivesms.php?sender=%p&text=%b
<http://localhost/receivesms.php?sender=%p&text=%b>"
#accept-x-kannel-headers=true
#accepted-smsc=smsbox1
max-messages=1
catch-all=true
#Set up wap pushes
group=wapbox
bearerbox-host=127.0.0.1
log-file = "/var/log/kannel/wapbox.log"
access-log="/var/log/kannel/wapacess.log"
log-level=0
syslog-level=none
group=ppg
ppg-url=/wappush.php
ppg-port=8080
concurrent-pushes=100
global-sender="xxxxxxxxxxx"
users=1024
ppg-allow-ip="127.0.0.1"
trusted-pi=true
group=wap-push-user
wap-push-user=wappusher
ppg-username=push
ppg-password=push
allow-ip="*.*.*.*"
#Use mysql database for storing delivery reports for MT sms
group=mysql-connection
id=mydlr
host=localhost
username=root
password=xxxxxxxx
database=dlr
max-connections=1
group=dlr-db
id=mydlr
table=dlr
field-smsc=smsc
field-timestamp=ts
field-destination=destination
field-source=source
field-service=service
field-url=url
field-mask=mask
field-status=status
field-boxc-id=boxc
#group = sqlbox
#id = sqlbox-db
#smsbox-id = smsbox
#bearerbox-host = 127.0.0.1
#bearerbox-port = 13003
#smsbox-port = 13005
#log-file = "/var/log/kannel/sqlbox.log"
#log-level = 0
# Example MYSQL Connection
#group = mysql-connection
#id = sqlbox-db
#host = localhost
#username = root
#password = xxxxxxxx
#database = dlr
i would really appreciate as comprehensive help as possible.