Programming softkeys on SPA phones

Unanswered Question
Mar 9th, 2010
User Badges:

I have several SPA509G phones running the SIP protocol with asterisk. I am able to configure the phones via their built in web interface and get them to register and make calls. However I cannot find any documentation on customizing the softkeys. I need to change the keys from their defaults to add selections like park etc. Via the webgui of the phone there is a section for programmable softkeys but changing those settings does not seems to have an effect it also is not clear on how to tell it what each button is doing. Either web based config or xml will do but I just cannot find the documentation. Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
bmgriffin Wed, 03/10/2010 - 00:47
User Badges:

Hi, this is my basic understanding of it, with a 502g but should be the same.

<Idle_Key_List group="Phone/Programmable_Softkeys">psk1|7;em_login|1;acd_login|1;acd_logout|1;redial|5;resume|5;dir|6;avail|6;unavail|6;cfwd|7;chkcfwd|7;dnd|8;chkdnd |8;lcr|9;pickup|10;gpickup|11;unpark|12;em_logoutIdle_Key_List>

<PSK_1 group="Phone/Programmable_Softkeys">fnc=sd;ext=8@$PROXY;vid=2;nme=groupPSK_1>

I have used the above to create a group pick-up button. Basically change ext=8 above to whatever code you want the button to send to asterisk and then change 'group' to whatever you want the button to be called. Please note you also need to add psk1|7; to the Idle_Key_List field to make the button visible in the menu structure.

There is a little more on this in the spa500 admin guide. let me know if you need a link to this. Hope this helps anyway.


3cxcisco08 Thu, 03/11/2010 - 04:29
User Badges:

i may have a question to that.

First thx for the explanation

I like to edit the DND button to send a dial code to my pbx to set the status there as well to DND.

So i started:


and on the psk1 i added:

fnc=sd;[email protected]|fnc=sd;[email protected]

Its a bit annoining that the phone acually calls that, but well i set it to speed dial. Is there optimization possible?

But i dont geht the toggle working first the *61 and then *60 when i repress the button.

Also in the display is only psk and not first Away and then Aval???

What can i do?


3cxcisco08 Thu, 03/11/2010 - 04:34
User Badges:

Found Name, but the toggel in funktion and display does not work...

Thx already

Alberto Montilla Thu, 03/11/2010 - 06:04
User Badges:
  • Cisco Employee,

Dear Sir;

What you like to do (call to synchronize services) is available via the vertical service announcement codes. For full understanding I suggest you check the phone administration guide available on the documentation section


3cxcisco08 Thu, 03/11/2010 - 06:32
User Badges:

Hello Alberto,

i was there before and change the Vertical Service Activation Codes for Act DND to *60 and DND Deact Code: to *61

Unforunatly this codes will not send to the PBX as i have discovert and the Status in the PBX remains as online...

So i thought okey make it via psk field...

Am i wrong or should they send it to the PBX EXT X witch are attached to the phone?

3cxcisco08 Thu, 03/11/2010 - 06:34
User Badges:

ps read the guide but will do again may i skiped something...

3cxcisco08 Thu, 03/11/2010 - 06:49
User Badges:

If no tone parameter is specified, the IP phone plays

Prompt tone by default.

If the *code is not to be followed by a phone number,

such as *73 to cancel call forwarding, do not include it

in this parameter. In that case, simple add that *code in

the dial plan and the IP phone send INVITE *73@..... as

usual when user dials *73.

Well this is what i need i guess.

But my phone sends nothing:

Dial Plan: [x*].|*60|*61


Alberto Montilla Thu, 03/11/2010 - 06:57
User Badges:
  • Cisco Employee,

Look at the announcement codes, not activation is different. Announcements basically sends an invite to the server...



3cxcisco08 Thu, 03/18/2010 - 03:41
User Badges:

Sorry Alberto,

i have to ask a bit more about it.

DDT:*61;DDF:*60; i put tin there now.

But i dont see a invite arriving to my PBX what did i understood wrong.

Sorry to be a pain in the neck but i have to make this work...

Could you help me out?



3cxcisco08 Thu, 03/18/2010 - 04:02
User Badges:

i am reading the doc on page 170 over and over

[Line1/2] = Yes

This i phoned in the web interface under Phone -> Service Annc Serv: Yes


i added DDT:*61;DDF:*60

Now i push the DND button but nothing happens, what is wrong with me, or is the guide buggy here?

