Viewing 1 reply thread
  • Author
    Posts
    • #2432

      guido_ts
      Participant

        PB_PULL phonebook index mapping on AA32xx firmware with iPhone

        Hardware / Firmware

        • Module: IDC777
        • Firmware: AudioAgent V3.2.72 (AA32xx) / Build 0400427b
        • Manual reference: AAGENT-IDC777-V32xx (V2, July 2024)
        • Host: Teensy 4.1 over UART @ 115200, ASCII mode
        • Connected device: iPhone (iOS 18)

        Configuration

        SET PROFILES=ON 1 0 1 0 1 0 1 1 1
        SET PROFILES2=1 0
        SET HFP_CONFIG=ON ON OFF ON 5 ON OFF ON OFF
        SET AUDIO_DIGITAL=0 48000 64 00100100 00000000
        

        Use case HFP + PBAP client connecting to an iPhone. We want to download separately:

        • The local phonebook (pb)
        • Incoming call history – RECEIVED only (ich)
        • Outgoing call history – DIALED only (och)
        • Missed calls history – MISSED only (mch)

        Documented behavior (manual page 63)

        PB_PULL  [] [] [] [] []
          phonebook:
            0 = Main phonebook folder (default)
            1 = Incoming call history
            2 = Outgoing call history
            3 = Missed calls history
            4 = Combined call history
        

        Observed behavior with iPhone We send PB_PULL 1C 1 30 0 85. Indices return data as follows (verified by inspecting X-IRMC-CALL-DATETIME markers in the returned vCards):

        N Documented Observed (iPhone)
        0 pb (Main folder) Main phonebook contacts (alphabetical)
        1 ich Same as N=0 (Main phonebook)
        2 och Empty (just OK, no vCards)
        3 mch vCards with ;DIALED: markers (= och content)
        4 cch vCards with mixed ;MISSED: and ;RECEIVED: markers
        5 Empty

        Issues

        1. Returned indices don’t match documentation. Specifically, phonebook=1 (documented as ich) returns the main phonebook, and phonebook=3 (documented as mch) returns DIALED (och).
        2. We cannot find an index that returns pure RECEIVED-only entries. RECEIVED entries only appear mixed with MISSED at index 4.
        3. phonebook=2 (documented as och) and phonebook=5 return no data at all.

        Questions

        1. Is the phonebook index mapping correctly documented for AA32xx firmware? The observed mapping suggests indices may need to be offset, or the manual table is for a different firmware variant.
        2. Is there a way to retrieve RECEIVED-only history (pure ich) from an iPhone? Or is the iPhone PBAP server expected to expose only pb + och + cch (with combined RECEIVED/MISSED)?
        3. Sample log of a typical PB_PULL session is available on request.

        Secondary observation – HFP phone-initiated calls When the user initiates an outgoing call on the iPhone (rather than via the UART CALL OUTGOING command), the module emits only:

        +CIEV: 3,2     (callsetup=outgoing-dialing)
        +BCS:2         (codec selection)
        +CIEV: 3,3     (callsetup=alerting)
        +CIEV: 3,0     (callsetup=ended) or +CIEV: 2,1 (call=active)
        

        No CALL_OUTGOING, CALL_ACTIVE, or SCO_OPEN notifications are emitted. We had to add HFP +CIEV: 2/3 parsing to detect phone-initiated calls and switch our audio routing accordingly. Is this expected behavior, or is there a configuration to also receive CALL_*/SCO_* notifications for phone-initiated calls?

        Sample log – PB_PULL behavior with iPhone

        Setup: HFP connected to iPhone (link_id 13), PBAP just opened (link_id 1C). Lines marked [host TX] are commands sent to the module, [mod RX] are responses/notifications received.

        # Open PBAP profile
        [host TX] OPEN FC315D2AE358 PBAP
        [mod RX] OPEN_OK 1C PBAP FC315D2AE358
        
        # Test 1: Request phonebook index 3 (manual: missed calls history)
        [host TX] PB_PULL 1C 1 3 30 0 85
        [mod RX] PENDING
        [mod RX] PB_PULL 1C 198 BEGIN:VCARD
        [mod RX] VERSION:3.0
        [mod RX] FN:
        [mod RX] N:
        [mod RX] TEL:0
        [mod RX] X-IRMC-CALL-DATETIME;DIALED:20260430T113019    <-- DIALED, not MISSED
        [mod RX] END:VCARD
        [mod RX] BEGIN:VCARD
        [mod RX] VERSION:3.0
        [mod RX] FN:Weckwerth Claudia
        [mod RX] N:Weckwerth;Claudia
        [mod RX] TEL;TYPE=CELL:+491718300956
        [mod RX] X-IRMC-CALL-DATETIME;DIALED:20260430T121751    <-- DIALED again
        [mod RX] END:VCARD
        ... (28 more entries, ALL with ;DIALED: marker, none MISSED) ...
        [mod RX] OK
        
        # Test 2: Request phonebook index 4 (manual: combined call history)
        [host TX] PB_PULL 1C 1 4 30 0 85
        [mod RX] PENDING
        [mod RX] PB_PULL 1C 308 BEGIN:VCARD
        [mod RX] VERSION:3.0
        [mod RX] FN:Weckwerth Claudia
        [mod RX] N:Weckwerth;Claudia
        [mod RX] TEL;TYPE=CELL:+491718300956
        [mod RX] X-IRMC-CALL-DATETIME;MISSED:20260427T115225   <-- MISSED
        [mod RX] END:VCARD
        [mod RX] BEGIN:VCARD
        ... (multiple MISSED entries) ...
        [mod RX] FN:Melle Felix
        [mod RX] N:Melle;Felix
        [mod RX] TEL;TYPE=CELL:+4917637894433
        [mod RX] X-IRMC-CALL-DATETIME;RECEIVED:20260327T133316  <-- RECEIVED, mixed in
        [mod RX] END:VCARD
        [mod RX] BEGIN:VCARD
        ... more MISSED entries ...
        [mod RX] FN:Weckwerth Alessandro
        [mod RX] N:Weckwerth;Alessandro
        [mod RX] TEL;TYPE=CELL:+4917680002945
        [mod RX] X-IRMC-CALL-DATETIME;RECEIVED:20260320T180555  <-- RECEIVED again
        [mod RX] END:VCARD
        ... more MISSED entries ...
        [mod RX] OK
        
        # Test 3: Request phonebook index 1 (manual: incoming call history)
        [host TX] PB_PULL 1C 1 1 30 0 85
        [mod RX] PENDING
        [mod RX] PB_PULL 1C 457 BEGIN:VCARD
        [mod RX] VERSION:3.0
        [mod RX] FN:Meine Nummer
        [mod RX] N:Meine Nummer
        [mod RX] TEL;TYPE=CELL:+491715420202
        [mod RX] END:VCARD
        [mod RX] BEGIN:VCARD
        [mod RX] VERSION:3.0
        [mod RX] FN:Adelakoun Abdel Madjid                  <-- main phonebook entries
        [mod RX] N:Adelakoun;Abdel Madjid
        [mod RX] TEL;TYPE=WORK:+229 (97) 579495
        [mod RX] ADR;TYPE=WORK:;Boulevard Saint Michel;...
        [mod RX] EMAIL;TYPE=INTERNET:madelakoun@anm.bj
        [mod RX] END:VCARD
        ... (alphabetically sorted main phonebook contacts, NO X-IRMC-CALL-DATETIME) ...
        [mod RX] OK
        
        # Test 4: Request phonebook index 2 (manual: outgoing call history)
        [host TX] PB_PULL 1C 1 2 30 0 85
        [mod RX] PENDING
        [mod RX] OK                                          <-- no vCards returned
        
        # Close PBAP
        [host TX] CLOSE 1C
        [mod RX] CLOSE_OK 1C PBAP FC315D2AE358
        

        Summary table (this session)

        Index sent vCards returned Content type
        1 (doc: ich) ~30 Main phonebook (no X-IRMC-CALL-DATETIME)
        2 (doc: och) 0 empty
        3 (doc: mch) ~30 All ;DIALED: (= och content)
        4 (doc: cch) ~22 Mixed ;MISSED: and ;RECEIVED:
        5 0 empty

        Pure ;RECEIVED:-only stream is not reachable via any tested index — RECEIVED entries only appear interleaved with MISSED at index 4.

      • #2433

        IOT747 Team
        Keymaster

          Hi Guido,

          There is a typo in the document t. It should be like the below:

          : (Phonebook entry)

          • 1-(Default) Main phonebook folder
          • 2-Incoming call history
          • 3-Outgoing call history
          • 4-Missed calls history
          • 5-Combined call history

          Any other value will return the Main phonebook folder.

          Also, we do receive inputs on the iPhone for all values. We use the commadn pb_pull 1c 1 2 20 0 85 (We saw that you forgot one parameter in  your text PB_PULL 1C 1 30 0 85 but it was maybe a typo). Please note that yo uhave to allow to Synch Contacts on the iPhone, Otherwise, it returns nothing. See picture below. Also, we gave some UART examples below.

          IOT747 Support

          image

          pb_pull 1c 1 1 1 0 85
          PENDING
          PB_PULL 1C 93 BEGIN:VCARD
          VERSION:3.0
          FN:My Number
          N:My Number
          TEL;TYPE=CELL:+447966144719
          END:VCARD

          OK
          pb_pull 1c 1 2 1 0 85
          PENDING
          PB_PULL 1C 133 BEGIN:VCARD
          VERSION:3.0
          FN:Af
          N:;Af
          TEL;TYPE=CELL:+44 7709 029906
          X-IRMC-CALL-DATETIME;RECEIVED:20260504T153612
          END:VCARD

          OK
          pb_pull 1c 1 3 1 0 85
          PENDING
          PB_PULL 1C 131 BEGIN:VCARD
          VERSION:3.0
          FN:Af
          N:;Af
          TEL;TYPE=CELL:+44 7709 029906
          X-IRMC-CALL-DATETIME;DIALED:20260505T084253
          END:VCARD

          OK
          pb_pull 1c 1 4 1 0 85
          PENDING
          PB_PULL 1C 129 BEGIN:VCARD
          VERSION:3.0
          FN:Af
          N:;Af
          TEL;TYPE=CELL:+447709029906
          X-IRMC-CALL-DATETIME;MISSED:20260503T195822
          END:VCARD

          OK
          pb_pull 1c 1 5 1 0 85
          PENDING
          PB_PULL 1C 131 BEGIN:VCARD
          VERSION:3.0
          FN:Af
          N:;Af
          TEL;TYPE=CELL:+44 7709 029906
          X-IRMC-CALL-DATETIME;DIALED:20260505T084253
          END:VCARD

          OK

      Viewing 1 reply thread

      You must be logged in to reply to this topic.