# Asterisk Project : Asterisk 12 Function_PRESENCE_STATE

Added by wikibot , edited by wikibot on Aug 29, 2013

# PRESENCE_STATE()

### Synopsis

Get or Set a presence state.

### Description

The PRESENCE_STATE function can be used to retrieve the presence from any presence provider. For example:

NoOp(SIP/mypeer has presence ${PRESENCE_STATE(SIP/mypeer,value)})

NoOp(Conference number 1234 has presence message ${PRESENCE_STATE(MeetMe:1234,message)})

The PRESENCE_STATE function can also be used to set custom presence state from the dialplan. The `CustomPresence:` prefix must be used. For example:

Set(PRESENCE_STATE(CustomPresence:lamp1)=away,temporary,Out to lunch)

Set(PRESENCE_STATE(CustomPresence:lamp2)=dnd,,Trying to get work done)

Set(PRESENCE_STATE(CustomPresence:lamp3)=xa,T24gdmFjYXRpb24=,,e)

Set(BASE64_LAMP3_PRESENCE=${PRESENCE_STATE(CustomPresence:lamp3,subtype,e)})

You can subscribe to the status of a custom presence state using a hint in the dialplan:

exten => 1234,hint,CustomPresence:lamp1

The possible values for both uses of this function are:

not_set | unavailable | available | away | xa | chat | dnd

### Syntax

    PRESENCE_STATE(provider,field[,options])

##### Arguments

- `provider` - The provider of the presence, such as `CustomPresence`
- `field` - Which field of the presence state information is wanted.
  - `value` - The current presence, such as `away`
  - `subtype` - Further information about the current presence
  - `message` - A custom message that may indicate further details about the presence
- `options`
  - `e` - On Write - Use this option when the subtype and message provided are Base64 encoded. On Read - Retrieves message/subtype in Base64 encoded form.

### See Also

### Import Version

This documentation was imported from Asterisk Version Unknown