bmgriffin Thu, 03/18/2010 - 04:19
User Badges:


From my understanding announcement codes are not triggered from soft keys.

If you Dial the vertical service code for DND or go into the menu | preferences | do not disturb and change the on/off value in there you will probably find that it works.

Also I found that I needed something in field as well and also that it didn't seem to like "*"s

<Service_Annc_Base_Number group="Regional/Vertical_Service_Announcement_Codes">1234Service_Annc_Base_Number>

<Service_Annc_Extension_Codes group="Regional/Vertical_Service_Announcement_Codes">DDT:291;DDF:290Service_Annc_Extension_Codes>

so I had to create a entry in my call server dial plan to match 1234291 as DND enable etc....

However, this isn't much use if it can't be triggered from the softkeys.

Maybe Alberto will be able to confirm if this is in the roadmap?



3cxcisco08 Thu, 03/18/2010 - 04:36
User Badges:

Dear Ben,

thx for ur input.

I see it the same as you.

the user can dial *61 for me and have the same effect then to set the PBX away status.

but like other phones like snom it works with pushing the button DND and in the background the phone calls *[email protected] but nums the phone spreaker.

We wait for the master of SPA Alberto to see what he can may do for us ;-)

3cxcisco08 Mon, 03/22/2010 - 01:27
User Badges:

it is still not working as expected.

i am giving up on that and buy snom phones, one click and it is working

Quite sad i am  to be honest...

3cxcisco08 Tue, 03/30/2010 - 00:16
User Badges:

and we still all waiting to hear how we can press the DND button and send a request to the PBX...

nseto Thu, 04/08/2010 - 08:58
User Badges:
  • Silver, 250 points or more

Do you already have the DND programmed into one of the softkey?  If not, refer to the admin guide and read the section on programmable softkey.  If programmed, you should see the DND under one of the softkeys.  When you activate the DND, the screen will show Do Not Disturb or -dnd in the softkey.  When you call that phone from another phone, that other phone will get either busy or voicemail if the phone set to DND has voicemail service.

Regarding the 8800, new firmware is scheduled in a couple of months.

cameron.beattie Thu, 12/16/2010 - 15:31
User Badges:

I want to do the same press a softkey on the phone and have it communicate with the server. To be clear: I understand this can be done through Announcement codes but that requires the user to memorise a code. As an example:

1. user presses DND softkey on phone

2. DND is activated on phone

3. phone sends an invite message to the server. This message can be configured e.g. it may be *61

Is this possible?

jamiehhlireland Tue, 06/04/2013 - 02:31
User Badges:

Unfortunately cisco have not done this even though its been requested over and over again

Dan Lukes Thu, 06/06/2013 - 12:14
User Badges:
  • Red, 2250 points or more
  • Cisco Designated VIP,

    2017 Small Business

Well, it is possible to do what you are asked for using vertical announcements codes. Unfortunatelly, I suspect you missed important things - you requested one way signalisation. If server rejects the DND request, it doesn't affect the phone state. If server accepts the request and phone will be rebooted later (loosign it's DND status), the phone and server become dissynchronised again. If status of phone's DND change on server by an event, there is no way to synchronize the phone's status as well.

And even worse it is for supplementary services with parameter (like call forward). Vertical announcements code doesn't announce the parameter user for particular supplementary service.

In the fact, Cisco lack DOCUMENTED support for the feature you are asking for.

But you can implement the feature you are speaking of via generic fnc=blf+sd feature if you have spare button and you have control over your's server behavior. A unused line key can be configured to speed-dial a code switching DNS status. And BLF feature of the same line key can be used to show current status to the user. Of course, you need learn your's PBX to publish DND state as BLF.

Hi All

One way to achieve this works fine (I think):

1)     In Regional Tab note down the DND Act Code and DND Deact Code (ie *09 for act and *10 for deact)

2)     In Regional Tab Enter the Virtacal Service Announcement Code section

        * Service Annc Base Number as the prefix to dial (on your PBX)    

        * In Service Annc Extension Code add DDT:x;DDT:y where x and y are the suffixes appended to the prefix you dial to enable and disable DND on the server,  IE use something like 9998 for the prefix and 1 and 2 for the suffix, so 99981 enables DND and 99982 disables DND.

3)     Now for some reason Cisco don't send these codes when you press the generic dnd/-dnd Softkeys so you need to remove these and program your own to replace them.   Luckily as of firmwere 7.5.3 cisco support dual states on psk's so you can have a + and - version of the same key:

