Processing blocked session initiation protocol (SIP) calls in a contact center call handler
A call handler is configured to originate calls using records stored in a contact list by using various campaign call data comprising a set of calling party numbers or “ANIs” that are to be used when originating calls. Each ANI is associated with a status, which reflects whether a terminating voice service provider has blocked a prior call using that ANI. The call handler is configured to recognize when a call is blocked by examining SIP protocol-based error codes and/or intercept announcements provided by the carrier when the call is blocked. Upon detecting the call is blocked, the call handler will update the status of that ANI and select another ANI value from the campaign call data to use for subsequent call originations of that campaign. A set of ANIs that a carrier has blocked may be stored to facilitate subsequent redress with that carrier.
1. A call handler configured to:
retrieve a plurality of records from a contact list, wherein each record comprises a respective called party number used to originate a respective call of a calling campaign;
maintain campaign call data in a memory, the campaign call data comprising a set of calling party telephone numbers to be used when originating calls of the calling campaign;
maintain a status table in the memory associating a status of each calling party telephone number in the set of calling party telephone numbers, where the status of a respective calling party telephone number is changed in response to detecting the respective call originated using the respective calling party number is reported as blocked via a SIP error code;
retrieve a first record of the plurality of records from the contact list comprising a first called party number;
originate a first call by transmitting a session initiated protocol (“SIP”) INVITE message to a voice over IP (“VoIP”) carrier, the SIP INVITE message indicating the first called party number and a first calling party telephone number selected from the set of calling party telephone numbers;
receive the SIP error code after originating the first call, wherein the SIP error code indicates the first call was blocked by a terminating voice service provider;
modify a status of the first calling party telephone number in the status table in the memory in response to receiving the SIP error code;
retrieve a second calling party telephone number from the campaign call data, wherein a status of the second calling party telephone number does not reflect having been blocked; and
use the second calling party telephone number to originate a second call to a second called party number using a second record from the contact list.
2. The call handler of claim 1 , wherein the call handler is further configured to:
receive an audio intercept announcement after originating the first call and before receiving the SIP error code, wherein the audio intercept announcement conveys to a listener that the first call was blocked by the terminating VoIP service provider.
3. The call handler of claim 1 , wherein the call handler is further configured to:
ascertain the terminating VoIP service provider by using information conveyed in the SIP error code.
4. The call handler of claim 3 , wherein the call handler is further configured to:
receive along with the SIP error code a virtual contact file (“vCard”) comprising information used to ascertain the terminating VoIP service provider.
5. The call handler of claim 1 , wherein the call handler is further configured to:
flag the first calling party number as a current calling party number prior to receiving the SIP error code; and
reset the flag of the first calling party number as the current calling party number and flag the second calling party number as the current calling party number after receiving the SIP error code.
6. The call handler of claim 1 , wherein the call handler is further configured to:
receive information from a speech analytics system analyzing an audio intercept announcement to identify the terminating VoIP service provider.
7. The call handler of claim 1 , wherein a carrier table is maintained in the memory identifying the terminating VoIP service provider and lists the first calling party telephone number, and wherein the first calling party telephone number is added to the carrier table in response to receiving the SIP error code.
8. The call handler of claim 1 , wherein the value of the SIP error code is 608.
9. A non-transitory computer readable medium storing instructions that when executed cause one or more computer processors to:
retrieve a plurality of records from a contact list, wherein each record comprises a respective called party number used to originate a respective call of a calling campaign;
maintain campaign call data in a memory comprising a set of calling party telephone numbers to be used when originating calls of the calling campaign;
maintain a status table in the memory associating a status of each calling party telephone number in the set of calling party telephone numbers, where the status of a respective calling party telephone number is changed in response to detecting a respective call originated using the respective calling party number is reported as blocked using a SIP error code;
retrieve a first record of the plurality of records from the contact list comprising a first called party number;
originate a first call by transmitting a session initiated protocol (“SIP”) INVITE message to a voice over IP (“VoIP”) carrier, the SIP INVITE message indicating the first called party number and a first calling party telephone number, wherein the first calling party telephone number is in the set of calling party telephone numbers;
receive the SIP error code after originating the first call, wherein the SIP error code indicates the first call was blocked by a terminating VoIP provider;
modify a status of the first calling party telephone number in the status table in the memory in response to receiving the SIP error code;
retrieve a second calling party telephone number from the campaign call data, wherein a status of the second calling party telephone number does not reflect having been blocked; and
use the second calling party telephone number to originate a second call to a second called party number using a second record from the contact list.
10. The non-transitory computer readable medium of claim 9 , wherein the instructions when executed further cause the computer processor to:
receive an audio intercept announcement after originating the first call and before receiving the SIP error cord, wherein the audio intercept announcement conveys to a listener that the first call was blocked by the terminating VoIP service provider.
11. The non-transitory computer readable medium of claim 9 , wherein the instructions when executed further cause the computer processor to:
ascertain the terminating VoIP service provider by using information conveyed in the SIP error code.
12. The non-transitory computer readable medium of claim 11 , wherein the instructions when executed further cause the computer processor to:
receive with the SIP error code a virtual contact file (“vCard”) conveying the information identifying the terminating VoIP service provider.
13. The non-transitory computer readable medium of claim 9 , wherein the instructions when executed further cause the computer processor to:
indicate the second calling party telephone number in the status table as a current calling party telephone number after receiving the SIP error code.
14. The non-transitory computer readable medium of claim 9 , wherein the instructions when executed further cause the computer processor to:
receive information from a speech analytics system identifying the terminating VoIP service provider by analyzing the audio intercept.
15. The non-transitory computer readable medium of claim 9 , wherein the instructions when executed further cause the computer processor to:
maintain a carrier table in the memory associating the terminating VoIP service provider and the first calling party telephone number, wherein the first calling party telephone number is added to the carrier table in response to receiving the SIP error code.
16. The non-transitory computer readable medium of claim 9 , wherein the value of the SIP error code is 608.
17. A method for originating calls by a call handler comprising:
retrieving a plurality of records from a contact list by the call handler, wherein each record comprises a respective called party number used to originate a respective call in a calling campaign;
storing in a memory campaign call data comprising a set of calling party telephone numbers to be used when originating the call of the calling campaign;
storing a status table in the memory associating a status of each calling party telephone number in the set of calling party telephone numbers, where the status of a respective calling party telephone number is changed in response to detecting the respective call originated using the respective called party number is indicated as blocked via a SIP error code;
retrieving a first record of the plurality of records from the contact list comprising a first called party number;
originating a first call by transmitting a session initiated protocol (“SIP”) INVITE message to a voice over IP (“VoIP”) carrier, the SIP INVITE message indicating the first called party number and a first calling party telephone number selected from the set of calling party telephone numbers;
receiving a SIP error code after originating the first call, wherein the SIP error code indicates the first call was blocked by a terminating VoIP service provider;
modifying a status of the first calling party telephone number in the status table in the memory in response to receiving the SIP error code;
retrieving a second calling party telephone number from the campaign call data, wherein a status of the second calling party telephone number does not reflect having been blocked; and
using the second calling party telephone number to originate a second call to a second called party number using a second record from the contact list.
18. The method of claim 17 , further comprising:
receiving an audio intercept announcement after originating the first call and before receiving the SIP error cord, wherein the audio intercept announcement conveys to a listener that the first call was blocked by the terminating VoIP service provider.
19. The method of claim 18 , wherein the SIP error code is a value of 608.
20. The method of claim 17 , wherein the SIP error code is in a message further comprising a virtual contact file (“vCard”).