# Perform Bluetooth HFP client functions

Source: [https://docs.qualcomm.com/doc/80-70017-13/topic/perform-bluetooth-hfp-client-functions.html](https://docs.qualcomm.com/doc/80-70017-13/topic/perform-bluetooth-hfp-client-functions.html)

You can perform HFP client functions using the `hfp_client_menu`
        options.

Before you begin, set up the device and go to the HFP client menu as described in
                    [Set up the device for HFP functions](https://docs.qualcomm.com/doc/80-70017-13/topic/set-up-hfp.html#hfp-set-up__section_w52_kvd_lcc_navyanka_08-19-24-1310-42-670).

## Connect to an HFP client device

To connect to an HFP client device, run the following command:

    connect <bt_address>Copy to clipboard

**Parameters**

`<bt_address>` is the Bluetooth address of the remote device.

**Example**

To connect to a remote device with the Bluetooth address
                    `f8:7d:76:9d:9b:6b`, run the following command:

    connect f8:7d:76:9d:9b:6bCopy to clipboard

**Sample output**

connect f8:7d:76:9d:9b:6b
     Processing event 405 in state 1
    connecting with device f8:7d:76:9d:9b:6b
     current State = 1, new state = 2
     Processing event 441 in state 2
    network state is available
    no call is in progress
    no call in setup
    battery level is 3
    signal level is 2
    AG is in home network
    no held call
     Processing event 439 in state 2
    in-band ringtone provided
     Processing event 442 in state 2
    SLC connected with device f8:7d:76:9d:9b:6b
     current State = 2, new state = 3Copy to clipboard

## Create a SCO link

To create a SCO link, run the following
                command:

    create_sco <bt_address>Copy to clipboard

**Parameters**

`<bt_address>` is the Bluetooth address of the remote device.

**Example**

To create a SCO link for a remote device with the Bluetooth address
                    `f8:7d:76:9d:9b:6b`, run the following command:

    create_sco f8:7d:76:9d:9b:6bCopy to clipboard

## Accept an incoming call

To accept an incoming call, run the following command:

    accept_callCopy to clipboard

**Sample output**

accept_call
     Processing event 409 in state 4
    a call is in progress
    no call in setup
     Processing event 439 in state 4Copy to clipboard

## Reject an incoming call

To reject an incoming call, run the following command:

    reject_incoming_callCopy to clipboard

**Sample output**

reject_incoming_call
     Processing event 410 in state 4
    no call in setup
     Processing event 439 in state 4
     Processing event 444 in state 4
     current mode = 2, new mode = 0
     current State = 4, new state = 3
    set param hfp_enable=false success
    BT disconnect is success for SCO usecase
    Disconnected SCO connection with device f8:7d:76:9d:9b:6bCopy to clipboard

## End an active call

To end an active call, run the following command:

    end_active_callCopy to clipboard

**Sample output**

end_active_call
     Processing event 411 in state 4
     Processing event 444 in state 4
     current mode = 2, new mode = 0
     current State = 4, new state = 3
    no call is in progress
    set param hfp_enable=false success
    BT disconnect is success for SCO usecase
    Disconnected SCO connection with device f8:7d:76:9d:9b:6bCopy to clipboard

## Dial a phone number

To dial a phone number, run the following command:

    dial <phone_number>Copy to clipboard

**Parameters**

`<phone_number>` is the phone number that you intend to dial.

**Sample output**

dial 7123456789
     Processing event 422 in state 3
    Outgoing call is in setup
     Processing event 447 in state 3
    SCO/eSCO connected with device f8:7d:76:9d:9b:6b
    Connected state: Requesting for focus
     current mode = 0, new mode = 2
     current State = 3, new state = 4
     Processing event 252 in state 4
    earlier status = 1 new status = 2
    Configure audio for SCO
    No session exists for the usecase
    The server answered: obj path: '/org/pulseaudio/ext/pal/loopback/ses_2'
    BT connect is success for SCO usecase
    set param- hfp_enable=true success
    Outgoing call in alerting stateCopy to clipboard

## Redial a phone number

To redial a phone number, run the following command:

    redialCopy to clipboard

**Sample output**

redial
     Processing event 423 in state 3
    Outgoing call is in setup
     Processing event 447 in state 3
    SCO/eSCO connected with device f8:7d:76:9d:9b:6b
    Connected state: Requesting for focus
     current mode = 0, new mode = 2
     current State = 3, new state = 4
     Processing event 252 in state 4
    earlier status = 1 new status = 2
    Configure audio for SCO
    No session exists for the usecase
    The server answered: obj path: '/org/pulseaudio/ext/pal/loopback/ses_2'
    BT connect is success for SCO usecase
    set param- hfp_enable=true success
    Outgoing call in alerting state
    no call in setup
     Processing event 439 in state 4
     Processing event 444 in state 4
     current mode = 2, new mode = 0 
     current State = 4, new state = 3
    set param hfp_enable=false success
    BT disconnect is success for SCO usecase
    Disconnected SCO connection with device f8:7d:76:9d:9b:6bCopy to clipboard

## Hold a call

To hold a call, run the following
                command:

    hold_active_callCopy to clipboard

**Sample output**

hold_active_call
     Processing event 412 in state 4
    a call is on hold, no active callsCopy to clipboard

## Unhold a call

To unhold a call, run the following
                command:

    unhold_held_callCopy to clipboard

**Sample output**

unhold_held_call
     Processing event 412 in state 4
    no held callCopy to clipboard

## End a call on hold

To end a call on hold, run the following
                command:

    end_held_callCopy to clipboard

**Sample output**

end_held_call
     Processing event 413 in state 4
     Processing event 444 in state 4
     current mode = 2, new mode = 0
     current State = 4, new state = 3
    set param hfp_enable=false success
    BT disconnect is success for SCO usecase
    Disconnected SCO connection with device f8:7d:76:9d:9b:6b
    no call is in progressCopy to clipboard

## Reject an incoming call during an active call

To reject an incoming call during an active call, run the following
                command:

    reject_incoming_call_when_active_call_presentCopy to clipboard

## Start voice recognition

To start voice recognition, run the following command:

    start_voice_recognitionCopy to clipboard

**Sample output**

start_voice_recognition
     Processing event 425 in state 3
    volume_change_cb : speaker volume is 4
     Processing event 433 in state 3
     Processing event 447 in state 3
    SCO/eSCO connected with device f8:7d:76:9d:9b:6b
    Connected state: Requesting for focus
     current mode = 0, new mode = 2
     current State = 3, new state = 4
     Processing event 252 in state 4
    earlier status = 1 new status = 2
    Configure audio for SCO
    No session exists for the usecase
    The server answered: obj path: '/org/pulseaudio/ext/pal/loopback/ses_2'
    BT connect is success for SCO usecase
    set param- hfp_enable=true success
    signal level is 2Copy to clipboard

## Stop voice recognition

To stop voice recognition, run the following command:

    stop_voice_recognitionCopy to clipboard

**Sample output**

stop_voice_recognition
     Processing event 426 in state 4
     Processing event 444 in state 4
     current mode = 2, new mode = 0
     current State = 4, new state = 3
    set param hfp_enable=false success
    BT disconnect is success for SCO usecase
    Disconnected SCO connection with device f8:7d:76:9d:9b:6bCopy to clipboard

## Get the operator name

To get the operator name, run the following command:

    query_operator_nameCopy to clipboard

**Sample output**

query_operator_name
     Processing event 429 in state 3
    operator name is IND airtelCopy to clipboard

## Get subscriber information

To get subscriber information, run the following command:

    query_subscriber_infoCopy to clipboard

**Sample output**

query_subscriber_info
     Processing event 430 in state 3
    subscriber name is 917123456789 type is voiceCopy to clipboard

## Disconnect an HFP client device

To disconnect an HFP client device, run the following command:

    disconnect <bt_address>Copy to clipboard

**Parameters**

`<bt_address>` is the Bluetooth address of the remote device.

**Example**

To disconnect a remote device with the Bluetooth address
                    `f8:7d:76:9d:9b:6b`, run the following command:

    disconnect f8:7d:76:9d:9b:6bCopy to clipboard

**Sample output**

disconnect f8:7d:76:9d:9b:6b
     Processing event 406 in state 3
    Disconnecting with device f8:7d:76:9d:9b:6b
     current State = 3, new state = 2
     Processing event 437 in state 2
    Disconnected from or Unable to connect with device f8:7d:76:9d:9b:6b
     current State = 2, new state = 1Copy to clipboard

## Other functions

The HFP client menu offers other functions that enable you to:

- Swap calls
- Verify conference calls
- Access recently dialed phone numbers
- Control the volume of the speaker and microphone
- Send DTMF code

**Parent Topic:** [Hands-Free Profile](https://docs.qualcomm.com/doc/80-70017-13/topic/set-up-hfp.html)

Last Published: Dec 26, 2024

[Previous Topic
Hands-Free Profile](https://docs.qualcomm.com/bundle/publicresource/80-70017-13/topics/set-up-hfp.md) [Next Topic
Perform Bluetooth HFP audio gateway functions](https://docs.qualcomm.com/bundle/publicresource/80-70017-13/topics/perform-bluetooth-hfp-ag-functions.md)