4)     Phone tab.

     Programable softkeys enable = yes

     PSK 1:     fnc=sd;ext=*09;nme=DND;ext2=*10; nme2=-DND

     (note the *09 and *10 are from the regional tab on the DND Act and DND Deact code)

     Under the Idle key list find the dnd|8 and replace it with psk1|8  to get rid of the generic internal dnd softkey.

save and reboot.

Now you still have DND on your idle soft keys, press it, your phone should both set DND, change the soft key to "-DND" and add "Do Not Disturb" across the screen panel.  Most importantly the phone will now auto dial 99981@$proxy and the switch now knows the DND state.  Press the  -DND softkey and the phone will disable DND locally and also dial the switch telling it dnd is now off.

I'm 99% this is what people have been asking for? Essentially local dnd support with server notification not having to dial the crazy *codes to make it all work?



Dan Lukes Mon, 10/21/2013 - 01:19
User Badges:
  • Red, 2250 points or more
  • Cisco Designated VIP,

    2017 Small Business

Yes, but you need not to forget that it's still one way system and local signalisation of service state is not connected with true PBX state. If phone will reboot when service turned on, it will show "off" status past reboot. If your's soft-key doesn't change the server state, for whatever reason, the soft key will show incorrect state of service.

I can't decide if it is suitable for 99% systems. We received plenty of complaints "it's broken, nobody can call me" caused by false "DND turned off" label until we implemented true bidirectional signalisation.

The system described by you is better than nothing, with no doubt, but disadvantages needs to be described and considered acceptable.

Hi Dan

I'm curious what you did for the bi-directional signalisation system?  

We were considering using a line key with blf+sd to illuminate and toggle.  Then remove the dnd softkey.  Atleast then it can be set on phone or on server (and pushed back to the phone to ensure 100% synchronisation).

The only problem we have is that uses a line key which I'm not really happy about.

I wish you could use a BLF in combination with a PSK then it would be perfect (to toggle between psk ext1/nme1 and ext2/nme2 (Cisco hint!)

Like all this stuff nothing is perfect, it's somewhat a compromise.

We've got the same issue with regards cfwdall, we'd like to have cfwd set at the server (so it can be controlled from phone or from our portal applications), but clients tend to like the the softkey approach, again if the phone loses it's connection or is powered down all bets are off.

Keen for any feedback you may be able to add!

cheers and thanks!


Dan Lukes Mon, 10/21/2013 - 04:07
User Badges:
  • Red, 2250 points or more
  • Cisco Designated VIP,

    2017 Small Business

We were considering using a line key with blf+sd to illuminate and toggle.  Then remove the dnd softkey.  

Exactly. It's the way we did it.

We have about 1000 pieces of SPA504G phones, first two keys are used for calling, second two keys are used for BLF-based signalling of DND and Call Forward state.

The "DND line key" BLF is attached to exchange's view of  line's DND state. The SD of same key is configured to dial "DND toggle" code when pressed. It solve the problem with DND as it's on/off service. It doesn't solve the CFU service in full as it require parameter, so our line key signal current CFU state, but it allow deactivation only on button press. Call forward can be activated by other means only.

Of course, it require PBX that is "opened enougth" or you will not be able to implement such kind customisation. We are using plain Asterisk (I'm the author of our's extensions.conf call script)

The only problem we have is that uses a line key which I'm not really happy about.

I wish you could use a BLF in combination with a PSK then it would be perfect (to toggle between psk ext1/nme1 and ext2/nme2 (Cisco hint!)

Obvious idea. I mentioned it on some other thread as well. In the fact, I'm surprised the programmer implementing state toggle on PSK missed it.

In advance, I hate interaction between sub= and ext= parameter. I would like to configure blf+cp with sub= specifying blf state source and ext1/ext2 specifying "speed dial" action. But it's not possible now ...

Almost wish we had more 508's and not 504's for some extra buttons.


Are you across at all if the SPA phones can be pushed a notice via a SIP message.  We'd be happy using PSK toggles if we could push a status notice down to the phone from the switch - atleast the state could be asserted back to the phone visually "DND and CFWD Active" for example.?

It's a little frustrating, the SPA series is so close to being exceptional and just falls 1% short.

I'd be curious if anyone uses the Annc services on these phones, given that they are 1 way and possibly prone to failure and yet they've invested so much into their firmware for all that guff and then dropped the ball on some simple stuff that would really be useful!


This Discussion

Related Content