Skip to main content

Number Masking

Number masking connects two parties (e.g., a customer and a delivery agent, a buyer and a seller) through a virtual number without revealing either party's personal phone number. Both parties see the ExoPhone as the caller ID, ensuring complete privacy.

How Number Masking Works​

Party A (Customer: +91-98765XXXXX)
|
calls ExoPhone (+91-80-4712XXXX)
|
v
Exotel looks up the masking pair
|
v
Exotel connects to Party B (Driver: +91-98761XXXXX)
|
v
Party B sees ExoPhone as caller ID (not Customer's number)
Party A sees ExoPhone as caller ID (not Driver's number)

Neither party sees the other's personal phone number. Both see the ExoPhone.

Common Use Cases​

IndustryUse CaseParty AParty B
Ride-hailingRider calls driverRiderDriver
Food deliveryCustomer calls delivery partnerCustomerDelivery partner
E-commerceBuyer contacts sellerBuyerSeller
Real estateProspect contacts brokerProspectBroker
HealthcarePatient calls doctorPatientDoctor
LogisticsRecipient calls courierRecipientCourier
Dating appsUser calls matchUser AUser B

Setting Up Number Masking​

Step 1: Get a Masking ExoPhone​

Purchase a dedicated ExoPhone for number masking. This number will be displayed to both parties as the caller ID.

tip

For high-volume masking, you may need multiple ExoPhones. Each ExoPhone can handle a limited number of concurrent calls. Contact your Exotel account manager for capacity planning.

Step 2: Create Masking Pairs via API​

Use the Exotel API to register number pairs. When Party A calls the ExoPhone, Exotel looks up the mapping and connects to Party B.

# Register a masking pair
curl -X POST 'https://<api_key>:<api_token>@api.exotel.com/v1/Accounts/<account_sid>/NumberMasking' \
-d 'VirtualNumber=<exophone>' \
-d 'NumberA=<customer_number>' \
-d 'NumberB=<driver_number>' \
-d 'ExpiresIn=3600'

Parameters:

ParameterRequiredDescription
VirtualNumberYesThe ExoPhone used for masking
NumberAYesFirst party's phone number
NumberBYesSecond party's phone number
ExpiresInNoTime in seconds before the pair expires (e.g., 3600 = 1 hour)
CallbackUrlNoURL to receive call status updates

Step 3: Share the ExoPhone with Both Parties​

Instead of sharing personal numbers, share the ExoPhone:

  • To Party A: "Call +91-80-4712XXXX to reach your driver."
  • To Party B: "If the customer calls, it will come from +91-80-4712XXXX."

Step 4: Handle the Call​

When Party A dials the ExoPhone:

  1. Exotel identifies Party A by their phone number.
  2. Exotel looks up the masking pair to find Party B.
  3. Exotel connects Party A to Party B.
  4. Both parties see the ExoPhone as the caller ID.

When Party B dials the ExoPhone:

  1. Exotel identifies Party B and looks up the pair.
  2. Exotel connects Party B to Party A.
  3. Bidirectional masking works in both directions.

Lead Assist (Exotel Feature)​

Lead Assist is Exotel's productized number masking solution designed specifically for lead generation and sales scenarios.

How Lead Assist Works​

  1. A prospect submits their phone number on your website.
  2. Your application calls the Exotel API to initiate a masked call.
  3. Exotel calls your sales agent first, then the prospect.
  4. The prospect sees the ExoPhone as the caller ID.
  5. After the call, both numbers are masked and not visible to each other.

Setting Up Lead Assist​

# Initiate a Lead Assist call
curl -X POST 'https://<api_key>:<api_token>@api.exotel.com/v1/Accounts/<account_sid>/Calls/connect.json' \
-d 'From=<agent_number>' \
-d 'To=<prospect_number>' \
-d 'CallerId=<exophone>'

This uses the standard Connect Two Numbers API but with the ExoPhone as the caller ID, effectively masking both numbers.

Masking Pair Management​

Listing Active Pairs​

curl 'https://<api_key>:<api_token>@api.exotel.com/v1/Accounts/<account_sid>/NumberMasking?VirtualNumber=<exophone>'

Deleting a Pair​

curl -X DELETE 'https://<api_key>:<api_token>@api.exotel.com/v1/Accounts/<account_sid>/NumberMasking/<pair_id>'

Auto-Expiry​

Set ExpiresIn when creating pairs to auto-delete them after a time period. This is essential for temporary interactions:

ScenarioRecommended Expiry
Ride-hailing trip30 minutes after trip completion
Food delivery1 hour after delivery confirmation
Real estate viewing24 hours after scheduled viewing
E-commerce order48 hours after delivery
warning

Always set an expiry for masking pairs. Orphaned pairs consume ExoPhone capacity and may allow unintended calls between parties long after the interaction is complete.

Number Pool Management​

For high-volume masking, you need a pool of ExoPhones:

VolumeRecommended Pool Size
Up to 50 concurrent masked calls5-10 ExoPhones
50-200 concurrent masked calls10-25 ExoPhones
200-1000 concurrent masked calls25-100 ExoPhones
1000+ concurrent masked callsContact Exotel for enterprise setup

Pool Allocation Logic​

When creating a masking pair, select an ExoPhone from the pool that:

  1. Is not already at maximum concurrent call capacity.
  2. Is not already assigned to a pair involving either number.
  3. Has the appropriate region or caller ID type.

Implement this logic on your server or contact Exotel for managed pool allocation.

Call Recording with Number Masking​

Call recording works normally with number masking. Enable recording to:

  • Maintain quality assurance records
  • Resolve disputes between parties
  • Comply with regulatory requirements

Configure recording in the masking pair setup or at the account level.

Privacy Compliance​

Number masking helps with regulatory compliance:

RegulationHow Number Masking Helps
Data privacy lawsPersonal phone numbers are not shared between parties
GDPR (EU)Minimizes personal data exposure
IT Act (India)Protects personal information of users
Platform liabilityPlatforms avoid liability from number misuse

Best Practices​

  • Always set expiry times -- Clean up masking pairs after the interaction is complete.
  • Use dedicated ExoPhones -- Do not mix masking ExoPhones with your regular incoming call ExoPhones.
  • Monitor pair utilization -- Track how many active pairs you have and plan ExoPhone capacity accordingly.
  • Handle edge cases -- Define what happens when a number calls the ExoPhone but has no active pair (play an error message or route to support).
  • Log everything -- Store masking pair creation/deletion events, call logs, and recordings for audit purposes.
  • Implement bidirectional masking -- Ensure both Party A and Party B can call each other through the ExoPhone.

Troubleshooting​

IssueCauseSolution
Call not connectingMasking pair expiredCheck pair status and recreate if needed
Wrong party connectedNumber mapped to wrong pairVerify pair configuration
Caller hears error messageNo active pair for this numberCreate a masking pair before the call
ExoPhone capacity exceededToo many concurrent masked callsAdd more ExoPhones to the pool
One-directional onlyPair not set up for bidirectionalEnsure both numbers are registered in the pair