Windowing is an optional feature in CIMD2 with a max window size of 128. If you wish to use windowing you have to declare the window size within the login request using parameter 019 otherwise the SMSC will set a window size of 1 by default. Current implementation has no windowing functionality so I modified cimd2_login() in smsc_cimd2.c to declare the int parameter 019 when sending login request to SMSC just to check if the SMSC will accept the windowing parameter. The test was a success and we managed to successfully login using a window size of 32:

2007-06-08 20:40:04 [19247] [6] DEBUG: CIMD2[cimd2_smsc]: sending <01:001        010:test  011:test    019:32  82>
2007-06-08 20:40:05 [19247] [6] DEBUG: CIMD2[cimd2_smsc]: received: <51:001      3C>

CIMD2 windowing have two important restrictions. All operations to the SMSC (keepalive, submit SM etc.) use a window slot not just the submit SM, so all outstanding operations should *NOT* exceed window size. The SME  is forced to use the packet numbers in strict increasing order 001,003,005 etc.and *NOT* randomly 011,123,009 etc. We must receive responses for every operation before starting a new window.

Reply via email to