Skip to main content

Khomp/Description of Variables

Click here to expand Table of Contents


When activated, causes the Endpoint to drop Khomp collect calls through dual service (available for signaling 'R2 Digital' and FXO), through information available on the ISDN protocol and R2/MFC, or by detecting the audio call collect (available for any digital signage for E1, and GSM signaling).

This variable is useful to filter collect calls to certain extensions, and must be set before making any type of answer - applications such as playback and bridge should always be executed after setting this variable, for example.

For better functionality, is also recommended that no call status (ringback) is sent before this variable is set, so applications should be performed only after the correct setting of this variable.

This variable can be set locally and globally, both to yes or no. The adjustment of global variable to yes will drop all the collect calls, unless the particular call is set to no - this allows the creation of a global filter of collect calls, with few exceptions.

Enabling the variable in context default:

<context name="default">
<extension name="example">
<action aplication="set" data="KDropCollectCall=yes"/>


Enabling the variable in the global context, remembering that it must be configured in the file vars.xml:

<X-PRE-PROCESS cmd="set" data="KDropCollectCall=yes"/>


When you receive a call, can be set before sending ringback by FreeSWITCH (ie, before the run FreeSWITCH applications answer, bridge). When used in signaling R2/MFC, this variable sets the condition for B to the numeric value desired.


<!-- Condition "NUMBER CHANGED" warns the caller that the number of B has changed. -->
<action application="KR2SendCondition" data="3"/>


When you receive a call, is set by the Endpoint with the category received from the number that originated the call. It is set in signaling R2/MFC, and can be found anywhere in the dialplan.


<action application="log" data="DEBUG KR2GotCategory [${KR2GotCategory}]"/>


Variable adjusted by the Endpoint, and available after returning from a call made by FreeSWITCH. Has the condition of B received when making the call. Available only for signaling R2/MFC.


<action application="log" data="DEBUG KR2GotCondition [${KR2GotCondition}]"/>


Variable adjusted by the Endpoint in the context of entry, from information received by the ISDN network functionality through user-to-User Information. Contains the descriptor number of the protocol used by the other end, and usually contains the value '0 ', but this is dependent on application.

For further information, consult the specification ITU-T Q931 (more precisely, the specification table 4-26).

Example (working with the descriptor number of the protocol):

<action application="log" data="DEBUG KUserInfoDescriptor [${KUserInfoDescriptor}]"/>


Variable adjusted by the channel in the context of entry, from information received by the ISDN network functionality through user-to-User Information. Contains the actual data, which were received in the form of a string of text.

More information about this feature, see the specification ITU-T Q931.

Example (working with the data received):

<action application="log" data="DEBUG KUserInfoData [${KUserInfoData}]"/>

It is important to note that the variables are sensitive to the capitalization of letters (case sensitive).


Variable adjusted by the Endpoint. It is set in outbound connections, representing the type of answer performed by the other end. May contain the following values:

"MessageBox" (*): detected mailbox of a cell phone;"CarrierMessage": message sent before the service provider;"AnsweringMachine" (**): answering answering machine;"HumanAnswer" (**): human service;"Fax": reported when a fax tone is detected."Unknown": unknown type of care;

(*) This type of service is detected by signals at certain frequencies that are sent before the call comes into a mailbox, and vary by operator. The algorithm captures most of the mailboxes, but can fail if there is not a clear signal, or if it is not within the standards most commonly used;

(**) The difference between these two types of care depends on the specific configuration using the program k3lanswerinfoconfig, with the detection only based on heuristics and never with an accuracy of 100%.