- Shipped
- 2026年8月27日 17:15 UTC
- Author
- kamo
- Commit
- fb3aa0c
A history row exists to answer "who was this call with", and that side flips with the direction. HistoryRow read `fromName || fromNumber` unconditionally, so every call the member placed showed their own extension — or, once FreePBX had rewritten the caller ID to the trunk's outbound DID, the org's main number: the one number the row is guaranteed not to be about. Call-back and "add to contacts" dialled that same wrong side. callCounterparty() mirrors the rule the server already settled in **************** — inbound takes the from side, outbound the to side — so both ends of the system agree on who a call was with. Direction is matched by case-insensitive prefix because nothing normalises the provider's spelling between the CDR and this row. Pairs with VOIPService 8b09ad1, which is what makes an outbound external call reach this list at all.