Renato Alcara
|
758ab6d8af
|
feat: complete WhatsApp call signaling (voice, video, call links) (#245)
feat: complete WhatsApp call signaling (voice, video, call links) (#245)
|
2026-03-01 14:07:43 -03:00 |
|
Claude
|
f145ab8830
|
feat(call): add caller phone number with Brazilian landline sanitization
Implements Baileys PR #2190 with InfiniteAPI enhancement for Brazilian phone numbers.
## Changes Implemented:
### 1. Caller Phone Number Support (src/Types/Call.ts)
- Added `callerPn?: string` field to WACallEvent type
- Enables programmatic identification of incoming callers
- Documented as sanitized to fix decoder bugs
### 2. Phone Number Extraction (src/Socket/messages-recv.ts:1656-1670)
- Extract `caller_pn` attribute from call offer events
- Apply sanitization before storing
- Preserve callerPn across call state updates (fallback logic)
### 3. Brazilian Landline Bug Fix (CRITICAL ENHANCEMENT)
Implemented `sanitizeCallerPn()` helper function (lines 1606-1631):
**Problem:** WhatsApp decoder has off-by-one error for Brazilian landlines
- 12-digit numbers incorrectly get trailing zero
- Example: 551738025555 → 5517380255550 (breaks JID validation)
**Solution:**
- Detects 13-digit numbers starting with '55' (Brazil country code)
- Removes trailing zero to restore correct 12-digit format
- Logs sanitization for debugging
- Returns undefined for missing/invalid numbers
**Impact:**
```typescript
// Before sanitization:
callerPn: "5517380255550" // ❌ Invalid - 13 digits with extra zero
// After sanitization:
callerPn: "551738025555" // ✅ Valid - correct 12 digits
```
## Benefits:
- ✅ Caller identification for call filtering (blacklist/whitelist)
- ✅ CRM integration via phone number lookup
- ✅ Call analytics and logging
- ✅ Automated call routing/handling
- ✅ Fixes known decoder bug for Brazilian users
- ✅ Parité with Baileys upstream
- ✅ Backward compatible (optional field)
## Testing Notes:
### Standard Numbers (Working):
- Mobile: 10-11 digits → stored as-is
- International: varying lengths → stored as-is
### Brazilian Landlines (Fixed):
- Input: "5517380255550" (13 digits with bug)
- Output: "551738025555" (12 digits corrected)
- Log: "Sanitized Brazilian landline number"
### Edge Cases Handled:
- undefined/null → returns undefined
- Non-Brazilian → no sanitization
- Correct length → no sanitization
## References:
- Baileys PR: https://github.com/WhiskeySockets/Baileys/pull/2190
- Bug Report: CDPPF comment on landline off-by-one error
- Country Code: +55 (Brazil)
https://claude.ai/code/session_01TvSrN9JmHZDdKMZDFWEcUS
|
2026-02-11 15:46:15 +00:00 |
|
canove
|
fa706d0b50
|
chore: format everything
|
2025-05-06 12:10:19 -03:00 |
|
vini
|
ed00a57c84
|
remove duplicated call reject event / add terminate tag (#1031)
* initial commit
* add terminate tag
* lint
* lint 2
* Update src/Socket/messages-recv.ts
* chore: linting
---------
Co-authored-by: Rajeh Taher <rajeh@reforward.dev>
|
2024-09-22 14:34:29 +03:00 |
|
Bob
|
e097c2b24f
|
Update Call.ts
|
2023-12-06 06:59:03 -03:00 |
|
Adhiraj Singh
|
ae4aa67950
|
feat: handle call events
|
2022-05-09 15:00:53 +05:30 |
|