NowWAP Gateway seems to have problem wih more than 5K MMS messages.

NowWAP Gateway seems to have problem wih more than 5K MMS messages. SearchSearch
Author Message
Deepesh Aggarwal
New member
Username: Deepesha

Post Number: 6
Registered: 02-2005
Posted on Friday, April 29, 2005 - 11:51 am:   

Hi Kent/Bryce,

I am using NowWAP gateway to convert WAP to HTTP to connect my MMSC (NowSMS).

I am able to do MO MMS call from the test mobile (Qualcomm 6300) for small messages <= 5K and it seems to be working perfectly fine.

But if I send an MMS of say <= 6K I see strange behavior of WAP Gateway. Looks like it keeps on buffering the data till it reaches somewhere near ~5K but does not forward it further to MMSC and then just stops there. I don't know what goes in between WAP gateway and mobile but after some time mobile just terminates the call and MO MMS fails.

Please find the attached Debug logs for WAP Gateway.
application/x-zip-compressedNowWAP Logs
NowWAP_Logs.zip (13.0 k)


Do let me know if you need any other information in this regard.

I have testcases where I need to send MMS of more than 300K.
Does NowWAP gateway impose any limit on the maximum size of MMS that can be transferred through it?

I Would appreciate a quick response.
Deepesh Aggarwal
New member
Username: Deepesha

Post Number: 7
Registered: 02-2005
Posted on Friday, April 29, 2005 - 11:55 am:   

I made a mess of greater than and less than symbols.

I meant if I send MMS message of more than 5k. I am facing this problem

For less than 5k messages everything seems to be working just fine.
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 4448
Registered: 10-2002
Posted on Friday, April 29, 2005 - 10:16 pm:   

Hi Deepesh,

There's definitely not a 5K limitation (or anywhere in that neighborhood). The only limitation we have is that SAR can only support 255 packets. So it is 255 * whatever the size packet is that you are using. (To get to 300KB with SAR, you have to use closer to 1500 byte packets.)

Does the log just stop there?

Here's what I see ...

Client sends first packet, about 1KB ... it requests a group ACK (group trailer flag set), and we send one.

Client sends four more packets ... no group ACK requested. (No group trailer or transmission trailer flag set.)

So at this point, the gateway is waiting for another packet. If there is a lost packet, it is the client's responsibility to rebroadcast the last packet of its current group. The gateway will then either ack, or nack and report which packets are missing.

But this ACK or NACK won't be sent until a packet is received with the GTR or TTR flags set in the WTP header.

-bn
Deepesh Aggarwal
New member
Username: Deepesha

Post Number: 8
Registered: 02-2005
Posted on Tuesday, May 03, 2005 - 10:22 am:   

Hi Bryce,

Hmm.. I kind of undersdtood what you are trying to say.

So to support more than 300 KB, WTPSarSegmentSize should be greater than 1500.
What is the purpose of "WTPSarWindowSize" field ?

Yes the log just stops there.

So as per your explanation WAP client on the mobile is not behaving expectedly.I have a feeling that it is not because of loss of packet, mobile must be taking care of that rebroadcast logic.

I am suspecting that the client is waiting for Ack and it does not receive Ack for those packets and thats why dropping the call.

Let me analyse some log on the mobile side to figure out the reason of its intiating a call termination.

I don't know whether it is logical or not but let me still ask you this one also.

Is there any way to configure NowWAP in a manner that it sends ACk for each packet?
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 4461
Registered: 10-2002
Posted on Tuesday, May 03, 2005 - 09:09 pm:   


quote:

So to support more than 300 KB, WTPSarSegmentSize should be greater than 1500.
What is the purpose of "WTPSarWindowSize" field ?




Are you talking about Now.WAP configuration parameters? These parameters control the default behaviour of how Now.WAP sends data ... but it has no effect on receiving.

For example, setting the WTPSarWindowSize to 1 means that we will request an ACK after each packet when sending a segmented request.

Supporting content larger than 300KB gets tricky, because most clients just can't handle it.

But we have seen that the P900/P910 can ... even though they claim to be able to only support 300KB on the WAP transport. So you can use larger segment sizes to send larger files to one of these devices.

But 300KB seems to be the limit for clients using the WSP stack. They could implement extended SAR (which we have not implemented), but most just go to HTTP/WAP2 instead if they need to get around this limit.


quote:

Is there any way to configure NowWAP in a manner that it sends ACk for each packet?




No, the mobile needs to ask for one. It is in control here. The last three bits of the first byte of the packet are:

GTR - Group Trailer Flag
TTR - Transmission Trailer Flag
RID - Re-transmission Indicator

Basically, if GTR is set (like it is when we send our ack after the first packet), this means that it is the end of a group of packets. The receiving end needs to ack before the sender moves on to the next group.

If TTR is set, this indicates that it is the final packet of the request. (And an ACK is also required.)

If GTR and TTR are both set, this indicates that the sender does not support SAR. (And this is a single packet request, so an ACK would be sent.)

We don't send an ACK unless GTR or TTR is set. That is consistent with the specs, which say that "When the receiver receives a packet that is not a GTR or TTR packet it MUST store the packet and wait for a new one."

On the subject of retry handling, it only says "If the sender has not received an acknowledgement when the re-transmission timer expires, only the GTR/TTR packet is re-transmitted, not the entire packet group."

For us to ACK when the client has not requested one, would be a protocol violation in my opinion.

If the packet containing the GTR or TTR is lost, the sending side should re-transmit it automatically. Upon receipt of a packet with the GTR or TTR set, that is when the server checks to see if it has received all of the current group, and responds with either an ACK or a NACK.

The problem with sending an ACK when one was not requested is that technically it should be a NACK ... but we don't know enough about the current group to know all of the packets that might be missing.

I really suspect something is wrong with that mobile.

-bn
ravi
Unregistered guest
Posted on Thursday, September 08, 2005 - 11:50 am:   

Hi all,

I am developing an application for sending MMS from mobile to mobile.
I want to know how to post the data to wap gateway ?


Thanks,
Ravi.