VICIfast
All guides

SIP 603+ vs Spam Likely: blocked or labelled calls

A blocked call never rings and the network returns SIP 603+, 607 or 608. A labelled call rings with a warning and returns nothing. How to tell them apart in VICIdial.

VICIfastLast updated

Two different things get called "my number got flagged". In one, the called person's network refuses the call before the phone rings, and your carrier hands you a SIP code saying so. In the other, the phone rings, the screen says "Spam Likely", and nothing comes back to you at all.

The first is evidence. The second has to be inferred from pick-up rates. This page shows how to read the first in VICIdial's own logs, and why the second needs a different method. If you'd rather monitor every caller ID's pick-up rate than read SQL, the DID Reputation Center does both.

What is the difference between a blocked call and a labelled call?

A blocked call never reaches the phone: the called party's network rejects it and your carrier returns a SIP failure code to your dialer. A labelled call is delivered and rings, with a warning on the screen. No SIP code reports the label, so you only see fewer people picking up.

BlockedLabelled
Does the phone ring?NoYes, with "Spam Likely" or similar
Does your dialer get a signal?Yes, a SIP code on the callNo
Where you see itVICIdial's carrier logA drop in pick-up rate
Redress required of the carrier?YesNo
How sure can you be?High, per callInferred, per number

The rules differ for the same reason. Under the FCC's Eighth Report and Order (FCC 25-15, adopted 27 February 2025), analytics-based blocking must use SIP 603+ and carry redress contact information. Full compliance was due from March 2026. The order covers blocking, not labelling.

What do SIP 603, 603+, 607 and 608 mean?

All four are a refusal. 603 is a plain "Decline". 607 means the called party marked the call as unwanted. 608 means an intermediary, often an analytics engine, rejected it, and it can carry contact details. 603+ is the industry name for a 603 that carries redress contact information.

In plainer terms:

  • 603 Decline. Defined in the base SIP specification (RFC 3261). The called side refuses. It also happens for ordinary reasons: a person pressed "decline" on their handset, or a do-not-disturb rule fired. A few are normal. A burst is not.
  • 603+. Not a new code. It is a 603 with extra data, so the caller knows whom to contact. The FCC made it the only code allowed for analytics-based blocking.
  • 607 Unwanted. Defined in RFC 8197. The called party said this call is unwanted, and the signal can feed back into blocking decisions.
  • 608 Rejected. Defined in RFC 8688. An intermediary rejected the call, and the response can point to whom to contact.

These are the general meanings from the standards. How a given carrier passes the codes and the contact details back to you varies, so check what your trunk actually returns before you build an alert on it.

What should I do about each SIP code?

Match the code to the cause before you act. 603, 607 and 608 point at the called network or person; 403 and 503 usually point at your own carrier; 486 and 480 are ordinary dialing. Only the first group says anything about the caller ID.

SIP codeWhat it meansWhat to do
603Declined by the called sideA few per number is normal. A cluster on one number: treat it as 603+ below
603+Blocked by network analytics, with redress contactStop dialing that number on that route. Use the contact. Check consent and complaints
607Called party marked it unwantedCheck list consent and complaint sources. Rest the number
608Rejected by an intermediary, may carry contact infoSame as 603+: stop, contact, review
403Your carrier refused this caller ID or accountNot a spam signal. Check the caller ID is allowed on the trunk
404 / 484Number not found or incompleteList quality, not reputation
480 / 487Unavailable, or ring time ran outOrdinary no-answer
486 / 600BusyOrdinary
503Carrier overloaded or rate-limitingCheck trunk capacity and calls per second, not the number

Treat the "what to do" column as a starting point. Your carrier's own documentation decides what its codes mean on its network.

Where does VICIdial record SIP results?

In the carrier log table (vicidial_carrier_log), one row per dial attempt, with the dial status, the hangup cause, and the SIP code and reason text the carrier sent back. The caller ID is not in that table. It lives in the dial caller ID log (vicidial_dial_cid_log), and the two connect through the call's caller code.

Two traps. First, the unique ID in the carrier log does not reliably match the one in the main call log (vicidial_log); join on the caller code instead. Second, VICIdial can store the reason text with a stray trailing parenthesis, so you may see "Decline)".

Carrier logging has to be switched on in VICIdial's system settings for the table to fill. If it is empty, nothing below works.

Look it up in two passes, and keep the window short, because the dialer is writing into the same tables:

  1. Find the declines. In the carrier log, take the last hour of attempts whose SIP code is 603, 607 or 608, and note each one's caller code and channel.
  2. Find the caller ID. Look those caller codes up in the dial caller ID log, which gives the caller ID each attempt went out on.
  3. Count per caller ID. A cluster of declines on one or two numbers points at those numbers. Declines spread evenly across every number point at the trunk or the carrier.

The channel also tells you the trunk, with one catch: auto-dial attempts show a Local channel, so the trunk has to be worked out from the dialplan entry that handles the extension. The DID Reputation Center does that mapping for you, and shows SIP codes per trunk as well as per number.

For the broader question of which caller IDs your calls actually used, How to read the Caller ID Log report covers the report side.

Why is a burst of 603, 607 or 608 the hardest evidence of blocking?

Because it is the network saying so, call by call, with a code attached. Pick-up rates can drop for a dozen reasons: time of day, list quality, a new script. A cluster of 603, 607 or 608 on one caller ID, while your other numbers on the same campaign and trunk see few, has one likely cause.

Look for three things together:

  1. One number, not all of them. If every caller ID on a trunk shows 603s at the same moment, suspect the trunk or the carrier route before the numbers.
  2. A concentration by called network. Declines on T-Mobile numbers and nowhere else point at that network's analytics. Ported numbers blur this, so treat it as approximate.
  3. A trend, not a spike. One bad hour on a short list is noise. A rising share over days is the number burning.

What do I do when a number is being declined?

Stop dialing it, read the redress contact, then look at your own side. Blocking is a judgment about this number's traffic, and more calls on the same number will not change it.

  1. Take the number out of the campaign. In VICIdial that means setting it inactive in the CID group or the area-code table the campaign draws from. The steps are in How to rest a flagged caller ID in VICIdial.
  2. Use the contact in the 603+ or 608. FCC 20-187 (December 2020) requires carriers that block to offer redress, with a status update within 24 hours. If your trunk strips the contact details, ask your carrier which network blocked the call.
  3. Check consent and complaints. A number draws 607s when people mark it unwanted. Look at the list source, the opt-out handling and the call-back path.
  4. Do not replace it the same day and carry on. A fresh number on the same list with the same pattern gets the same result. Fix the source first.
  5. Bring it back slowly. Give the number a few small calls before it takes real volume, and watch the code mix.

This is operational advice, not legal advice. For what your calling program must do, talk to your counsel.

How do I detect a "Spam Likely" label when nothing comes back?

Compare each number's pick-up rate with your other numbers on the same campaign, split by the called person's network. A label lowers pick-up on one network or across all of them, with no code. A number that does worse than its peers on the same list is the signal, not the absolute rate.

Raw pick-up rates mislead, so three controls matter:

  • Same campaign, same list, same hours. Compare like with like.
  • Per called network. AT&T, T-Mobile and Verizon use different analytics, so a number can be fine on one and labelled on another. T-Mobile uses First Orion and AT&T uses Hiya; Verizon is commonly reported to use TNS, which says three of the top five US wireless carriers use its Call Guardian.
  • The number's own past. A drop from its own baseline is stronger than a gap to its peers.

This is inference, and it can be wrong. A low pick-up rate is a symptom with other causes. The DID Reputation Center reads every outbound call from the VICIdial logs and compares each caller ID with your others in the same campaigns, split by the called person's network and by SIP trunk. It does not read carrier labels, and it does not file anything with carriers. It reports how many people pick up and what the SIP codes were.

For the label names and what they signal, see Spam Likely vs Scam Likely. For what to do once you believe a label is on a number, see How to get Spam Likely removed.

Can I get a blocked or labelled number reviewed?

Blocking has a required path. Labelling does not, though most analytics providers run one anyway. If your calls are blocked, the carrier must offer redress and give a status update within 24 hours. If they are only labelled, you depend on the provider's process.

For labelling, the FCC declined in its Fourth Report and Order to extend required redress to erroneous labels. In April 2026 USTelecom adopted redress best practices that cover labelled calls as well as blocked ones. Members commit to a conclusion on at least 95% of qualifying requests within two business days, one for critical requests, with no fee or contract. That is a voluntary commitment, not a rule.

The Free Caller Registry, run by First Orion, Hiya and TNS, is for businesses calling on their own behalf. BPOs and other third parties must contact the providers directly. The registry states that it does not guarantee redress and is not a replacement for caller reputation monitoring.

Matt Florell, VICIdial's author, said at Astricon in 2021 that labels depend on the caller ID number, and that a label can take 2 to 21 days to clear after a number stops being used. Plan the rest period around that.

Which logs do I check first?

Start with declines by number, then declines by trunk, then pick-up rate by number, then the list. In that order the cheapest question is answered first, and each step rules something out.

  1. Declines by caller ID. 603, 607 and 608 per caller ID over the last 24 hours.
  2. Declines by trunk. The same count per trunk, to separate a number problem from a carrier problem.
  3. Pick-up rate by number. Against other numbers on the same campaign, split by called network.
  4. Attestation. If your carrier reports it, compare A, B and C attested calls. See Why A attestation doesn't stop Spam Likely. Attestation is one input to analytics, not a guarantee of delivery.
  5. The list. Source, age, opt-out handling.

The free health view on every VICIfast server shows each number's status, read hourly. The full center reads every 15 minutes and adds declines per number and per trunk, the network split and a burn forecast per number.

Sources