1. 02 Aug, 2022 22 commits
    • Dylan Van Assche's avatar
      bluetooth: strip additional out-of-spec '\r\n' chars · 9c0040a6
      Dylan Van Assche authored
      Some HF devices do not comply strictly with the HFP specification
      and send additional '\r\n' sequences besides the expected ones.
      This breaks AT command parsing in PulseAudio.
      
      To work around this problem, strip these characters before processing
      the AT command and responses.
      9c0040a6
    • Dylan Van Assche's avatar
      bluetooth: support ATD$number; · d4afc002
      Dylan Van Assche authored
      Start a call when HF sends 'ATD$number;'
      This AT command is only available when ModemManager is present.
      Number is filtered for any invalid characters, if an invalid character
      is found, the call is aborted and an error is returned.
      d4afc002
    • Dylan Van Assche's avatar
      bluetooth: support AT+CHUP · cfad074f
      Dylan Van Assche authored
      Hangup or reject a call when the HF sends 'AT+CHUP'.
      If the call is on going, it is ended. If the call is ringing and
      incoming, it is rejected. The same interface in ModemManager is used for
      this functionality. This AT command is only available if ModemManager is
      present.
      cfad074f
    • Dylan Van Assche's avatar
      bluetooth: support ATA · 2c1b4c2d
      Dylan Van Assche authored
      Accept incoming calls if the HF sends 'ATA'.
      The first call in the call list is accepted,
      multiparty calling is not supported (yet).
      2c1b4c2d
    • Dylan Van Assche's avatar
      bluetooth: support AT+VTS · 9ef323b0
      Dylan Van Assche authored
      Send DTMF tones to the active call when the HF sends AT+VTS=$character.
      Return an error if more than one character is given or ModemManager is
      unavailable.
      9ef323b0
    • Dylan Van Assche's avatar
      bluetooth: support +CIEV, RING, and +CLIP URCs · 56f29e82
      Dylan Van Assche authored
      Report changes of the CIND indicators and calls to the HF with URCs:
      
      - +CIEV: report any change to the CIND indicators such as signal
        strength, roaming status, service status, etc.
      - RING: play a ringtone on the HF side for incoming calls.
      - +CLIP: enhanced call status reports the subscriber number to the HF
        for incoming calls.
      56f29e82
    • Dylan Van Assche's avatar
      bluetooth: support AT+CLCC · ee801627
      Dylan Van Assche authored
      Report ongoing calls when the HF sends an AT+CLCC command.
      Currently, only one ongoing call is supported, three-way calling is not
      implemented. Any additional calls are ignored.
      ee801627
    • Dylan Van Assche's avatar
      bluetooth: support AT+CGSN · 04dd973d
      Dylan Van Assche authored
      Return the modem's IMEI number when car multimedia systems (HF)
      send an AT+CGSN 3GPP AT command, even though it is not supported by the
      Bluetooth HFP 1.8 spec.
      04dd973d
    • Dylan Van Assche's avatar
      bluetooth: support AT+CGMR · 6cf51211
      Dylan Van Assche authored
      Return the modem revision when HF sends an out-of-spec AT+CGMR
      command. This is a 3GPP standardized command so lets support it.
      6cf51211
    • Dylan Van Assche's avatar
      bluetooth: support AT+CGMI · ab47c87b
      Dylan Van Assche authored
      Return the modem manufacturer if ModemManager is available.
      AT+CGMI is an out-of-spec AT command for Bluetooth HFP, but car
      multimedia units use it since it is a standard 3GPP command.
      ab47c87b
    • Dylan Van Assche's avatar
      bluetooth: support AT+CGMM · e35ac9a2
      Dylan Van Assche authored
      Return the modem model if ModemManager is available when the HF
      sends an out-of-spec AT+CGMM command.
      e35ac9a2
    • Dylan Van Assche's avatar
      bluetooth: support AT+CREG? · 05539aa4
      Dylan Van Assche authored
      AT+CREG? is not officialy supported by the Bluetooth HFP 1.8 spec,
      but some car multimedia systems use it. AT+CREG? reports if the phone
      has network available or not with a +CREG response.
      05539aa4
    • Dylan Van Assche's avatar
      bluetooth: support AT+CLIP · 2950b31e
      Dylan Van Assche authored
      Enable or disable Call Line Indication reporting (+CLIP) when
      a call is incoming to display the number that is calling on the HF's
      screen.
      2950b31e
    • Dylan Van Assche's avatar
      bluetooth: support more AT+CIND? indicators · d84bab3e
      Dylan Van Assche authored
      If ModemManager is available, report service status, roaming status and
      signal strength as well when an AT+CIND? command is received.
      d84bab3e
    • Dylan Van Assche's avatar
      bluetooth: support AT+CNUM · 5d4fd158
      Dylan Van Assche authored
      AT+CNUM returns the phone number of the subscriber.
      Supports this AT command when ModemManager is available.
      5d4fd158
    • Dylan Van Assche's avatar
      bluetooth: support AT+COPS · 74022702
      Dylan Van Assche authored
      AT+COPS=3,X sets the operator name format and AT+COPS? returns
      the current network operator name. Supports this command when
      ModemManager is available to provide this information.
      74022702
    • Dylan Van Assche's avatar
      bluetooth: support AT+BCC · 3f6cf8b0
      Dylan Van Assche authored
      HFs send AT+BCC to (re)start codec negotiations.
      Support this command by (re)setting the codec negotiations state and
      reply OK.
      3f6cf8b0
    • Dylan Van Assche's avatar
      bluetooth: support AT+NREC · 09a37588
      Dylan Van Assche authored
      AT+NREC=0 disables Noise Reduction and Echo Canceling in the AG.
      Bluetooth HFP 1.8 only supports the disable operation, so return
      an CME ERROR extended error code if another value is send by the HF.
      09a37588
    • Dylan Van Assche's avatar
      bluetooth: support AT+CMEE · e35bd471
      Dylan Van Assche authored
      AT+CMEE is now supported and extended error messages are returned
      when an ERROR occurs. By default, these error codes are disabled,
      the HF must enable them explicitely with AT+CMEE=1 (numeric mode).
      e35bd471
    • Dylan Van Assche's avatar
      bluetooth: Always reply to AT+CIND · aa2aa8e0
      Dylan Van Assche authored
      Once the stateful negotiation is complete, still reply
      to AT+CIND? and AT+CIND=? since we will report actual data here
      such as cellular service status, roaming, signal, and battery level.
      aa2aa8e0
    • Dylan Van Assche's avatar
      bluetooth: only reply OK for supported AT cmds · 5ebf59ed
      Dylan Van Assche authored
      PulseAudio should always be honest to Bluetooth devices even when audio is connected.
      5ebf59ed
    • Dylan Van Assche's avatar
      bluetooth: add ModemManager backend · b56cd0d4
      Dylan Van Assche authored
      ModemManager is an alternative to oFono for interacting with
      modems. Add a ModemManager backend to better support Bluetooth HFP 1.6
      with cellular support such as making and rejecting calls, retrieving
      cellular status and in-band ringing.
      b56cd0d4
  2. 01 Aug, 2022 7 commits
  3. 22 Jul, 2022 2 commits
  4. 21 Jul, 2022 1 commit
  5. 18 Jul, 2022 8 commits