I have solved the problem below by following instructions given in the PPG mini howto http://article.gmane.org/gmane.comp.mobile.kannel.user/11009 and used http://localhost/wappush.php instead of http://localhost:8080/wappush.php.
Thanks a lot! On Fri, Sep 23, 2011 at 5:27 PM, christopher serumola <serumo...@gmail.com>wrote: > Please help as per below; > > > ---------- Forwarded message ---------- > From: christopher serumola <serumo...@gmail.com> > Date: Thu, Sep 22, 2011 at 11:37 PM > Subject: Re: php Wap push help > To: Juan Nin <jua...@gmail.com> > > > Thanks Juan. I did replace the portion you referred to below with the code > you provided below but i am still getting the same result. Maybe there is > something else beyond this. I pass the following url to the firefox browser > to execute the wappush script, http://localhost:8080/wappush.php. Port > 8080 is the ppg-port. Strangely,immediately after getting the error message, > when i change the php script name to any other name e.g to wap.php i still > get the same error from the browser even though wap.php script does not > exist in my webserver. In this case i expect it to return a "Page not found" > error. > > I have also used the non-ppg script you suggested below but it returns a > blank page and the message is not delivered to the mobile phone. Even when i > view its page source it is blank. This one i ran it directly on port > 80(default) i.e http://localhost/testwap.php. Any ideas? > > > On Thu, Sep 22, 2011 at 3:12 AM, Juan Nin <jua...@gmail.com> wrote: > >> 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"<WAPPUSH=+%27.$country_code.$phone.%27/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> 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"/>'."\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"; >>>> $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"/>'."\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\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" >>>> #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. >>>> >>>> >>>> >>>> >>>> >>>> >>> >> >> > >