WO1999030461A2 - Virtual private network service for an advanced intelligent network - Google Patents

Virtual private network service for an advanced intelligent network Download PDF

Info

Publication number
WO1999030461A2
WO1999030461A2 PCT/US1998/026164 US9826164W WO9930461A2 WO 1999030461 A2 WO1999030461 A2 WO 1999030461A2 US 9826164 W US9826164 W US 9826164W WO 9930461 A2 WO9930461 A2 WO 9930461A2
Authority
WO
WIPO (PCT)
Prior art keywords
block
call
code
virtual private
private network
Prior art date
Application number
PCT/US1998/026164
Other languages
French (fr)
Other versions
WO1999030461A3 (en
Inventor
Jeffrey D. Copley
Chao-Yee Kuan
Pardeep Kholi
Marcus V. Brown, Jr.
Original Assignee
Alcatel Usa Sourcing, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Usa Sourcing, L.P. filed Critical Alcatel Usa Sourcing, L.P.
Priority to AU17204/99A priority Critical patent/AU1720499A/en
Publication of WO1999030461A2 publication Critical patent/WO1999030461A2/en
Publication of WO1999030461A3 publication Critical patent/WO1999030461A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking

Definitions

  • This invention is related in general to the field of telecommunications. More particularly, the invention is related to a virtual private network service for an advanced intelligent network (AIN) .
  • AIN advanced intelligent network
  • AIN advanced intelligent network
  • the advanced intelligent network typically includes switches or service switching points (SSPs) coupled to signal transfer points (STPs) , which are in turn coupled to service control points (SCPs) .
  • SSPs service switching points
  • STPs signal transfer points
  • SCPs service control points
  • the interconnections between service switching points and service control points employ the signalling system number 7 or SS7 protocol for sending query messages associated with the execution of services.
  • the service control points executes service logic programs which define the services and further store and maintain databases that have data associated with the services.
  • the service control points are further coupled to a service management system (SMS) , which supports the operations, administrations, management, and provisioning
  • SMS service management system
  • the advanced intelligent network further includes intelligent peripherals, which are coupled to service switching points and the service management system, and provide pre-recorded voice announcements, voice synthesis, and other functionalities that generally facilitate interaction with service subscribers and customers.
  • the connection between the service management system and other network nodes is typically via X.25 links.
  • telecommunications services are typically defined in a service creation environment (SCE) node by the service provider and then relayed to the service management system, which disseminates the service logic programs to the rest of the network for execution.
  • SCE service creation environment
  • the International Telecommunications Union (ITU) and other standard setting bodies have promulgated recommendations and requirements for advanced intelligent network services .
  • One service is the virtual private network service, which basically allows a service subscriber to maintain and use a private number plan on the public network.
  • these standards do not spell out how this service is to be implemented and the specific service features that support this service.
  • a method of providing virtual private network services includes receiving a number of dialed digits entered by a caller, where the dialed digits includes a called party number, recognizing the caller as a member of a subscriber to the virtual private network service, obtaining stored information on the subscriber, translating the called party number to a destination number, determining whether the call is within a set of predetermined block criteria, playing an appropriate announcement to the caller and disconnecting the call if the call is blocked, and routing the call to the destination number if the call is not blocked.
  • a method of providing virtual private network services includes receiving a number of dialed digits entered by a caller, the dialed digits including a called party number, recognizing the caller as a member of a subscriber to the virtual private network service, obtaining stored information on the subscriber, translating the called party number to a destination number, determining whether the time of the call is within a predetermined authorized range, determining whether the destination number is also a member of the same virtual private network and whether a non-plan call is blocked, determining whether the destination number is within North American numbering plan or international direct distance dialing and whether such a call is blocked, determining whether the destination number is a blocked destination number, playing an appropriate announcement to the caller and disconnecting the call if the call is blocked, and routing the call to the destination number if the call is not blocked.
  • a method of routing calls to and from a virtual private network includes receiving a number of dialed digits from within the virtual private network, obtaining information on the subscriber of the virtual private network, translating the dialed digits to a destination number and determining whether the destination number is a virtual private network number, determining whether the call is within a set of predetermined block criteria in response to the destination number is a virtual private network number, determining whether the call is within a set of predetermined block criteria in response to the destination number is not a virtual private network number, and routing the call to the destination number if the call is not blocked.
  • FIGURE 1 is a simplified block diagram of an advanced intelligent network (AIN) having a virtual private network service
  • FIGURE 2 is a simplified message flow diagram of an embodiment of virtual private network on-net dialing according to the teachings of the present invention
  • FIGURE 3 is a simplified message flow diagram of an embodiment of virtual private network on-net call according to the teachings of the present invention.
  • FIGURE 4 is a flowchart of an embodiment of the service logic flow of the main loop according to the teachings of the present invention.
  • FIGURE 5 is a flowchart of an embodiment of the virtual private network service processing according to the teachings of the present invention
  • FIGURE 6 is a flowchart of an embodiment of the
  • FIGURE 7 is a flowchart of an embodiment of the AccessType subroutine according to the teachings of the present invention.
  • FIGURE 8 is a flowchart of an embodiment of the TermType subroutine according to the teachings of the present invention.
  • FIGURE 9 is a flowchart of an embodiment of the TimeDep subroutine according to the teachings of the present invention.
  • FIGURE 10 is a flowchart of an embodiment of the RangePriv subroutine according to the teachings of the present invention
  • FIGURE 11 is a flowchart of an embodiment of the
  • FIGURE 12 is a flowchart of an embodiment of the
  • FIGURE 13 is a flowchart of an embodiment of the OnnetNotBlock subroutine according to the teachings of the present invention.
  • FIGURE 14 is a flowchart of an embodiment of the
  • FIGURE 15 is a flowchart of an embodiment of the
  • FIGURE 16 is a flowchart of an embodiment of the
  • FIGURE 17 is a flowchart of an embodiment of the
  • FIGURE 18 is a flowchart of an embodiment of the IntlBlock subroutine according to the teachings of the present invention.
  • FIGURE 19 is a flowchart of an embodiment of the
  • FIGURE 20 is a flowchart of an embodiment of the
  • FIGURE 21 is a flowchart of an embodiment of the
  • FIGURE 22 is a flowchart of an embodiment of the
  • FIGURE 23 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing without supplementary code according to the teachings of the present invention
  • FIGURE 24 is a message flow diagram describing calling card access and universal access according to the teachings of the present invention
  • FIGURE 25 is a message flow diagram describing 700 access without supplementary code according to the teachings of the present invention.
  • FIGURE 26 is a message flow diagram describing 800 remote access without universal access according to the teachings of the present invention
  • FIGURE 27 is a message flow diagram describing 700 intralata according to the teachings of the present invention
  • FIGURE 28 is a message flow diagram describing general application error according to the teachings of the present invention.
  • FIGURE 29 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code according to the teachings of the present invention
  • FIGURE 30 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code that is unsuccessful due to timeout or invalid supplementary code according to the teachings of the present invention
  • FIGURE 31 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code that is unsuccessful in cases other than timeout and invalid supplementary code according to the teachings of the present invention
  • FIGURE 32 is a message flow diagram describing 800 remote access where supplementary code is required with up to three tries for digit entry without universal access according to the teachings of the present invention
  • FIGURE 33 is a message flow diagram describing 800 remote access failure with dialed digits according to the teachings of the present invention
  • FIGURE 34 is a message flow diagram describing 800 remote access failure with supplementary code entry according to the teachings of the present invention.
  • FIGURE 35 is a message flow diagram describing 800 remote access with up to three tries for digit entry according to the teachings of the present invention.
  • FIGURES 1-35 The preferred embodiments of the present invention are illustrated in FIGURES 1-35, like reference numerals being used to refer to like and corresponding parts of the various drawings .
  • FIGURE 1 a simplified block diagram of an exemplary advanced intelligent network (AIN) is shown.
  • FIGURE 1 shows an exemplary telecommunications network 10 such as an advanced intelligent network (AIN) or intelligent network (IN) .
  • Network 10 includes a service management system (SMS) 12 which interfaces with a service control point (SCP) 14 and a signal transfer point (STP) 16 via an industry standard protocol such as X.25.
  • SCS service management system
  • SCP service control point
  • STP signal transfer point
  • Service management system 12 provides network information, database management, and administrative support for network 10.
  • Service management system 12 generally interfaces with redundant service control points 14 and 14 ' for provisioning, database management, service control point application program management, and collecting traffic metering and measurement data.
  • Service control points 14 and 14 ' are also directly linked to mated pair signal transfer points 16 and 16' via SS7 (signaling system number 7) link sets 18.
  • An SS7 link set may include up to sixteen 56 or 64 Kbits/second links.
  • Signal transfer points 16 and 16 ' are further coupled to one or more service switching points (SSPs) 22 and 24, via SS7 link sets 20, which perform the switching and call handling functions in the network.
  • SSPs service switching points
  • An intelligent peripheral (IP) 23 is coupled to service switching point 22 and another intelligent peripheral 25 is coupled to service switching point 24.
  • Intelligent peripherals 23 and 25 may provide an interface to callers and users such as pre-recorded or voice synthesized announcements and prompts.
  • Service control points 14 and 14 ' are a transaction based processing system whose primary responsibility is to respond to queries from service switching points 22 and 24 for data needed to complete routing a call.
  • Service switching points 22 and 24 are part of the public switched telephone network and are coupled to end offices (EO) 29 and 30, respectively, which are in turn coupled to the customer premises equipment (CPE) 28 of telephone service subscribers .
  • EO end offices
  • CPE customer premises equipment
  • Network services are generally implemented in a service creation environment (SCE) 40 through a graphical user interface 42 to produce service logic programs that are then downloaded to network elements such as service management system 12, service control points 14 and 14', and/or signal transfer points 16 and 16', where they are executed.
  • virtual private network is a service in which a service subscriber has the capability to maintain and use a private numbering plan on the public network.
  • the virtual private network service allows a subscriber to dial an abbreviated number to reach another subscriber at any of the designated business locations within the same virtual private network.
  • the service subscriber is provided with a private dialing plan for calls made within and between the subscriber's geographically separate locations. The subscriber may be required to dial an access code to access virtual private network calling.
  • the subscriber dials the called party's virtual private network number for normal virtual private network calls.
  • the virtual private network number can be the extension or a location and extension.
  • the extension is usually the same extension number within the subscriber's network number.
  • the type of numbering plan is typically dependent upon the size of the network. For example, large networks may want to reuse an extension number at multiple locations. In this case, location codes are used in the numbering plan. Also, the numbering plan may reserve codes for specialized functions such as access to service codes or public network (off-net) dialing.
  • the virtual private network service translates the abbreviated number to a destination number. This translation may be variable by time-of-day and day-of-week, for example. Call screening may optionally be used.
  • the screening may be accomplished by time-of-day and day-of-week, for example, or the type of call, such as off-net, non-VPN, north american numbering plan, international direct distance dialing .
  • virtual private network service is described where the subscriber dials an access code only for on-net or virtual private network dialing.
  • the subscriber dials normally without an access code. This arrangement would be selected if it is not necessary to screen off-net calls.
  • the calling party dials an access code and the destination virtual private network number or extension.
  • the end office (EO) forwards the call to the service switching point .
  • the service switching point receives the call and triggers on an Info_Analyzed message (custom dialing plan) .
  • the service switching point then sends a TCAP (transaction capabilities application part) Info_Analyzed message to the service control point.
  • TCAP transaction capabilities application part
  • the service control point receives the message and routes the message to the virtual private network service process, which may be executing on the service control point.
  • the virtual private network process retrieves the virtual private network record from the virtual private network database. If the dialed virtual private network number is valid, the virtual private network service process translates the virtual private network number to the network destination number, which may be variable by time-of-day or day-of-week.
  • the virtual private network process sends an Analyze_Route message to the service switching point containing the translated destination number and the billing information. The service switching point then routes the call to the destination accordingly. If the dialed virtual private number is invalid, the virtual private network process sends a Send_to_Resource OR SendToResource message to the service switching point, which sends the call to treatment to provide an announcement denying access.
  • the virtual private network process may perform any screening required on the destination virtual private network number. If the number is restricted, the virtual private network process sends a Send_to_Resource to the service switching point, which sends the call to treatment to provide an appropriate announcement .
  • Virtual private network service may also be used for both on-net and off-net calling where call screening for both on-net and off-net calls is supported.
  • No access code is required for on-Net calling. All calls are assumed to be on-net. However, an access code is normally used in for dialing an off-net call. For example, the digit "9" can be used for local off-net calls and the digit "8" can be used for long-distance off-net calls.
  • FIGURE 3 a message flow for the on-net call scenario is shown.
  • the calling party goes off-hook.
  • the end office forwards the call to the service switching point.
  • the service switching point receives the call and triggers on Origination.
  • the service switching point then sends a TCAP Origination-Attempt message to the service control point.
  • the service control point receives the message and routes the message to the virtual private network process.
  • the virtual private network process retrieves the dialing plan from the database.
  • the virtual private network process sends a Send_to_Resource message to the service switching point instructing the service switching point to turn on the dial tone and collect digits.
  • the service switching point receives the message and collects the on-net number.
  • the service switching point Upon completion of digit collection, the service switching point sends a Resource_Clear message to the service control point .
  • the service control point receives the message and routes the message to the virtual private network process.
  • the virtual private network process then retrieves the virtual private network record from the database. If the virtual private network number is valid, the virtual private network process translates the virtual private network number to the network destination number, which may be variable by time-of-day or day-of-week.
  • the virtual private network process may perform any screening required on the destination virtual private network number. If the number is restricted, the virtual private network process sends a Send_to_Resource message to the service switching point, which sends the call to treatment to provide an appropriate announcement.
  • the virtual private network process sends an Analyze_Route message to the service switching point which contains the destination number and the billing information. The service switching point then routes the call to the destination. If the virtual private network number is not valid, the virtual private network process sends a Send_to_Resource message to the service switching point, which sends the call to treatment to provide an appropriate announcement .
  • the off-net call is identical to the on-net call. The only difference is that the subscriber dials an access code followed by the local or long distance number. In this case, when the digits are returned to the service control point, the virtual private network process only performs call screening. On the off-net case, it is possible to recognize an off-net number as an on-net number. This would assure that a subscriber uses the pseudo virtual private network.
  • the virtual private network service may also have, in addition to private numbering plan, service features including abbreviated dialing, follow-me diversion, time dependent routing, selective restrictions, off-net access, off-net calling, forced on-net, virtual on-net, voicemail access, attendant access, customized recorded announcements, customer profile management, authentication, call logging, and billing.
  • Forced on-net service feature allows a call that could be dialed as an on-net call to be billed as a virtual private network call and use on-net call restrictions, even though it is dialed as an off-net call .
  • the virtual on-net service features allows virtual on-net extensions to be assigned destination numbers in the same way as other on-net extensions.
  • FIGURE 4 a flowchart of an embodiment of a main program loop of the virtual private network service logic flow is shown.
  • the process flow begins in block 40, and in block 41, the trigger criteria type is determined.
  • the trigger criteria type may be 102 or 3. If the trigger criteria type is 102, then a CAI (collected address info) prefix is determined in block 42. If the trigger criteria type is 3, then a custom dialing plan is indicated, which leads to the beginning of virtual private network service, as shown in block 43. If in block 42 it is determined that the collected address info prefix is 700, then virtual private network processing begins, as shown in block 45.
  • CAI collected address info
  • a REMOTE_ACCESS table is accessed.
  • the "SDM” in the flowchart refers to a service independent block (SIB) that performs the database access.
  • Inputs or keys to access the REMOTE_ACCESS table may include TOLL_FREE_NUM and AUTH_PIN_CODE, and information derived from this table may include SUBSCRIBER_ID, SUBNET_ID, REQ_SUPP_CODE_ID, REQ_SUPP_CODE_ID, RANGE_PRIV_DEFAULT, and TDRP_ID. All variables referred to herein are defined in Appendix A below.
  • the access type is updated to remote in block 47 and virtual private network processing begins in block 48. If the access type is not remote, then N00 or fully- flexible routing processing begins in block 49. If the collected address info prefix is something other than 700, 800, 877, 888, 500, or 900, then Extp_UA or universal access 800 remote number is determined in block 50. If an 800 remote number is determined, then virtual private network service processing begins in bloc, 51. Otherwise, N00 or toll free service process begins in block 52.
  • FIGURE 5 is a flowchart of an embodiment of the virtual private network service processing, which begins in block 55.
  • the access type is determined. If it is remote access, then in block 57 the SUBSCRIBER_INFO table is accessed.
  • the keys for accessing this table may include SUBSCRIBER_ID and SUBNET_ID, and data derived from this table may include ID_CODE_REQ_IDX,
  • PROMPT_ID_SUPP_CODE INTRA_LATA_700_BLK_FLAG , PROMPT_ID_DIAL_DIGIT, and all treatment codes. These variables are defined in Appendix A below.
  • subroutine PromptDialedDigits (FIGURE 6) is called or otherwise invoked.
  • access type is other than remote access
  • subroutine AccessType (FIGURE 7) is invoked in block 59, and the
  • SUBSCRIBER_INFO table is accessed in block 60. Therafter, subroutines TermType (FIGURE 8) , TimeDep (FIGURE 9) , and
  • RangePriv (FIGURE 10) are executed in blocks 61-63.
  • block 64 it is determined whether supplementary code (SuppCode) is required.
  • a supplementary code is one or more digits a caller dials after the calling party's address digits. Supplementary codes are typically used to uniquely identify the caller so the system can determine the caller's calling privileges; to uniquely identify the caller so that the organization or service subscriber can charge back the cost of the call to the caller or a department or cost center; to identify a project to which the service subscriber can charge back the cost of the call.
  • a supplementary code may have the following formats:
  • the identifier code identifies the caller, range privileges, and the billed party for the call.
  • Range privileges define the virtual private network calling privileges for locations or individuals in terms of the type of call that can be placed from an access arrangement, such as the VPN ANI , DAL group ID, 800 remote access number, ID code, and VPN card. There exists a set of default universal privileges and customized range privileges.
  • the supplementary code is of variable length which is determined by the subscriber at the subnet level. The supplementary codes may be maintained in a single table and flagged as mandatory or optional based on the access type, which may be automatic number identification, direct access line, primary rate interface, or remote. If the supplementary code is required, then subroutine SuppCode (FIGURE 22) is invoked in block 65. Otherwise execution goes directly to block 66 to set the parameters for the Analyze_Route message, and the call is routed in block 67.
  • a reason code is determined in block 72 in response to the dialed digits. If the reason code is "0" indicating that the required digits have been properly entered then in block 73 the NOA (nature of address) is determined, and execution continues in block 74. If the reason code is "2" or "7” indicating some type of error in the dialed digits, then a retry counter (RetryCounter) is incremented in block 75. If the reason code is anything other than the above, then the call is disconnected in block 76.
  • RetryCounter retry counter
  • retry counter value exceeds a predetermined retry threshold, such as "3"
  • a Send_to_Resource (STR) message with a disconnect flag and announcement is sent in block 79.
  • An error log is updated to reflect this error and/or a peg counter is incremented in block 80.
  • treatment announcement is set in block 78. In this manner, the required digits for virtual private network service are received from the caller.
  • FIGURE 7 is a flowchart of an embodiment of the access type subroutine, which begins in block 90.
  • a charge number nature of address is determined. If the number is "99" (indicating automatic number identification) then the CallingPartylD is determined in block 92. If the CallingPartylD is null, then an application error has occurred and appropriate steps are then taken in block 93. If the CallingPartylD is not null, then the access type is updated to automatic number identification (ANI) in block 94 and the ANI_ACCESS table is accessed in block 95.
  • ANI automatic number identification
  • Data used to access this table may include ANI_BEGIN and ANI_END, and data derived therefrom may include SUBSCRIBER_ID, SUBNET_ID, REQ_SUPP_CODE_ID , RANGE_PRIV_DEFAULT, and TDRP_ID.
  • the trigger criteria type is determined in block 96. If it is "102" which is indicative of remote access type, then the access type is updated accordingly in block 97 and the REMOTE_ACCESS is accessed in block 98. If the trigger criteria type does not indicate remote access, then the ExtP UA_digits are determined in block 99. If the ExtP_UA_digits are not null, then the access type is updated to indicate a calling card call in block 100, and the CARD_ACCESS table is accessed in block 101.
  • Inputs to this process may include AUTH_PIN and ACCESS_NUM, and outputs may include SUBSCRIBER_ID, SUBNET_ID, RANGE_PRIV_DEFAULT, and TDRP_ID. If the ExtP_UA_digits are null, then the CallingPartylD length is determined in block 102. If the identifier length is 10, then the access type is updated to reflect primary rate interface and the PRI_ACCESS table is accessed in blocks 103 and 104.
  • the inputs may include USER_ID, CSI_BEGIN, and CSI_END, and the outputs may include SUBSCRIBER_ID, SUBNET_ID, REQ_SUPP_CODE_ID , RANGE_PRIV_DEFAULT, TDRP_ID, and AUTH_CODE_VER_FLAG . If the calling party identifier length is 0, 3, or 6, then the access type is updated to reflect direct access line (DAL) in block 105.
  • DAL direct access line
  • the DAL_ACCESS table is accessed, where inputs may include USER_ID, and outputs may include SUBSCRIBER_ID, SUBNET_ID, RANGE_PRIV_DEFAULT, TDRP_ID, and AUTH_CODE_VER_FLAG . If the calling party identifier length is anything other than the above, then an application error has occurred and appropriate steps are taken in block 107.
  • FIGURE 8 is a flowchart of an embodiment of the TermType or termination type subroutine, which begins in block 110.
  • the DIALING_PLAN_TRANSLATION table is accessed.
  • the keys used to access this table may include SUBSCRIBER_ID, SUBNET_ID, DIALING_DGTS_BEGIN, DIALING_DGTS_END, DIALING_DGTS_NOA, and data derived therefrom may include SWITCHED_NUM, SWITCHED_NUM_NOA, SW_NUM_PREFIX, SW_NUM_DGTS_FROM_DIAL, SW_NUM_SUFFIX, PRIMARY_TRK_GROUP, ALT_TRK_GRP_SEC_ALT_TRK_GRP, etc.
  • the collected address info digits prefix is determined in block 112. If the prefix is 700, then the value of INTRA LATA 700 BLK FLAG is checked in block 113. If the flag indicates that a block is in effect, then the call is disconnected in block 114. If the flag indicates that such calls are not blocked, then the call is routed in block 115. If in block 112 it is determined that the prefix is something other than 700, then the access type is determined in block 116. If the access type is a value indicating remote access, then the nature of address is determined in block 117. If the access type is not remote access, then the value of CALLED_PID_NOA is determined in block 118. If the nature of address yielded from blocks
  • the termination type is set to non-virtual private network North American Number Plan
  • NANP non-virtual private network international direct distance dialing
  • the dialing plan translation determines that the called party is a virtual private network member, then the value of PRIMARY_TRK_GRP, ALT_TRK_GRP, or SEC_ALT_TRK_GRP is determined in block 122. If the value is not null as determined in block 122, then the termination type is set to virtual private network on- net dedicated in block 123. If the trunk groups are null, then the translated number nature of address is determined in block 124. If the number is a 3 , then the termination type is set to virtual private network NANP in block 125; if the number is a 4 or 96, then the termination type is set to virtual private network IDDD in block 126; and otherwise an application error has occurred and handled in block 127.
  • FIGURE 9 is a flowchart of an embodiment of the TimeDep subroutine, which begins in block 130.
  • the TDRP_ID value is determined.
  • TDRP_ID is an integer that is an index to a time dependent range privilege table (not shown) to determine whether this option is on. If it is off, then execution continues in block 132. Otherwise, the system time (SystemTime) is obtained in block 133.
  • the TIME_DEP_RANGE_PRIV is accessed. Inputs to access this table may include TDRP_ID and SystemTime, and outputs may include RANGE_PRIV.
  • range privilege subroutine begins in block 140. If the RP_ID is less than 20, as determined in 141, then universal range privileges is selected and the UNIV_RANGE_PRIVILEGE table is accessed in block 142. Universal range privileges are a set of predetermined range privileges which define a user's access to termination locations.
  • Inputs to access the table may include RP_ID, and outputs may include VPN_NANP_BLK, VPN_IDDD_BLK , NON_VPN_NANP_BLK, CTRY_CODE_ALLOWABLE_FLAG, CTRY_CODE_L I ST_I DX , NPA_ALLOWABLE_FLAG, NPA_NXX_ALLOWABLE_FLAG , and DIALED_NUM_ALLOWABLE_FLAG .
  • the value of the block flag (BlkFlag) is set to the value of the VPN_ON_NET_BLK variable obtained in block 142, and subroutine OnnetBlk (FIGURE 11) is invoked in block 145.
  • the termination type is VPN NANP
  • the value of the block flag is set to the value of VPN_NANP_BLK in block 146 and subroutine NatlBlk (FIGURE 14) is called in block 147.
  • the termination type is VPN IDDD
  • the value of the block flag is set to the value of VPN_IDDD_BLK in block 148 and subroutine IntlBlk (FIGURE 17) is called in block 149.
  • the value of the block flag is set to the value of NON_VPN_NANP_BLK in block 150 and subroutine NATL BLK (FIGURE 14) is called in block 151. If the termination type is non-VPN IDDD, then the value of the block flag is set to the value of NON_VPN_IDDD_BLK in block 152 and subroutine INTL BLK (FIGURE 17) is called in block 153.
  • the CUST_RANGE_PRIVILEGE table is accessed.
  • Inputs to access the table may include RP_ID, SUBSCRIBER_ID, and SUBNET_ID, and outputs may include DIAL_PLAN_7_DGT_BLK, ALL_IDDD_DIAL_PLAN_BLK, CTRY_CODE_ALLOWABLE_FLAG , CTRY_CODE_LIST_IDX, CTRY_CITY_LIST_IDX, NPA_ALLOWABLE_FLAG, NPANXX_ALLOWABLE_FLAG, SPEDGT_ALLOWABLE_FLAG, and DIALED_NUM_ALLOWABLE_FLAG .
  • the termination type is determined in block 155 to be IDDD (VPN or non-VPN) , then the value of the block flag is set to the value of ALL_IDDD_BLK in block 156 and subroutine INTL BLK (FIGURE 17) is called. If the termination type is determined to be on-net or NANP (VPN or non-VPN) , then the length or number of dialed digits are determined in block 158. If the number of dialed digits is "7", then the value of the block flag is set to the value of 7_DIAL_PLAN_BLK in block 159.
  • the value of the block flag is set to the value of 10_DIAL_PLAN_BLK in block 160. Thereafter if the termination type (block 161) is on-net, then subroutine OnnetBlk is called in block 162, and if the termination type is NANP, then subroutine NatlBlk is called in block 163. If in block 158 the length of dialed digits is anything other than "7" or "10”, then if the termination type (block 164) is on-net, then the value of the block flag is set to "Allow” in block 165 and execution proceeds to OnnetBlk in block 166. Otherwise if the termination type is NANP, then the block flag is also set to "Allow” in block 167 and execution proceeds to NatlBlk in block 168.
  • OnnetBlk begins in block 170 and depending on the value of BlkFlag, it is determined whether the call is blocked, as shown in block 171. If the call is blocked, then subroutine OnnetBlock (FIGURE 12) is executed, as shown in block 172. If no blocking is desired, then subroutine OnnetNoBlock (FIGURE 13) is executed, as shown in block 173.
  • OnnetBlk begins in block 170 and depending on the value of BlkFlag, it is determined whether the call is blocked, as shown in block 171. If the call is blocked, then subroutine OnnetBlock (FIGURE 12) is executed, as shown in block 172. If no blocking is desired, then subroutine OnnetNoBlock (FIGURE 13) is executed, as shown in block 173.
  • FIGURE 12 is a flowchart of an embodiment of the OnnetBlock subroutine, which begins in block 174.
  • the value of the DIALED_NUM_ALLOWABLE_FLAG is determined. If the flag indicates allow, then the DIALED_NUM_LIST table is accessed in block 176 to determine if the dialed number is blocked. If the table shows the number is blocked (i.e., the dialed number is not on the list within range of the allowed numbers in the DIALED_NUM_LIST table) , then an error has occurred.
  • a SendToResource message with disconnect flag and announcement ID is sent to the service switching point .
  • the value of SPEDGT_ALLOWABLE_FLAG is determined in block 177. If the flag indicates allow, then execution continues in block 178. If the flag indicates disallow, then the SPEDGT_LIST table is accessed in block 179. If the result is block, then a SendToResource message with disconnect flag and announcement identifier is sent to the service switching point in block 181. If the result is no block, then execution continues in block 180.
  • the value of SPEDGT_ALLOWABLE_FLAG is examined in block 183. If the value is disallow, then a Send_To_Resource message with disconnect flag and announcement ID is sent in block 187. If the value is allow, then the SPEDGT_LIST is accessed in block 184. If the result is block, then a Send_To_Resource message with disconnect flag and announcement is sent in block 186. If the result is no block, then execution continues in block 185.
  • FIGURE 13 is a flowchart of an embodiment of the OnnetNoBlock subroutine, which begins in block 190.
  • the value of the DIALED_NUM_ALLOWABLE_FLAG is determined. If the flag indicates disallow, then the DIALED_NUM__LIST table is accessed in block 192. If the result is block, then an error has occurred. In block 182, a Send_To_Resource message with disconnect flag and announcement identifier is sent to the service switching point. If the result is no block, then the value of SPEDGT_ALLOWABLE_FLAG is determined in block 193. If the flag indicates allow, then execution continues in block 194. If the flag indicates disallow, then the SPEDGT_LIST table is accessed in block 195. If the result is block, then a Send_To_Resource message with disconnect flag and announcement identifier is sent to the service switching point in block 197. If the result is no block, then execution continues in block 196.
  • SPEDGT_ALLOWABLE_FLAG is examined in block 199. If the value is allow, then execution continues in block 200. If the value is disallow, then the SPEDGT_LIST tabel is accessed in block 201. If the result is block, then a Send_To_Resource message with disconnect flag and announcement is sent in block 203. If the result is no block, then execution continues in block 202.
  • NatlBlk subroutine begins in block 210.
  • the value of BlkFlag is determined. If the value is block, then execution proceeds to subroutine NatlBlock as shown in block 212, otherwise execution proceeds to subroutine NatlNoBlock as shown in block 213.
  • NatlBlock subroutine begins in block 220.
  • the value of NPA_ALLOWABLE_FLAG is determined. If it is allow, then the NPA_LIST table is accessed in block 222. If the result is block, then the value of the NPA_NXX_ALLOWABLE FLAG is determined in block 223. If it is disallow, subroutine SpedgtBlock (FIGURE 20) is executed, as shown in block 224. If it is allow, then the NPA_NXX_LIST table is accessed in block 225. If the result is block, subroutine SpedgtBlock is executed, as shown in block 226. If the result is no block, subroutine SpedgtNoBlock (FIGURE 21) is executed, as shown in block 227.
  • the value of the NPA_NXX_ALLOWABLE_FLAG is determined in block 228. If the flag value is allow, then subroutine SpedgtNoBlock is executed, as shown in block 229. If the flag value is disallow, then the NPA_NXX_LIST tabel is accessed in block 230. If the result is block, subroutine SpedgtBlock is executed, as shown in block 231. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 232.
  • the NPA_ALLOWABLE_FLAG value is disallow, then the the NPA_NXX_ALLOWABLE_FLAG is determined in block 233. If the flag value is disallow, then subroutine SpedgtBlock is executed, as shown in block 234. If the flag value is allow, then the NPA_NXX_LIST table is accessed in block 235. If the result is block, subroutine SpedgtBlock is executed, as shown in block 236. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 237.
  • NatlNoBlock subroutine begins in block 240.
  • the value of NPA_ALLOWABLE_FLAG is determined. If it is disallow, then the NPA_LIST table is accessed in block 242. If the result is block, then the value of the NPA_NXX_ALLOWABLE_FLAG is determined in block 243. If it is disallow, subroutine SpedgtBlock is executed, as shown in block 244. If it is allow, then the NPA_NXX_LIST table is accessed in block 245. If the result is block, subroutine SpedgtBlock is executed, as shown in block 246. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 247.
  • SpedgtNoBlock is executed, as shown in block 249. If the flag value is disallow, then the NPA_NXX_LIST table is accessed in block 250. If the result is block, subroutine SpedgtBlock is executed, as shown in block 251. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 252. If the NPA_ALLOWABLE_FLAG value is allow, then the the
  • NPA_NXX_ALLOWABLE_FLAG is determined in block 253. If the flag value is allow, then subroutine SpedgtNoBlock is executed, as shown in block 254. If the flag value is disallow, then the NPA_NXX_LIST table is accessed in block 255. If the result is block, subroutine SpedgtBlock is executed, as shown in block 256. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 257.
  • IntlBlk subroutine begins in block 260.
  • the value of BlkFlag is determined. If the value is block, then execution proceeds to subroutine IntlBlock as shown in block 262, otherwise execution proceeds to subroutine IntlNoBlock as shown in block 263.
  • an embodiment of IntlBlock subroutine is shown, which begins in block 270.
  • the value of CTR_CODE_ALLOWABLE_FLAG is determined. If the flag value indicates allow, then the CTRY_CODE_LIST table is accessed in block 272. If the result is block, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 273.
  • CTRY_CITY_LIST table is accessed in block 275. If the flag indicates allow, then the CTRY_CITY_LIST table is accessed in block 275. If the result is block, then execution proceeds to subroutine SpedgtBlock, as shown in block 276. If the result is no block, then execution proceeds to subroutine SpedgtNoBlock, as shown in block 277. If the CTRY_CITY_ALLOWABLE_FLAG is determined in block 273 as disallow, then subroutine SpedgtBlock is called, as shown in block 274.
  • CTRY_CITY_ALLOWABLE_FLAG is determined in block 278. If the flag indicaets allow, then SpedgtNoBlock subroutine is executed, as shown in block 279. If the flag indicates disallow, then the CTRY_CITY_LIST table is accessed in block 280. If the result is block, then subroutine SpedgtBlock is called, as shown in block 281. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 282.
  • CTRY_CODE_ALLOWABLE_FLAG is determined in block 271 as disallow, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 283. If the flag indicates disallow, then SpedgtBlock subroutine is executed, as shown in block 284. If the flag indicates allow, then the CTRY_CITY_LIST table is accessed in block 285. If the result is block, then subroutine SpedgtBlock is called, as shown in block 286. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 287. Referring to FIGURE 19, an embodiment of IntlNoBlock subroutine is shown, which begins in block 290..
  • the value of CTR_CODE_ALLOWABLE_FLAG is determined. If the flag value indicates disallow, then the CTRY_CODE_LIST_IDX table is accessed in block 292. If the result is block, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 293. If the flag indicates allow, then the CTRY_CITY_LIST_IDX table is accessed in block 294. If the result is block, then execution proceeds to subroutine SpedgtBlock, as shown in block 295. If the result is no block, then execution proceeds to subroutine SpedgtNoBlock, as shown in block 296.
  • CTRY_CITY_ALLOWABLE_FLAG is determined in block 298 as disallow, then subroutine SpedgtBlock is called, as shown in block 297. If no block is yielded from block 292, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 298. If the flag indicaets allow, then SpedgtNoBlock subroutine is executed, as shown in block 299. If the flag indicates disallow, then the CTRY_CITY_LIST_IDX table is accessed in block 300. If the result is block, then subroutine SpedgtBlock is called, as shown in block 301. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 302.
  • CTRY_CODE_ALLOWABLE_FLAG is determined in block 291 as allow, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 303. If the flag indicates allow, then SpedgtNoBlock subroutine is executed, as shown in block 304. If the flag indicates disallow, then the CTRY_CITY_LIST_IDX table is accessed in block 305. If the result is block, then subroutine SpedgtBlock is called, as shown in block 306. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 307.
  • FIGURE 20 a flowchart of an embodiment of the
  • SpedgtBlock subroutine begins in block 310.
  • the value of SPEDGT_ALLOWABLE_FLAG is determined. If the flag indicates allow, the SPEDGT_LIST_IDX table is accessed in block 312. If the result is block, then a SendToResource message with disconnect flag and announcement identifier is sent to the service switching point in block 314. If the result is no block, then execution continues in block 313. If the value SPEDGT_ALLOWABLE_FLAG indicates disallow, then a SendToResource message with disconnect flag and announcement identifier is sent in block 315.
  • a flowchart of an embodiment of the SpedgtNoBlock subroutine begins in block 320.
  • the value of SPEDGT_ALLOWABLE_FLAG is determined. If the flag indicates disallow, the SPEDGT_LIST_IDX table is accessed in block 322. If the result is block, then a SendToResource message with disconnect flag and announcement identifier is sent to the service switching point in block 324. If the result is no block, then execution continues in block 323. If the value SPEDGT_ALLOWABLE_FLAG indicates allow, then execution continues in block 325.
  • FIGURE 22 a flowchart of an embodiment of the
  • SuppCode subroutine begins in block 330.
  • the SUPP_NON_VER_PROJ_LEN table is accessed in which inputs may include NON_VER_PROJ_CODE_REQ_IDX and ACCESS_TYPE, and output may include NON_VER_PROJ_LEN .
  • the caller is prompted for suppelemental codes, which are collected. The total length of the supplemental code is then calculated.
  • the value of a reason code is determined. If the reason code is 2 or 7, then the retry counter is incremented, as shown in block 334, and the value of the retry counter is compared with a predetermined retry threshold, such as 3 , as shown in block 335.
  • retry counter is greater than the threshold, then the error is logged and a peg counter is incremented, as shown in block 336. Otherwise, treatment announcement is set in block 337 to prompt the caller to re-enter the suppelemental code, as in block 332. If in block 333 it is determined that the reason code is 0, then the received suppelemental code is parsed to the proper length formats, as shown in block 338. In block 339, a determination is made as to whether the lengths of SUPP_ID_CODE and SUPP_VER_PROJ_CODE are valid. If invalid, then execution proceeds to block 334 where the retry counter is incremented.
  • the SUPP_ID_CODE and SUPP_VER_PROJ_CODE tables are accessed in block 340.
  • Inputs may include VER_PROJ_CODE_REQ_IDX and ID_CODE_REQ_IDX, and outputs may include a list of valid ID and/or verified project codes.
  • the resultant ID and/or project code is validated. If the codes are valid then the value of ID_CODE_RANGE_PRIV is determined in block 342. If it is no, then execution continues in block 343. If it is yes, then RP_ID is set equal to ID_CODE_RANGE_PRIV in block 344. In block 345, subroutine RangePriv is called.
  • DAL ACCESS TABLE contains a list of dedicated user identifiers that can be called from and to the VPN, its range privileges, and when authorization code validation is required or when supplementary codes are required
  • PRI ACCESS TABLE contains a list of approved station identifiers and dedicated user identifiers that can be called from and to the VPN, its range privileges and when supplementary code is required
  • ANI ACCESS TABLE contains a list of approved numbers that can be called from and to the VPN and the range privileges and when supplementary code is required
  • REMOTE ACCESS TABLE contains 800 number and authorization code and personal identifier number code that determine subscriber, subnet, range privileges, and when supplementary code is required from the remote access location calls
  • CARD ACCESS TABLE contains 800 number and authorization code and personal identification number that determine subscriber, subnet, its range privid privileges from the calling card access calls
  • AUTH CODE TABLE contains all of the authorization codes for the specified subnet of a subscriber
  • SUBSCRIBER_INFO contains all of the announcement TABLE codes, treatment codes, supplementary code format index and 700 Intra-local access transport area (intra-lata) block or continue flag for the specified subnet of a subscriber
  • TIME_DEP_RANGE_PRIV provides multiple time slots (day of TABLE week and time of day) for one TDRP_ID index. Each time slot has its own range privilege value, based on the time of the call, if it matches the time slots, then use the specified range privilege index to perform call screening
  • FIGURE 23 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing without supplementary code according to the teachings of the present invention
  • FIGURE 24 is a message flow diagram describing calling card access and universal access according to the teachings of the present invention
  • FIGURE 25 is a message flow diagram describing 700 access without supplementary code according to the teachings of the present invention
  • FIGURE 26 is a message flow diagram describing 800 remote access without universal access according to the teachings of the present invention
  • FIGURE 27 is a message flow diagram describing 700 intralata according to the teachings of the present invention
  • FIGURE 28 is a message flow diagram describing general application error according to the teachings of the present invention
  • FIGURE 29 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code according to the teachings of the present invention
  • FIGURE 30 is a message flow diagram describing direct access line, primary rate interface or automatic number
  • ACCESS TYPE origination access type which may be ANI, DAL, PRI , remote access, calling card access, or remote access
  • ANI BEGIN beginning range of automatic number identification identifies the number access to the virtual private network from switched location
  • ANI_END ending range of automatic number identification identifies the number access to the virtual private network from switched location
  • BlkFlag block flag reflects blocked conditions CALLED_PID_NOA called party identifier nature of address
  • CTRY_CITY_LIST_IDX index to a list of country code + city code
  • CTRY_CODE_ALLOWABLE_FLAG country code allowable flag CTRY_CODE_LIST_IDX country code list index DIALED NUM ALLOWABLE FLAG dialed number allowable flag indicates whether a list of allowed or disallowed dialed numbers DIAL_PLAN_7_DGT_BLK dialing plan 7 digit block flag ID_CODE_LEN identifier code length ID_CODE_REQ_IDX identifier code requirement index INTRA_LATA_700_BLK_FLAG intra-local access transport area
  • NPA ALLOWABLE FLAG numbering plan area allowable flag indicates whether there is a list of allowed or disallowed NPAs
  • NPA NXX ALLOWABLE FLAG NPA-NXX allowable flag indicates whether there is a list of allowed or disallowed NPA-NXXs
  • REQ SUPP CODE ID required supplementary code identifier, which is an index to the REQ_SUPP_CODE table that indicates which type of calls require supplementary codes
  • RANGE PRIV DEFAULT identifier for the range privileges which may be one of RP_ID in UNIV_RANGE_PRIV or CUST_RANGE_PRIV table
  • SUBNET_ID VPN network identifier SUBSCRIBER_ID VPN subscriber identifier SuppCode supplementary code SystemTime system time of call TDRP ID time dependent range privilege identifier which is an index into a time dependent range privilege table
  • VPN_IDDD_BLK VPN international direct distance dialing VPN NANP BLK VPN north american number plan block APPENDIX B ACRONYMS
  • N Central office code; N can be digits 2-9 and XX can be 00-99
  • PID Party identifier (as in calling party identifier or called party identifier)

Abstract

A method of providing virtual private network services includes receiving a number of dialed digits entered by a caller, where the dialed digits includes a called party number, recognizing the caller as a member of a subscriber to the virtual private network service, obtaining stored information on the subscriber, translating the called party number to a destination number, determining whether the call is within a set of predetermined block criteria, playing an appropriate announcement to the caller and disconnecting the call if the call is blocked, and routing the call to the destination number if the call is not blocked.

Description

VIRTUAL PRIVATE NETWORK SERVICE FOR AN ADVANCED INTELLIGENT NETWORK
TECHNICAL FIELD OF THE INVENTION
This invention is related in general to the field of telecommunications. More particularly, the invention is related to a virtual private network service for an advanced intelligent network (AIN) .
BACKGROUND OF THE INVENTION
With the advent of the advanced intelligent network (AIN) , it has become possible to rapidly design and introduce many new enhanced telecommunications services that provide added flexibility and convenience in how we use our telephone equipment.
The advanced intelligent network typically includes switches or service switching points (SSPs) coupled to signal transfer points (STPs) , which are in turn coupled to service control points (SCPs) . The interconnections between service switching points and service control points employ the signalling system number 7 or SS7 protocol for sending query messages associated with the execution of services. The service control points executes service logic programs which define the services and further store and maintain databases that have data associated with the services. The service control points are further coupled to a service management system (SMS) , which supports the operations, administrations, management, and provisioning
(OAM&P) needs of the network. The advanced intelligent network further includes intelligent peripherals, which are coupled to service switching points and the service management system, and provide pre-recorded voice announcements, voice synthesis, and other functionalities that generally facilitate interaction with service subscribers and customers. The connection between the service management system and other network nodes is typically via X.25 links. In the advanced intelligent network, telecommunications services are typically defined in a service creation environment (SCE) node by the service provider and then relayed to the service management system, which disseminates the service logic programs to the rest of the network for execution.
The International Telecommunications Union (ITU) and other standard setting bodies have promulgated recommendations and requirements for advanced intelligent network services . One service is the virtual private network service, which basically allows a service subscriber to maintain and use a private number plan on the public network. However, these standards do not spell out how this service is to be implemented and the specific service features that support this service.
SUMMARY OF THE INVENTION
Accordingly, there is a need for a virtual private network service for the advanced intelligent network.
In one aspect of the invention, a method of providing virtual private network services includes receiving a number of dialed digits entered by a caller, where the dialed digits includes a called party number, recognizing the caller as a member of a subscriber to the virtual private network service, obtaining stored information on the subscriber, translating the called party number to a destination number, determining whether the call is within a set of predetermined block criteria, playing an appropriate announcement to the caller and disconnecting the call if the call is blocked, and routing the call to the destination number if the call is not blocked.
In another aspect of the invention, a method of providing virtual private network services includes receiving a number of dialed digits entered by a caller, the dialed digits including a called party number, recognizing the caller as a member of a subscriber to the virtual private network service, obtaining stored information on the subscriber, translating the called party number to a destination number, determining whether the time of the call is within a predetermined authorized range, determining whether the destination number is also a member of the same virtual private network and whether a non-plan call is blocked, determining whether the destination number is within North American numbering plan or international direct distance dialing and whether such a call is blocked, determining whether the destination number is a blocked destination number, playing an appropriate announcement to the caller and disconnecting the call if the call is blocked, and routing the call to the destination number if the call is not blocked.
In yet another aspect of the invention, a method of routing calls to and from a virtual private network includes receiving a number of dialed digits from within the virtual private network, obtaining information on the subscriber of the virtual private network, translating the dialed digits to a destination number and determining whether the destination number is a virtual private network number, determining whether the call is within a set of predetermined block criteria in response to the destination number is a virtual private network number, determining whether the call is within a set of predetermined block criteria in response to the destination number is not a virtual private network number, and routing the call to the destination number if the call is not blocked. BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the present invention, reference may be made to the accompanying drawings, in which: FIGURE 1 is a simplified block diagram of an advanced intelligent network (AIN) having a virtual private network service;
FIGURE 2 is a simplified message flow diagram of an embodiment of virtual private network on-net dialing according to the teachings of the present invention;
FIGURE 3 is a simplified message flow diagram of an embodiment of virtual private network on-net call according to the teachings of the present invention;
FIGURE 4 is a flowchart of an embodiment of the service logic flow of the main loop according to the teachings of the present invention;
FIGURE 5 is a flowchart of an embodiment of the virtual private network service processing according to the teachings of the present invention; FIGURE 6 is a flowchart of an embodiment of the
PromptDialedDigits subroutine according to the teachings of the present invention;
FIGURE 7 is a flowchart of an embodiment of the AccessType subroutine according to the teachings of the present invention;
FIGURE 8 is a flowchart of an embodiment of the TermType subroutine according to the teachings of the present invention;
FIGURE 9 is a flowchart of an embodiment of the TimeDep subroutine according to the teachings of the present invention;
FIGURE 10 is a flowchart of an embodiment of the RangePriv subroutine according to the teachings of the present invention; FIGURE 11 is a flowchart of an embodiment of the
OnnetBlk subroutine according to the teachings of the present invention; FIGURE 12 is a flowchart of an embodiment of the
OnnetBlock subroutine according to the teachings of the present invention;
FIGURE 13 is a flowchart of an embodiment of the OnnetNotBlock subroutine according to the teachings of the present invention;
FIGURE 14 is a flowchart of an embodiment of the
NatlBlk subroutine according to the teachings of the present invention; FIGURE 15 is a flowchart of an embodiment of the
NatlBlock subroutine according to the teachings of the present invention;
FIGURE 16 is a flowchart of an embodiment of the
NatlNoBlock subroutine according to the teachings of the present invention;
FIGURE 17 is a flowchart of an embodiment of the
IntlBlk subroutine according to the teachings of the present invention;
FIGURE 18 is a flowchart of an embodiment of the IntlBlock subroutine according to the teachings of the present invention;
FIGURE 19 is a flowchart of an embodiment of the
IntlNoBlock subroutine according to the teachings of the present invention; FIGURE 20 is a flowchart of an embodiment of the
SpedgtBlock subroutine according to the teachings of the present invention;
FIGURE 21 is a flowchart of an embodiment of the
SpedgtNoBlock subroutine according to the teachings of the present invention;
FIGURE 22 is a flowchart of an embodiment of the
SuppCode subroutine according to the teachings of the present invention;
FIGURE 23 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing without supplementary code according to the teachings of the present invention; FIGURE 24 is a message flow diagram describing calling card access and universal access according to the teachings of the present invention;
FIGURE 25 is a message flow diagram describing 700 access without supplementary code according to the teachings of the present invention;
FIGURE 26 is a message flow diagram describing 800 remote access without universal access according to the teachings of the present invention; FIGURE 27 is a message flow diagram describing 700 intralata according to the teachings of the present invention;
FIGURE 28 is a message flow diagram describing general application error according to the teachings of the present invention;
FIGURE 29 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code according to the teachings of the present invention; FIGURE 30 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code that is unsuccessful due to timeout or invalid supplementary code according to the teachings of the present invention;
FIGURE 31 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code that is unsuccessful in cases other than timeout and invalid supplementary code according to the teachings of the present invention;
FIGURE 32 is a message flow diagram describing 800 remote access where supplementary code is required with up to three tries for digit entry without universal access according to the teachings of the present invention; FIGURE 33 is a message flow diagram describing 800 remote access failure with dialed digits according to the teachings of the present invention;
FIGURE 34 is a message flow diagram describing 800 remote access failure with supplementary code entry according to the teachings of the present invention; and
FIGURE 35 is a message flow diagram describing 800 remote access with up to three tries for digit entry according to the teachings of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The preferred embodiments of the present invention are illustrated in FIGURES 1-35, like reference numerals being used to refer to like and corresponding parts of the various drawings .
Referring to FIGURE 1, a simplified block diagram of an exemplary advanced intelligent network (AIN) is shown. FIGURE 1 shows an exemplary telecommunications network 10 such as an advanced intelligent network (AIN) or intelligent network (IN) . Network 10 includes a service management system (SMS) 12 which interfaces with a service control point (SCP) 14 and a signal transfer point (STP) 16 via an industry standard protocol such as X.25. Service management system 12 provides network information, database management, and administrative support for network 10. Service management system 12 generally interfaces with redundant service control points 14 and 14 ' for provisioning, database management, service control point application program management, and collecting traffic metering and measurement data. Service control points 14 and 14 ' are also directly linked to mated pair signal transfer points 16 and 16' via SS7 (signaling system number 7) link sets 18. An SS7 link set may include up to sixteen 56 or 64 Kbits/second links. Signal transfer points 16 and 16 ' are further coupled to one or more service switching points (SSPs) 22 and 24, via SS7 link sets 20, which perform the switching and call handling functions in the network. An intelligent peripheral (IP) 23 is coupled to service switching point 22 and another intelligent peripheral 25 is coupled to service switching point 24. Intelligent peripherals 23 and 25 may provide an interface to callers and users such as pre-recorded or voice synthesized announcements and prompts.
Service control points 14 and 14 ' are a transaction based processing system whose primary responsibility is to respond to queries from service switching points 22 and 24 for data needed to complete routing a call. Service switching points 22 and 24 are part of the public switched telephone network and are coupled to end offices (EO) 29 and 30, respectively, which are in turn coupled to the customer premises equipment (CPE) 28 of telephone service subscribers .
Network services are generally implemented in a service creation environment (SCE) 40 through a graphical user interface 42 to produce service logic programs that are then downloaded to network elements such as service management system 12, service control points 14 and 14', and/or signal transfer points 16 and 16', where they are executed. virtual private network is a service in which a service subscriber has the capability to maintain and use a private numbering plan on the public network. The virtual private network service allows a subscriber to dial an abbreviated number to reach another subscriber at any of the designated business locations within the same virtual private network. The service subscriber is provided with a private dialing plan for calls made within and between the subscriber's geographically separate locations. The subscriber may be required to dial an access code to access virtual private network calling. The subscriber dials the called party's virtual private network number for normal virtual private network calls. The virtual private network number can be the extension or a location and extension. The extension is usually the same extension number within the subscriber's network number. The type of numbering plan is typically dependent upon the size of the network. For example, large networks may want to reuse an extension number at multiple locations. In this case, location codes are used in the numbering plan. Also, the numbering plan may reserve codes for specialized functions such as access to service codes or public network (off-net) dialing. The virtual private network service translates the abbreviated number to a destination number. This translation may be variable by time-of-day and day-of-week, for example. Call screening may optionally be used. This is usually used to restrict calls to the network or to restrict off-net access. The screening may be accomplished by time-of-day and day-of-week, for example, or the type of call, such as off-net, non-VPN, north american numbering plan, international direct distance dialing .
Referring to FIGURE 2 , virtual private network service is described where the subscriber dials an access code only for on-net or virtual private network dialing. For off-net calls, the subscriber dials normally without an access code. This arrangement would be selected if it is not necessary to screen off-net calls. For an on-net virtual private network dialing, the calling party dials an access code and the destination virtual private network number or extension. The end office (EO) forwards the call to the service switching point . The service switching point receives the call and triggers on an Info_Analyzed message (custom dialing plan) . The service switching point then sends a TCAP (transaction capabilities application part) Info_Analyzed message to the service control point. The service control point receives the message and routes the message to the virtual private network service process, which may be executing on the service control point. The virtual private network process retrieves the virtual private network record from the virtual private network database. If the dialed virtual private network number is valid, the virtual private network service process translates the virtual private network number to the network destination number, which may be variable by time-of-day or day-of-week. The virtual private network process sends an Analyze_Route message to the service switching point containing the translated destination number and the billing information. The service switching point then routes the call to the destination accordingly. If the dialed virtual private number is invalid, the virtual private network process sends a Send_to_Resource OR SendToResource message to the service switching point, which sends the call to treatment to provide an announcement denying access.
The virtual private network process may perform any screening required on the destination virtual private network number. If the number is restricted, the virtual private network process sends a Send_to_Resource to the service switching point, which sends the call to treatment to provide an appropriate announcement .
Virtual private network service may also be used for both on-net and off-net calling where call screening for both on-net and off-net calls is supported. No access code is required for on-Net calling. All calls are assumed to be on-net. However, an access code is normally used in for dialing an off-net call. For example, the digit "9" can be used for local off-net calls and the digit "8" can be used for long-distance off-net calls.
Referring to FIGURE 3, a message flow for the on-net call scenario is shown. The calling party goes off-hook. The end office forwards the call to the service switching point. The service switching point receives the call and triggers on Origination. The service switching point then sends a TCAP Origination-Attempt message to the service control point. The service control point receives the message and routes the message to the virtual private network process. The virtual private network process retrieves the dialing plan from the database. The virtual private network process sends a Send_to_Resource message to the service switching point instructing the service switching point to turn on the dial tone and collect digits. The service switching point receives the message and collects the on-net number. Upon completion of digit collection, the service switching point sends a Resource_Clear message to the service control point . The service control point receives the message and routes the message to the virtual private network process. The virtual private network process then retrieves the virtual private network record from the database. If the virtual private network number is valid, the virtual private network process translates the virtual private network number to the network destination number, which may be variable by time-of-day or day-of-week. The virtual private network process may perform any screening required on the destination virtual private network number. If the number is restricted, the virtual private network process sends a Send_to_Resource message to the service switching point, which sends the call to treatment to provide an appropriate announcement. Otherwise, the virtual private network process sends an Analyze_Route message to the service switching point which contains the destination number and the billing information. The service switching point then routes the call to the destination. If the virtual private network number is not valid, the virtual private network process sends a Send_to_Resource message to the service switching point, which sends the call to treatment to provide an appropriate announcement . The off-net call is identical to the on-net call. The only difference is that the subscriber dials an access code followed by the local or long distance number. In this case, when the digits are returned to the service control point, the virtual private network process only performs call screening. On the off-net case, it is possible to recognize an off-net number as an on-net number. This would assure that a subscriber uses the pseudo virtual private network.
The virtual private network service may also have, in addition to private numbering plan, service features including abbreviated dialing, follow-me diversion, time dependent routing, selective restrictions, off-net access, off-net calling, forced on-net, virtual on-net, voicemail access, attendant access, customized recorded announcements, customer profile management, authentication, call logging, and billing. Forced on-net service feature allows a call that could be dialed as an on-net call to be billed as a virtual private network call and use on-net call restrictions, even though it is dialed as an off-net call . The virtual on-net service features allows virtual on-net extensions to be assigned destination numbers in the same way as other on-net extensions. When equipment associated with a virtual on-net extension originates a call, the CLI received by the network is not the same as the destination number. Referring to FIGURE 4, a flowchart of an embodiment of a main program loop of the virtual private network service logic flow is shown. The process flow begins in block 40, and in block 41, the trigger criteria type is determined. The trigger criteria type may be 102 or 3. If the trigger criteria type is 102, then a CAI (collected address info) prefix is determined in block 42. If the trigger criteria type is 3, then a custom dialing plan is indicated, which leads to the beginning of virtual private network service, as shown in block 43. If in block 42 it is determined that the collected address info prefix is 700, then virtual private network processing begins, as shown in block 45. If the collected address info prefix is 800, 877, 888, 500, or 900, then in block 46 a REMOTE_ACCESS table is accessed. The "SDM" in the flowchart refers to a service independent block (SIB) that performs the database access. Inputs or keys to access the REMOTE_ACCESS table may include TOLL_FREE_NUM and AUTH_PIN_CODE, and information derived from this table may include SUBSCRIBER_ID, SUBNET_ID, REQ_SUPP_CODE_ID, REQ_SUPP_CODE_ID, RANGE_PRIV_DEFAULT, and TDRP_ID. All variables referred to herein are defined in Appendix A below. If the output indicates a remote access type, then the access type is updated to remote in block 47 and virtual private network processing begins in block 48. If the access type is not remote, then N00 or fully- flexible routing processing begins in block 49. If the collected address info prefix is something other than 700, 800, 877, 888, 500, or 900, then Extp_UA or universal access 800 remote number is determined in block 50. If an 800 remote number is determined, then virtual private network service processing begins in bloc, 51. Otherwise, N00 or toll free service process begins in block 52.
FIGURE 5 is a flowchart of an embodiment of the virtual private network service processing, which begins in block 55. In block 56, the access type is determined. If it is remote access, then in block 57 the SUBSCRIBER_INFO table is accessed. The keys for accessing this table may include SUBSCRIBER_ID and SUBNET_ID, and data derived from this table may include ID_CODE_REQ_IDX,
VER_PROJ_CODE_REQ_IDX, ID_CODE_LEN, VER_PROJ_CODE_LEN,
PROMPT_ID_SUPP_CODE , INTRA_LATA_700_BLK_FLAG , PROMPT_ID_DIAL_DIGIT, and all treatment codes. These variables are defined in Appendix A below. Thereafter in block 58, subroutine PromptDialedDigits (FIGURE 6) is called or otherwise invoked. On the other hand, if access type is other than remote access, then subroutine AccessType (FIGURE 7) is invoked in block 59, and the
SUBSCRIBER_INFO table is accessed in block 60. Therafter, subroutines TermType (FIGURE 8) , TimeDep (FIGURE 9) , and
RangePriv (FIGURE 10) are executed in blocks 61-63. In block 64, it is determined whether supplementary code (SuppCode) is required. A supplementary code is one or more digits a caller dials after the calling party's address digits. Supplementary codes are typically used to uniquely identify the caller so the system can determine the caller's calling privileges; to uniquely identify the caller so that the organization or service subscriber can charge back the cost of the call to the caller or a department or cost center; to identify a project to which the service subscriber can charge back the cost of the call. A supplementary code may have the following formats:
1. identifier code only;
2. identifier code + verified project code; 3. identifier + non-verified project code;
4. verified project code only; or
5. non-verified project code only.
The identifier code identifies the caller, range privileges, and the billed party for the call. Range privileges define the virtual private network calling privileges for locations or individuals in terms of the type of call that can be placed from an access arrangement, such as the VPN ANI , DAL group ID, 800 remote access number, ID code, and VPN card. There exists a set of default universal privileges and customized range privileges. The supplementary code is of variable length which is determined by the subscriber at the subnet level. The supplementary codes may be maintained in a single table and flagged as mandatory or optional based on the access type, which may be automatic number identification, direct access line, primary rate interface, or remote. If the supplementary code is required, then subroutine SuppCode (FIGURE 22) is invoked in block 65. Otherwise execution goes directly to block 66 to set the parameters for the Analyze_Route message, and the call is routed in block 67.
An embodiment of the PromptDialedDigits subroutine is shown in the flowchart of FIGURE 6, which begins in block
70. In block 71, appropriate prompts in the form of announcements may be given to the caller and the digits entered by the caller in response to the prompts are then collected. A reason code is determined in block 72 in response to the dialed digits. If the reason code is "0" indicating that the required digits have been properly entered then in block 73 the NOA (nature of address) is determined, and execution continues in block 74. If the reason code is "2" or "7" indicating some type of error in the dialed digits, then a retry counter (RetryCounter) is incremented in block 75. If the reason code is anything other than the above, then the call is disconnected in block 76. In block 77, if the retry counter value exceeds a predetermined retry threshold, such as "3", then a Send_to_Resource (STR) message with a disconnect flag and announcement is sent in block 79. An error log is updated to reflect this error and/or a peg counter is incremented in block 80. If the predetermined retry threshold is not yet reached, then treatment announcement is set in block 78. In this manner, the required digits for virtual private network service are received from the caller.
FIGURE 7 is a flowchart of an embodiment of the access type subroutine, which begins in block 90. In block 91, a charge number nature of address is determined. If the number is "99" (indicating automatic number identification) then the CallingPartylD is determined in block 92. If the CallingPartylD is null, then an application error has occurred and appropriate steps are then taken in block 93. If the CallingPartylD is not null, then the access type is updated to automatic number identification (ANI) in block 94 and the ANI_ACCESS table is accessed in block 95. Data used to access this table may include ANI_BEGIN and ANI_END, and data derived therefrom may include SUBSCRIBER_ID, SUBNET_ID, REQ_SUPP_CODE_ID , RANGE_PRIV_DEFAULT, and TDRP_ID.
If the charge number provides "100" which is indicative of a charge code, then the trigger criteria type is determined in block 96. If it is "102" which is indicative of remote access type, then the access type is updated accordingly in block 97 and the REMOTE_ACCESS is accessed in block 98. If the trigger criteria type does not indicate remote access, then the ExtP UA_digits are determined in block 99. If the ExtP_UA_digits are not null, then the access type is updated to indicate a calling card call in block 100, and the CARD_ACCESS table is accessed in block 101. Inputs to this process may include AUTH_PIN and ACCESS_NUM, and outputs may include SUBSCRIBER_ID, SUBNET_ID, RANGE_PRIV_DEFAULT, and TDRP_ID. If the ExtP_UA_digits are null, then the CallingPartylD length is determined in block 102. If the identifier length is 10, then the access type is updated to reflect primary rate interface and the PRI_ACCESS table is accessed in blocks 103 and 104. The inputs may include USER_ID, CSI_BEGIN, and CSI_END, and the outputs may include SUBSCRIBER_ID, SUBNET_ID, REQ_SUPP_CODE_ID , RANGE_PRIV_DEFAULT, TDRP_ID, and AUTH_CODE_VER_FLAG . If the calling party identifier length is 0, 3, or 6, then the access type is updated to reflect direct access line (DAL) in block 105. In block 106, the DAL_ACCESS table is accessed, where inputs may include USER_ID, and outputs may include SUBSCRIBER_ID, SUBNET_ID, RANGE_PRIV_DEFAULT, TDRP_ID, and AUTH_CODE_VER_FLAG . If the calling party identifier length is anything other than the above, then an application error has occurred and appropriate steps are taken in block 107.
FIGURE 8 is a flowchart of an embodiment of the TermType or termination type subroutine, which begins in block 110. In block 111, the DIALING_PLAN_TRANSLATION table is accessed. The keys used to access this table may include SUBSCRIBER_ID, SUBNET_ID, DIALING_DGTS_BEGIN, DIALING_DGTS_END, DIALING_DGTS_NOA, and data derived therefrom may include SWITCHED_NUM, SWITCHED_NUM_NOA, SW_NUM_PREFIX, SW_NUM_DGTS_FROM_DIAL, SW_NUM_SUFFIX, PRIMARY_TRK_GROUP, ALT_TRK_GRP_SEC_ALT_TRK_GRP, etc. If the dialed digits indicate that the called party is not a member of the virtual private network, then the collected address info digits prefix is determined in block 112. If the prefix is 700, then the value of INTRA LATA 700 BLK FLAG is checked in block 113. If the flag indicates that a block is in effect, then the call is disconnected in block 114. If the flag indicates that such calls are not blocked, then the call is routed in block 115. If in block 112 it is determined that the prefix is something other than 700, then the access type is determined in block 116. If the access type is a value indicating remote access, then the nature of address is determined in block 117. If the access type is not remote access, then the value of CALLED_PID_NOA is determined in block 118. If the nature of address yielded from blocks
117 and 118 is a 3 , then the termination type is set to non-virtual private network North American Number Plan
(NANP) , as shown in block 119. If the nature of address is a 4 or 96, then the termination type is set to non-virtual private network international direct distance dialing (IDDD) , as shown in block 120. Otherwise, an application error has occurred and appropriate steps are taken in block 121.
If in block 111 the dialing plan translation determines that the called party is a virtual private network member, then the value of PRIMARY_TRK_GRP, ALT_TRK_GRP, or SEC_ALT_TRK_GRP is determined in block 122. If the value is not null as determined in block 122, then the termination type is set to virtual private network on- net dedicated in block 123. If the trunk groups are null, then the translated number nature of address is determined in block 124. If the number is a 3 , then the termination type is set to virtual private network NANP in block 125; if the number is a 4 or 96, then the termination type is set to virtual private network IDDD in block 126; and otherwise an application error has occurred and handled in block 127.
FIGURE 9 is a flowchart of an embodiment of the TimeDep subroutine, which begins in block 130. In block 131, the TDRP_ID value is determined. TDRP_ID is an integer that is an index to a time dependent range privilege table (not shown) to determine whether this option is on. If it is off, then execution continues in block 132. Otherwise, the system time (SystemTime) is obtained in block 133. In block 134, the TIME_DEP_RANGE_PRIV is accessed. Inputs to access this table may include TDRP_ID and SystemTime, and outputs may include RANGE_PRIV. If there is a day of week (DOW) or time of day (TOD) match, then the RANGE_PRIV or RP_ID is updated in block 135 and execution continues in block 132. If there were not a match, execution continues in block 132 without updating RP_ID.
In FIGURE 10, an embodiment of the range privilege subroutine is shown, which begins in block 140. If the RP_ID is less than 20, as determined in 141, then universal range privileges is selected and the UNIV_RANGE_PRIVILEGE table is accessed in block 142. Universal range privileges are a set of predetermined range privileges which define a user's access to termination locations. Inputs to access the table may include RP_ID, and outputs may include VPN_NANP_BLK, VPN_IDDD_BLK , NON_VPN_NANP_BLK, CTRY_CODE_ALLOWABLE_FLAG, CTRY_CODE_L I ST_I DX , NPA_ALLOWABLE_FLAG, NPA_NXX_ALLOWABLE_FLAG , and DIALED_NUM_ALLOWABLE_FLAG .
In block 143, if the termination type is VPN on-net, then in block 144 the value of the block flag (BlkFlag) is set to the value of the VPN_ON_NET_BLK variable obtained in block 142, and subroutine OnnetBlk (FIGURE 11) is invoked in block 145. If the termination type is VPN NANP, then the value of the block flag is set to the value of VPN_NANP_BLK in block 146 and subroutine NatlBlk (FIGURE 14) is called in block 147. If the termination type is VPN IDDD, then the value of the block flag is set to the value of VPN_IDDD_BLK in block 148 and subroutine IntlBlk (FIGURE 17) is called in block 149. If the terminatin type is non- VPN NANP, then the value of the block flag is set to the value of NON_VPN_NANP_BLK in block 150 and subroutine NATL BLK (FIGURE 14) is called in block 151. If the termination type is non-VPN IDDD, then the value of the block flag is set to the value of NON_VPN_IDDD_BLK in block 152 and subroutine INTL BLK (FIGURE 17) is called in block 153.
If in block 141 it is determined that range privileges is not universal but customized, then in block 154 the CUST_RANGE_PRIVILEGE table is accessed. Inputs to access the table may include RP_ID, SUBSCRIBER_ID, and SUBNET_ID, and outputs may include DIAL_PLAN_7_DGT_BLK, ALL_IDDD_DIAL_PLAN_BLK, CTRY_CODE_ALLOWABLE_FLAG , CTRY_CODE_LIST_IDX, CTRY_CITY_LIST_IDX, NPA_ALLOWABLE_FLAG, NPANXX_ALLOWABLE_FLAG, SPEDGT_ALLOWABLE_FLAG, and DIALED_NUM_ALLOWABLE_FLAG .
If the termination type is determined in block 155 to be IDDD (VPN or non-VPN) , then the value of the block flag is set to the value of ALL_IDDD_BLK in block 156 and subroutine INTL BLK (FIGURE 17) is called. If the termination type is determined to be on-net or NANP (VPN or non-VPN) , then the length or number of dialed digits are determined in block 158. If the number of dialed digits is "7", then the value of the block flag is set to the value of 7_DIAL_PLAN_BLK in block 159. If the number of the dialed digits is "10", then the value of the block flag is set to the value of 10_DIAL_PLAN_BLK in block 160. Thereafter if the termination type (block 161) is on-net, then subroutine OnnetBlk is called in block 162, and if the termination type is NANP, then subroutine NatlBlk is called in block 163. If in block 158 the length of dialed digits is anything other than "7" or "10", then if the termination type (block 164) is on-net, then the value of the block flag is set to "Allow" in block 165 and execution proceeds to OnnetBlk in block 166. Otherwise if the termination type is NANP, then the block flag is also set to "Allow" in block 167 and execution proceeds to NatlBlk in block 168.
In FIGURE 11, an embodiment of the OnnetBlk subroutine is shown. OnnetBlk begins in block 170 and depending on the value of BlkFlag, it is determined whether the call is blocked, as shown in block 171. If the call is blocked, then subroutine OnnetBlock (FIGURE 12) is executed, as shown in block 172. If no blocking is desired, then subroutine OnnetNoBlock (FIGURE 13) is executed, as shown in block 173.
FIGURE 12 is a flowchart of an embodiment of the OnnetBlock subroutine, which begins in block 174. In block 175, the value of the DIALED_NUM_ALLOWABLE_FLAG is determined. If the flag indicates allow, then the DIALED_NUM_LIST table is accessed in block 176 to determine if the dialed number is blocked. If the table shows the number is blocked (i.e., the dialed number is not on the list within range of the allowed numbers in the DIALED_NUM_LIST table) , then an error has occurred. In block 182, a SendToResource message with disconnect flag and announcement ID is sent to the service switching point . If the result is no block (i.e., the dialed number is on the list) , then the value of SPEDGT_ALLOWABLE_FLAG is determined in block 177. If the flag indicates allow, then execution continues in block 178. If the flag indicates disallow, then the SPEDGT_LIST table is accessed in block 179. If the result is block, then a SendToResource message with disconnect flag and announcement identifier is sent to the service switching point in block 181. If the result is no block, then execution continues in block 180.
If the determination in block 175 yields disallow, then the value of SPEDGT_ALLOWABLE_FLAG is examined in block 183. If the value is disallow, then a Send_To_Resource message with disconnect flag and announcement ID is sent in block 187. If the value is allow, then the SPEDGT_LIST is accessed in block 184. If the result is block, then a Send_To_Resource message with disconnect flag and announcement is sent in block 186. If the result is no block, then execution continues in block 185.
FIGURE 13 is a flowchart of an embodiment of the OnnetNoBlock subroutine, which begins in block 190. In block 191, the value of the DIALED_NUM_ALLOWABLE_FLAG is determined. If the flag indicates disallow, then the DIALED_NUM__LIST table is accessed in block 192. If the result is block, then an error has occurred. In block 182, a Send_To_Resource message with disconnect flag and announcement identifier is sent to the service switching point. If the result is no block, then the value of SPEDGT_ALLOWABLE_FLAG is determined in block 193. If the flag indicates allow, then execution continues in block 194. If the flag indicates disallow, then the SPEDGT_LIST table is accessed in block 195. If the result is block, then a Send_To_Resource message with disconnect flag and announcement identifier is sent to the service switching point in block 197. If the result is no block, then execution continues in block 196.
If the determination in block 175 yields allow, then the value of SPEDGT_ALLOWABLE_FLAG is examined in block 199. If the value is allow, then execution continues in block 200. If the value is disallow, then the SPEDGT_LIST tabel is accessed in block 201. If the result is block, then a Send_To_Resource message with disconnect flag and announcement is sent in block 203. If the result is no block, then execution continues in block 202.
In FIGURE 14, an embodiment of NatlBlk subroutine is shown, which begins in block 210. In block 211, the value of BlkFlag is determined. If the value is block, then execution proceeds to subroutine NatlBlock as shown in block 212, otherwise execution proceeds to subroutine NatlNoBlock as shown in block 213.
In FIGURE 15, an embodiment of NatlBlock subroutine is shown, which begins in block 220. In block 221, the value of NPA_ALLOWABLE_FLAG is determined. If it is allow, then the NPA_LIST table is accessed in block 222. If the result is block, then the value of the NPA_NXX_ALLOWABLE FLAG is determined in block 223. If it is disallow, subroutine SpedgtBlock (FIGURE 20) is executed, as shown in block 224. If it is allow, then the NPA_NXX_LIST table is accessed in block 225. If the result is block, subroutine SpedgtBlock is executed, as shown in block 226. If the result is no block, subroutine SpedgtNoBlock (FIGURE 21) is executed, as shown in block 227.
If the result from block 222 is no block, then the value of the NPA_NXX_ALLOWABLE_FLAG is determined in block 228. If the flag value is allow, then subroutine SpedgtNoBlock is executed, as shown in block 229. If the flag value is disallow, then the NPA_NXX_LIST tabel is accessed in block 230. If the result is block, subroutine SpedgtBlock is executed, as shown in block 231. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 232.
If the NPA_ALLOWABLE_FLAG value is disallow, then the the NPA_NXX_ALLOWABLE_FLAG is determined in block 233. If the flag value is disallow, then subroutine SpedgtBlock is executed, as shown in block 234. If the flag value is allow, then the NPA_NXX_LIST table is accessed in block 235. If the result is block, subroutine SpedgtBlock is executed, as shown in block 236. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 237.
In FIGURE 16, an embodiment of NatlNoBlock subroutine is shown, which begins in block 240. In block 241, the value of NPA_ALLOWABLE_FLAG is determined. If it is disallow, then the NPA_LIST table is accessed in block 242. If the result is block, then the value of the NPA_NXX_ALLOWABLE_FLAG is determined in block 243. If it is disallow, subroutine SpedgtBlock is executed, as shown in block 244. If it is allow, then the NPA_NXX_LIST table is accessed in block 245. If the result is block, subroutine SpedgtBlock is executed, as shown in block 246. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 247.
If the result from block 242 is no block, then the value of the NPA_NXX_ALLOWABLE_FLAG is determined in block 248. If the flag value is allow, then subroutine
SpedgtNoBlock is executed, as shown in block 249. If the flag value is disallow, then the NPA_NXX_LIST table is accessed in block 250. If the result is block, subroutine SpedgtBlock is executed, as shown in block 251. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 252. If the NPA_ALLOWABLE_FLAG value is allow, then the the
NPA_NXX_ALLOWABLE_FLAG is determined in block 253. If the flag value is allow, then subroutine SpedgtNoBlock is executed, as shown in block 254. If the flag value is disallow, then the NPA_NXX_LIST table is accessed in block 255. If the result is block, subroutine SpedgtBlock is executed, as shown in block 256. If the result is no block, subroutine SpedgtNoBlock is executed, as shown in block 257.
In FIGURE 17, an embodiment of IntlBlk subroutine is shown, which begins in block 260. In block 261, the value of BlkFlag is determined. If the value is block, then execution proceeds to subroutine IntlBlock as shown in block 262, otherwise execution proceeds to subroutine IntlNoBlock as shown in block 263. Referring to FIGURE 18, an embodiment of IntlBlock subroutine is shown, which begins in block 270. In block 271, the value of CTR_CODE_ALLOWABLE_FLAG is determined. If the flag value indicates allow, then the CTRY_CODE_LIST table is accessed in block 272. If the result is block, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 273. If the flag indicates allow, then the CTRY_CITY_LIST table is accessed in block 275. If the result is block, then execution proceeds to subroutine SpedgtBlock, as shown in block 276. If the result is no block, then execution proceeds to subroutine SpedgtNoBlock, as shown in block 277. If the CTRY_CITY_ALLOWABLE_FLAG is determined in block 273 as disallow, then subroutine SpedgtBlock is called, as shown in block 274.
If no block is yielded from block 272, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 278. If the flag indicaets allow, then SpedgtNoBlock subroutine is executed, as shown in block 279. If the flag indicates disallow, then the CTRY_CITY_LIST table is accessed in block 280. If the result is block, then subroutine SpedgtBlock is called, as shown in block 281. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 282.
If the CTRY_CODE_ALLOWABLE_FLAG is determined in block 271 as disallow, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 283. If the flag indicates disallow, then SpedgtBlock subroutine is executed, as shown in block 284. If the flag indicates allow, then the CTRY_CITY_LIST table is accessed in block 285. If the result is block, then subroutine SpedgtBlock is called, as shown in block 286. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 287. Referring to FIGURE 19, an embodiment of IntlNoBlock subroutine is shown, which begins in block 290.. In block 291, the value of CTR_CODE_ALLOWABLE_FLAG is determined. If the flag value indicates disallow, then the CTRY_CODE_LIST_IDX table is accessed in block 292. If the result is block, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 293. If the flag indicates allow, then the CTRY_CITY_LIST_IDX table is accessed in block 294. If the result is block, then execution proceeds to subroutine SpedgtBlock, as shown in block 295. If the result is no block, then execution proceeds to subroutine SpedgtNoBlock, as shown in block 296. If the CTRY_CITY_ALLOWABLE_FLAG is determined in block 298 as disallow, then subroutine SpedgtBlock is called, as shown in block 297. If no block is yielded from block 292, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 298. If the flag indicaets allow, then SpedgtNoBlock subroutine is executed, as shown in block 299. If the flag indicates disallow, then the CTRY_CITY_LIST_IDX table is accessed in block 300. If the result is block, then subroutine SpedgtBlock is called, as shown in block 301. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 302.
If the CTRY_CODE_ALLOWABLE_FLAG is determined in block 291 as allow, then the value of CTRY_CITY_ALLOWABLE_FLAG is determined in block 303. If the flag indicates allow, then SpedgtNoBlock subroutine is executed, as shown in block 304. If the flag indicates disallow, then the CTRY_CITY_LIST_IDX table is accessed in block 305. If the result is block, then subroutine SpedgtBlock is called, as shown in block 306. If the result is no block, then subroutine SpedgtNoBlock is called, as shown in block 307.
In FIGURE 20, a flowchart of an embodiment of the
SpedgtBlock subroutine begins in block 310. In block 311, the value of SPEDGT_ALLOWABLE_FLAG is determined. If the flag indicates allow, the SPEDGT_LIST_IDX table is accessed in block 312. If the result is block, then a SendToResource message with disconnect flag and announcement identifier is sent to the service switching point in block 314. If the result is no block, then execution continues in block 313. If the value SPEDGT_ALLOWABLE_FLAG indicates disallow, then a SendToResource message with disconnect flag and announcement identifier is sent in block 315.
In FIGURE 21, a flowchart of an embodiment of the SpedgtNoBlock subroutine begins in block 320. In block 321, the value of SPEDGT_ALLOWABLE_FLAG is determined. If the flag indicates disallow, the SPEDGT_LIST_IDX table is accessed in block 322. If the result is block, then a SendToResource message with disconnect flag and announcement identifier is sent to the service switching point in block 324. If the result is no block, then execution continues in block 323. If the value SPEDGT_ALLOWABLE_FLAG indicates allow, then execution continues in block 325. In FIGURE 22, a flowchart of an embodiment of the
SuppCode subroutine begins in block 330. In block 331, the SUPP_NON_VER_PROJ_LEN table is accessed in which inputs may include NON_VER_PROJ_CODE_REQ_IDX and ACCESS_TYPE, and output may include NON_VER_PROJ_LEN . In block 332, the caller is prompted for suppelemental codes, which are collected. The total length of the supplemental code is then calculated. In block 333, the value of a reason code is determined. If the reason code is 2 or 7, then the retry counter is incremented, as shown in block 334, and the value of the retry counter is compared with a predetermined retry threshold, such as 3 , as shown in block 335. If the retry counter is greater than the threshold, then the error is logged and a peg counter is incremented, as shown in block 336. Otherwise, treatment announcement is set in block 337 to prompt the caller to re-enter the suppelemental code, as in block 332. If in block 333 it is determined that the reason code is 0, then the received suppelemental code is parsed to the proper length formats, as shown in block 338. In block 339, a determination is made as to whether the lengths of SUPP_ID_CODE and SUPP_VER_PROJ_CODE are valid. If invalid, then execution proceeds to block 334 where the retry counter is incremented. If the lengths of the codes are valid, then the SUPP_ID_CODE and SUPP_VER_PROJ_CODE tables are accessed in block 340. Inputs may include VER_PROJ_CODE_REQ_IDX and ID_CODE_REQ_IDX, and outputs may include a list of valid ID and/or verified project codes. In block 341, the resultant ID and/or project code is validated. If the codes are valid then the value of ID_CODE_RANGE_PRIV is determined in block 342. If it is no, then execution continues in block 343. If it is yes, then RP_ID is set equal to ID_CODE_RANGE_PRIV in block 344. In block 345, subroutine RangePriv is called.
Below is a summary of the tables accessed and described above. DAL ACCESS TABLE contains a list of dedicated user identifiers that can be called from and to the VPN, its range privileges, and when authorization code validation is required or when supplementary codes are required
PRI ACCESS TABLE contains a list of approved station identifiers and dedicated user identifiers that can be called from and to the VPN, its range privileges and when supplementary code is required
ANI ACCESS TABLE contains a list of approved numbers that can be called from and to the VPN and the range privileges and when supplementary code is required
REMOTE ACCESS TABLE contains 800 number and authorization code and personal identifier number code that determine subscriber, subnet, range privileges, and when supplementary code is required from the remote access location calls
CARD ACCESS TABLE contains 800 number and authorization code and personal identification number that determine subscriber, subnet, its range prividleges from the calling card access calls
AUTH CODE TABLE contains all of the authorization codes for the specified subnet of a subscriber
SUBSCRIBER_INFO contains all of the announcement TABLE codes, treatment codes, supplementary code format index and 700 Intra-local access transport area (intra-lata) block or continue flag for the specified subnet of a subscriber
TIME_DEP_RANGE_PRIV provides multiple time slots (day of TABLE week and time of day) for one TDRP_ID index. Each time slot has its own range privilege value, based on the time of the call, if it matches the time slots, then use the specified range privilege index to perform call screening
Figure imgf000030_0001
Figure imgf000031_0001
In FIGURES 23-35, message flows between the service switching point and the service control point for various operating conditions are shown. FIGURE 23 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing without supplementary code according to the teachings of the present invention; FIGURE 24 is a message flow diagram describing calling card access and universal access according to the teachings of the present invention; FIGURE 25 is a message flow diagram describing 700 access without supplementary code according to the teachings of the present invention; FIGURE 26 is a message flow diagram describing 800 remote access without universal access according to the teachings of the present invention; FIGURE 27 is a message flow diagram describing 700 intralata according to the teachings of the present invention; FIGURE 28 is a message flow diagram describing general application error according to the teachings of the present invention; FIGURE 29 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code according to the teachings of the present invention; FIGURE 30 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code that is unsuccessful due to timeout or invalid supplementary code according to the teachings of the present invention; FIGURE 31 is a message flow diagram describing direct access line, primary rate interface or automatic number identification successful routing with supplementary code that is unsuccessful in cases other than timeout and invalid supplementary code according to the teachings of the present invention; FIGURE 32 is a message flow diagram describing 800 remote access where supplementary code is required with up to three tries for digit entry without universal access according to the teachings of the present invention; FIGURE 33 is a message flow diagram describing 800 remote access failure with dialed digits according to the teachings of the present invention; FIGURE 34 is a message flow diagram describing 800 remote access failure with supplementary code entry according to the teachings of the present invention; and FIGURE 35 is a message flow diagram describing 800 remote access with up to three tries for digit entry according to the teachings of the present invention. Although several embodiments of the present invention and its advantages have been described in detail, it should be understood that mutations, changes, substitutions, transformations, modifications, variations, and alterations can be made therein without departing from the teachings of the present invention, the spirit and scope of the invention being set forth by the appended claims. APPENDIX A - Variable or Table Name Definitions
ACCESS_NUM 800 number that user dialed to access the virtual private network
ACCESS TYPE origination access type which may be ANI, DAL, PRI , remote access, calling card access, or remote access
ANI BEGIN beginning range of automatic number identification identifies the number access to the virtual private network from switched location
ANI_END ending range of automatic number identification identifies the number access to the virtual private network from switched location
ALL_IDDD_DIAL_PLAN_BLK all international direct distance dialing plan block flag
ALT_TRK_GRP alternate trunk group field in analyze_route message
AUTH_C0DE authorization code
AUTH_CODE_VER_FLAG authorization code verification flag indicating whether authorization code validation is needed
AUTH PIN authorization code + personal identification number
AUTH PIN CODE authorization code + personal identification number code for remote access calls collected from the switch
BlkFlag block flag reflects blocked conditions CALLED_PID_NOA called party identifier nature of address
CSI_BEGIN beginning range of station ID that can access the virtual private network
CSI END ending range of call station ID that can access the virtual private network
CTRY_CITY_CODE country code + city code CTRY_CITY_LIST_IDX index to a list of country code + city code
CTRY CODE country code
CTRY_CODE_ALLOWABLE_FLAG country code allowable flag CTRY_CODE_LIST_IDX country code list index DIALED NUM ALLOWABLE FLAG dialed number allowable flag indicates whether a list of allowed or disallowed dialed numbers DIAL_PLAN_7_DGT_BLK dialing plan 7 digit block flag ID_CODE_LEN identifier code length ID_CODE_REQ_IDX identifier code requirement index INTRA_LATA_700_BLK_FLAG intra-local access transport area
700 block flag
NON VPN NANP BLK non-VPN north american number plan block flag
NPA ALLOWABLE FLAG numbering plan area allowable flag indicates whether there is a list of allowed or disallowed NPAs NPA NXX ALLOWABLE FLAG NPA-NXX allowable flag indicates whether there is a list of allowed or disallowed NPA-NXXs
PRIMARY TRK GRP primary trunk group field in analyze_route message
PROMPT ID DIAL DIGIT SendToResource prompt announcement identifier for the remote access type that required collecting the dialed digits
PROMPT ID SUPP CODE SendToResource prompt announcement identifier for all of the access types that require collecting the supplementary code
RANGE_PRIV range privileges
RP_ID range privileges identifier
REQ SUPP CODE ID required supplementary code identifier, which is an index to the REQ_SUPP_CODE table that indicates which type of calls require supplementary codes
RANGE PRIV DEFAULT identifier for the range privileges, which may be one of RP_ID in UNIV_RANGE_PRIV or CUST_RANGE_PRIV table
SEC ALT TRK GRP second alternate trunk group field of analyze_route message
SPEDGT ALLOWABLE FLAG allowable flag for translated numbers that will be used to allow or disallow range privileges in the universal range privilege
SPEDGT_LIST list of translated numbers SPEDGT_LIST IDX index for a set of translated numbers SPEDGT NUM special digit translated number to either allow or disallow range privilege
SUBNET_ID VPN network identifier SUBSCRIBER_ID VPN subscriber identifier SuppCode supplementary code SystemTime system time of call TDRP ID time dependent range privilege identifier which is an index into a time dependent range privilege table
TIME_DEP_RANGE_PRIV time dependent range privileges TOLL_FREE_NUM 877, 888, 500, 900, 800 remote access number
UNIV_RANGE_RPIVILEGE universal range privileges USER_ID user identifier; 00 + switch ID + trunk group
VER_PROJ_CODE_LEN verified project code length VER PROJ CODE REQ IDX verified project code required index
VPN_IDDD_BLK VPN international direct distance dialing VPN NANP BLK VPN north american number plan block APPENDIX B ACRONYMS
AIN Advanced Intelligent Network
ANI Automatic Number Identification
CAI Collected Address Info
CAIN Carrier Advanced Intelligent Network
CDR Call Detail Record
CSI Call Station Identifier
DAL Direct Access Line
DNIS Dialed Number Identification
DOW Day of Week
DTO Direct Termination Overflow
ID Identifier
IDDD International Direct Distance Dialing
IN Intelligent Network
IP Intelligent Peripheral
IPR Information Problem Report
LATA Local Access Transport Area
NANP North American Numbering Plan
NOA Nature of Address
NPA Numbering Plan Area
NXX Central office code; N can be digits 2-9 and XX can be 00-99
PID Party identifier (as in calling party identifier or called party identifier)
PIN Personal Identification Number
PRI Primary Rate Interface
SCP Service Control Point
SLP Service Logic Program
SQL Structured Query Language
SSP Service Switching Point
STR SendToResource or Send_To_Resource Message
TBD To Be Determined
TDRP Time Dependent Range Privilege
TOD Time of Day
VPN Virtual Private Network

Claims

WHAT IS CLAIMED IS:
1. A method of providing virtual private network services, comprising: receiving a number of dialed digits entered by a caller, the dialed digits including a called party number; recognizing the caller as a member of a subscriber to the virtual private network service; obtaining stored information on the subscriber; translating the called party number to a destination number; determining whether the call is within a set of predetermined block criteria; playing an appropriate announcement to the caller and disconnecting the call if the call is blocked; and routing the call to the destination number if the call is not blocked.
2. The method, as set forth in claim 1, wherein determining the block criteria comprises determining whether the time of the call is within a predetermined authorized range.
3. The method, as set forth in claim 1, wherein determining the block criteria comprises determining whether the destination number is also a member of the same virtual private network and whether a non-plan call is blocked.
4. The method, as set forth in claim 1, wherein determining the block criteria comprises determining whether the destination number is within north american numbering plan or international direct distance dialing and whether such a call is blocked.
5. The method, as set forth in claim 1, wherein determining the block criteria comprises determining whether the destination number is a blocked destination number.
6. The method, as set forth in claim 1, further comprising collecting supplementary code digits.
7. The method, as set forth in claim 6, wherein collecting supplementary code digits comprises collecting an authoriztion code.
8. The method, as set forth in claim 6, wherein collecting supplementary code digits comprises collecting a project code.
9. The method, as set forth in claim 1, further comprising determining whether the destination number includes a blocked country code.
10. The method, as set forth in claim 1, further comprising determining whether the destination number includes a blocked country code and city code combination.
11. The method, as set forth in claim 1, further comprising determining whether the subscriber subscribes to a set of standard privileges or a set of customized privileges .
12. A method of providing virtual private network services, comprising: receiving a number of dialed digits entered by a caller, the dialed digits including a called party number; recognizing the caller as a member of a subscriber to the virtual private network service; obtaining stored information on the subscriber; translating the called party number to a destination number; determining whether the time of the call is within a predetermined authorized range; determining whether the destination number is also a member of the same virtual private network and whether a non-plan call is blocked; determining whether the destination number is within north american numbering plan or international direct distance dialing and whether such a call is blocked; determining whether the destination number is a blocked destination number; playing an appropriate announcement to the caller and disconnecting the call if the call is blocked; and routing the call to the destination number if the call is not blocked.
13. The method, as set forth in claim 12, further comprising collecting supplementary code digits.
14. The method, as set forth in claim 13, wherein collecting supplementary code digits comprises collecting an authoriztion code.
15. The method, as set forth in claim 13, wherein collecting supplementary code digits comprises collecting a project code.
16. The method, as set forth in claim 12, further comprising determining whether the destination number includes a blocked country code.
17. The method, as set forth in claim 12, further comprising determining whether the destination number includes a blocked country code and city code combination.
18. The method, as set forth in claim 12, further comprising determining whether the subscriber subscribes to a set of standard privileges or a set of customized privileges .
19. A method of routing calls to and from a virtual private network, comprising: receiving a number of dialed digits from within the virtual private network; obtaining information on the subscriber of the virtual private network; translating the dialed digits to a destination number and determining whether the destination number is a virtual private network number; determining whether the call is within a set of predetermined block criteria in response to the destination number is a virtual private network number; determining whether the call is within a set of predetermined block criteria in response to the destination number is not a virtual private network number; and routing the call to the destination number if the call is not blocked.
PCT/US1998/026164 1997-12-09 1998-12-09 Virtual private network service for an advanced intelligent network WO1999030461A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU17204/99A AU1720499A (en) 1997-12-09 1998-12-09 Virtual private network service for an advanced intelligent network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6799197P 1997-12-09 1997-12-09
US60/067,991 1997-12-09

Publications (2)

Publication Number Publication Date
WO1999030461A2 true WO1999030461A2 (en) 1999-06-17
WO1999030461A3 WO1999030461A3 (en) 1999-07-22

Family

ID=22079753

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/026164 WO1999030461A2 (en) 1997-12-09 1998-12-09 Virtual private network service for an advanced intelligent network

Country Status (2)

Country Link
AU (1) AU1720499A (en)
WO (1) WO1999030461A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2825555A1 (en) * 2001-05-30 2002-12-06 Nilcom SHORT MESSAGE SYSTEM, ESPECIALLY PREPAID MESSAGES

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0583135A2 (en) * 1992-08-12 1994-02-16 AT&T Corp. Intelligent call screening in a virtual communications network
US5333185A (en) * 1991-06-03 1994-07-26 At&T Bell Laboratories System for processing calling party information for international communications services
US5490212A (en) * 1993-08-30 1996-02-06 Alcatel Sel Aktiengesellschaft Call-routing method for a virtual private network as well as service computer and exchange therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333185A (en) * 1991-06-03 1994-07-26 At&T Bell Laboratories System for processing calling party information for international communications services
EP0583135A2 (en) * 1992-08-12 1994-02-16 AT&T Corp. Intelligent call screening in a virtual communications network
US5490212A (en) * 1993-08-30 1996-02-06 Alcatel Sel Aktiengesellschaft Call-routing method for a virtual private network as well as service computer and exchange therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2825555A1 (en) * 2001-05-30 2002-12-06 Nilcom SHORT MESSAGE SYSTEM, ESPECIALLY PREPAID MESSAGES
US7003306B2 (en) 2001-05-30 2006-02-21 Nilcom Short message system, especially prepaid message system

Also Published As

Publication number Publication date
WO1999030461A3 (en) 1999-07-22
AU1720499A (en) 1999-06-28

Similar Documents

Publication Publication Date Title
US5974133A (en) Method and apparatus for facilitating communication across multiple locations
US5680446A (en) Advanced intelligent network screening
US5878127A (en) Method and apparatus for facilitating remote communications access to multiple locations within a telecommunications network
US5566235A (en) Customer controlled service mediation management
US7386106B2 (en) Method, system, and database for providing a telecommunication service
US8908850B2 (en) International origin dependent customized routing of calls to toll-free numbers
US6018737A (en) Universal personal telecommunications service for an advanced intelligent network
US6724882B2 (en) Geographical call routing for a non-emergency calling service
US6185289B1 (en) Mediated AIN control of short code access to information service providers
US6075854A (en) Fully flexible routing service for an advanced intelligent network
US6526136B2 (en) System and computer program for routing a dedicated number through alternate telephone carriers
US7106846B2 (en) System and method for caller control of a distinctive ring
US20020015483A1 (en) Calling-party-pays call processing for cellular and paging
US6269155B1 (en) Process for making connections and accounting for connections in telecommunication systems
US20020076017A1 (en) Procedure and system for the setting up of calls
US20030108179A1 (en) System and method for AIN SSP and SCP to support differentiated telecommunications services using a multi-function service node
WO1999030461A2 (en) Virtual private network service for an advanced intelligent network
EP1040681B1 (en) Televoting service for an advanced intelligent network
US7903799B1 (en) Method and apparatus for providing a communications service feature for a communication through a network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

AK Designated states

Kind code of ref document: A3

Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
NENP Non-entry into the national phase in:

Ref country code: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase