Summary:ASTERISK-02210: ADSI voicemail folders softkeys display incorrectly
Reporter:sremington (sremington)Labels:
Date Opened:2004-08-11 11:08:39Date Closed:2008-01-15 15:06:08.000-0600
Versions:Frequency of
Description:On an ADSI CPE the folder softkeys display incorrectly. I have tracked the problem down to the following...

On March 20, 2004 the following change was made to adsi.h:

-#define ADSI_KEY_APPS  16      /* 16 to 33 reserved for applications */
+#define ADSI_KEY_APPS  20      /* 16 to 33 reserved for applications */
+                               /* Changed to 20 by MDH */

I have been unable to track dowm why ADSI_KEY_APPS was changed from 16 to 20 but it is causing a problem in the folling bit of code in app_voicemail.c:

for (x=0;x<5;x++) {
   snprintf(num, sizeof(num), "%d", x);
   bytes += adsi_load_soft_key(buf + bytes, ADSI_KEY_APPS + 12 + x, mbox(x), mbox(x), num, 1);

"ADSI_KEY_APPS + 12 + x" is now keys 32 through 36 which is beyond the last key reserved for applications. This appears to be a "very bad thing"(tm) and trashes the soft key table.

I am unsure of why ADSI_KEY_APPS was changed to begin with, but changing it back to 16 fixed the problem for me.
Comments:By: mhardeman (mhardeman) 2004-08-11 22:30:40

I made the changes originally so as to add support for a nice, ADSI script that I wrote, which integrates nicely with * and is fairly complete....  It still needs work, but it hasn't been a priority for me lately.

The real fix here is that Sayson has now released on their dealer support website the details on all four slots for their * supported 380 and 490 models.  

I also believe that a total of 64 softkey defs are supported for those units, so I'll see if I can fix the issue with the softkeys...

Out of curiosity, what ADSI phone are you using?


By: Mark Spencer (markster) 2004-08-11 23:09:53

So should we put it back to 16 then?

By: sremington (sremington) 2004-08-12 09:21:55

I am using Sayson 390's

By: twisted (twisted) 2004-08-24 13:41:16

sremington, should this be moved back to 16 as markster asked?   Is there any other solution that would solve this issue?  


By: sremington (sremington) 2004-08-24 16:32:30

We may need to have someone with access to the Bellcore/Telcordia SR-2461 &  GR-1273-CORE specifications give a definitive answer to this.

Note to self: save up the $2000+ to purchase said specs ;)

Here's a summary of all the bit's of info I can gather from reading the source...

res_adsi.c has this snippet of code in the adsi_load_soft_key() function:
   /* Abort if invalid key specified */
   if ((key < 2) || (key > 33))
       return -1;
This would seem to indicate that there are 32 available slots in the virtual softkey definer table (although only up to 6 can be physicaly displayed at one time on the phone).

adsi.h says this:
   #define ADSI_KEY_APPS   20      /* 16 to 33 reserved for applications */
                                   /* Changed to 20 by MDH */
This would indicate that out of keys 2-33, 16-33 are reserved specifically for FDM applications (what 2-15 are indended for I don't know).

Finally in app_adsiprog.c in the adsi_script struct is:
   /* Keys 2-63 */
   struct adsi_soft_key keys[62];
Which would seem to indicate space for 62 softkeys (??)

Setting it back to 16 is certainly a valid fix for this bug although the whole ADSI area could use a lot more refining. If I had the specs I would be willing to work on it but unfortunately...

By: Mark Spencer (markster) 2004-08-30 01:27:27

Reverted back to 16

By: Digium Subversion (svnbot) 2008-01-15 15:06:08.000-0600

Repository: asterisk
Revision: 3681

U   trunk/include/asterisk/adsi.h

r3681 | markster | 2008-01-15 15:06:08 -0600 (Tue, 15 Jan 2008) | 2 lines

Revert back to 16 so keys are displayed properly (bug ASTERISK-2210)