Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A button has several properties which are described below. It is not necessary that all buttons support all features. For example, it is possible that a phone has LED lights and keys, but no display associated with the button.


Lamp

One lamp can render one color at a time. It must have at least a "on" and an "off" state, and it may have additional features like colors. It has the possibility to indicate further information by slow and fast blinking. Typically, a lamp is implements with a LED diode.


Label

A key might have a small display next to it, called a "label". Some devices support this feature, so that the user does not have to print a label on paper for the key. This display can be used to provide additional information to the lamp, for example the extension number or the function of the key.


Key

The key has two states, up and down. The user can push the key and release the key. The key is associated with a lamp and typically located physically next to the lamp.


Key Information

Along with the key, the device may render additional information that belongs to the key. The device that renders the information is not attached to the lamp. For example, information could be the caller-ID for an incoming call and it is displayed on the main screen of the device.


Protocol Description

Format

The document contains of CRLF - separated lines. Empty lines indicate the beginning of a new lamp description, so that one document can contain several lamp descriptions. There is no line continuation; a CRLF combination is the clear indication that the line ends. Each line may contain description entries for the lamp. If an entry is not present, then a default value shall apply. The previously stored value for that property will be overwritten in any case. Text is encoded in UTF-8 format. It may not contain special characters like CR, LF or TAB; but it may contain space and UTF-8 encoded characters.

With notepad++

  • Encoding convert to UTF-8
  • Edit - EOL conversion to Windows (CR LF)

Name

The Name property is used to identity the button that should be changed. The name itself is a text. Gigaset phones can handle numbers from 1 to MaxNumbersOfLinekeys

name= "k=" text CRLF

e.g: k=3

Light

The Light property describes in what state the lamp should be. There is a set of predefined light modes that any device must support:

  • "on" should turn the light (RED) on without any blinking.

  • "off" should turn the light off without any blinking.

  • "hold" indicates that there is a call on hold associated with the button. (RED blinking)

  • "pickup" indicates that there is a ringing call that can be picked up. (RED fast blinking)

  • "park" indicates that there is a call that can be retrieved from a park orbit. (RED blinking using park blinking sequence)

  • "message" is used to indicate that there is a message waiting. (RED blinking using message blinking sequence

light= "c=" ("off" / "on" / "hold" / "pickup" / "park"/ "message") CRLF

e.g: c=on

Color

Valid colors values are:

  • "local" (which will light up green)

  • "remote" ( = red)

  • "red"

  • "green"

  • "orange"

color= "o=" ("local" / "remote" / "red" / "green" / "red") CRLF

e.g: o=orange

Label

The Label property is usually a short text like "234" or "DND". The text for the label is encoded in UTF-8 format. Devices that do not support the complete UTF-8 character set must select a reasonable replacement for characters that cannot be displayed.

label= "l=" text CRLF 

e.g: l=Orange LED  

Expand
titleexample
Code Block
MESSAGE $user$@$dsthost$;transport=udp SIP/2.0
From: sip:sipsak@$srchost$:1036;tag=38473
To: $user$@$dsthost$
Call-ID: 6algjorv@test
CSeq: 59620 MESSAGE
Max-Forwards: 70
Contact: < $user$@$dsthost$;transport=udp>
Subject: buttons
Content-Type: application/x-buttons
Content-Length: 32

k=3
c=on
o=orange
l=Orange LED

Caller-ID

As the Label, the Caller-ID is a text in UTF-8 format that is associated with the button. Typically, this text is longer than the Label and displayed in a different part of the device.

caller= "i=" text CRLF

Direction

The direction for a call can be inbound or outbound. The direction depends on the monitored resource.

direction= "b=" ("in" / "out") CRLF

Display-Name

The Display-Name is a text in UTF-8 format that is associated with the button. Typically, this text is used for the person’s name that is associated with the extension.

display-name= "d=" text CRLF

Action and Number

Then the user presses the key, the device will either dial a number or send a message to the registrar.

  • If the Action is set to "invite", then the devices initiates a call. The destination of the call is provided in the Number property.
  • If the Action is set to "message", then the device will send an instant message to the provided number. The message will not contain any message; the destination must be able to tell by the number what the action’s purpose is.

The default for this property is "invite". The Number tells the device what number to dial. If the Number is not available, the device will not perform any action.

action= "a=" ("invite" / "message") CRLF

destination= "n=" text CRLF

Expand
titleexample
Code Block
MESSAGE $user$@$dsthost$;transport=udp SIP/2.0
From: sip:sipsak@$srchost$:1036;tag=38473
To: $user$@$dsthost$
Call-ID: 6algjorv@test
CSeq: 59620 MESSAGE
Max-Forwards: 70
Contact: < $user$@$dsthost$;transport=udp>
Subject: buttons
Content-Type: application/x-buttons
Content-Length: 53

k=3
c=on
o=orange
l=Orange LED  
a=invite
n=1003

Button Release

Usually the event to initiate the Action is the pushing of a button. However, some applications require that actions take place upon the release of a button, for example the push to talk application. If the property is set to "hangup" then the endpoint must terminate the started call when the button is released. If the property is set to "ignore" then the releasing of the button does not matter. Setting the value to "engage" means that the pushing of the button should be ignored and the endpoint should wait until the button is released before the action should be performed. The default value is "ignore".

release= "r=" ("ignore" / "hangup" / "engage") CRLF

MWI

If there are messages waiting the PBX will set the number of new and saved messages in the MWI field.

mwi= "m=" number "/" number CRLF

Call Forward

When the user programs call forward, the PBX can send the Forward information. It includes the type of the forwarding and the forwarding destination.

Other Actions

In order to be able to perform other actions like call pickup from the virtual extension board, the possible actions can be listen

Syntax Description

Code Block
buttons         = *(property) CRLF
 property        = 1*(name | light / color / caller / destination / action / release / label / display-name / mwi / treatment / extension)
 action          = "a=" ("invite" / "message") CRLF
 light           = "c=" ("off" / "on" / "hold" / "pickup" / "park")
 display-name    = "d=" text CRLF
 forward         = "f=" ("always" / "busy") text CRLF
 caller          = "i=" text CRLF
 direction       = "b=" ("in" / "out") CRLF
 name            = "k=" text CRLF
 label           = "l=" text CRLF
 mwi             = "m=" number "/" number CRLF
 destination     = "n=" text CRLF
 color           = "o=" ("local" / "remote" / other-color) CRLF
 release         = "r=" ("ignore" / "hangup" / "engage") CRLF
 state           = "s=" *("dnd" / "logoff" / "offline") CRLF
 treatment       = "t=" token " " text CRLF
 type            = "x=" ("ext" / "queue" / "group" / "line" / "flag" / "conf" / "mwi") CRLF
 other-color     = "#" 6*HEXDIG
 token           = 1*TEXT-ASCII
 text            = TEXT-UTF8-TRIM
TEXT-UTF8-TRIM  = 1*TEXT-UTF8char *(*LWS TEXT-UTF8char)
TEXT-ASCII      = %x21-7E
TEXT-UTF8char   = %x20-7E / UTF8-NONASCII
UTF8-NONASCII   = %xC0-DF 1UTF8-CONT
               / %xE0-EF 2UTF8-CONT
               / %xF0-F7 3UTF8-CONT
              / %xF8-Fb 4UTF8-CONT
              / %xFC-FD 5UTF8-CONT
UTF8-CONT       = %x80-BF
LWS             = [*WSP CRLF] 1*WSP
WSP             = %x20

Examples

Sipsak Example

This example shows how you can turn the LED from Function key 1 on (or off)

Phone configuration:

Setup Function key 3 in "Function Keys" as in the following image:


Set in your identity configuration, on SIP tab "Support broken Registrar" to on:

Set in the advanced configuration, on SIP/RTP tab "Network identity (port):" to 5060:

Set in the advanced configuration, on QoS/Security tab " Filter Packets from Registrar:" to off:

Your device needs to be rebooted !!!

In this example the phone have the IP-address 192.168.1.207, the PC where sipsak is installed have the IP-address 192.168.1.192.

Create a file with the name led.txt and the following content:


Code Block
MESSAGE $user$@$dsthost$;transport=udp SIP/2.0
From: sip:sipsak@$srchost$:1036;tag=38473
To: $user$@$dsthost$
Call-ID: 6algjorv@test
CSeq: 59620 MESSAGE
Max-Forwards: 70
Contact: < $user$@$dsthost$;transport=udp>
Subject: buttons
Content-Type: application/x-buttons
Content-Length: 32

k=3
c=on
o=orange
l=Orange LED
Info

The value "Content-Length:" must be the count of every following character and all CR.

Now you can use the created file with sipsak to send the notify to the phone:

Code Block
sipsak -G --hostname 192.168.0.12 -s sip:<identity>@192.168.0.11 --filename led.txt

sipsak -G --hostname 192.168.1.207 -s sip:1015@192.168.1.192 --filename led.txt

Remember to set <identity> to whatever is your identity in your phone, e.g. 1015.