Local Number Portability Signaled over SIP and How to Troubleshoot
In Teraquant’s recent “Local Number Portability and How to Troubleshoot” No Fluff Tech Tip, we provided technical guidance on how to troubleshoot Local Number Portability (LNP) when transported over the ISUP/SS7. In this No Fluff Tech Tip, we show you how to troubleshoot and verify LNP is working well over SIP.
Teraquant provides an add-on to Oracle’s Communications Operations Monitor (OCOM) that highlights the parts of the SIP INVITE carrying the LNP information allowing you to search on specific calls and ensure the ported number is delivered to the correct switch in the network and routed to the new number’s destination.
What is Local Number Portability and Why is it Important?
The right of telephone subscribers to keep their phone number even if they move across the country was introduced with the Telecommunications Act of 1996. Typically, when a call is made through a telephony switch, the switch determines whether they can route that call based on the called digits directly from the routing table in that local switch, e.g., using the first 6 digits (NPA-NXX) of the 10 digits of the ANSI standard dial plan. In other words, if the destination number is in the routing table of that switch’s database, the call can be routed directly to the destination. This is rarely the case.
Calls not immediately routable activate a trigger and the switch routes the call to their Access Tandem partner who will “dip” or access a database hosted on the Service Control Point (SCP). This distributed database is supported nationally throughout North America by tier one carriers or the access tandem switch network provider.
This database query is still made in the SS7 network but can be initiated using the SIP protocol through a gateway. Once the response comes back from the query, we need to see how this is shown in the SIP INVITE.
The LNP Process
The NPAC (Number Portability Administrative Center) has the authoritative database for all the ported telephone numbers. The NPAC SMS (Service Management System) provides updates to the LNP database of LNP service provider (also referred to as Local Service Management System). The telephone switch of the OSP (Originating Service Provider) is the network element that subscribes to the LNP service provider and normally does the query to the LNP database to find the routing information of the ported number.
The query from the telephone service provider to the LNP database could be via multiple different protocols depending on the protocols supported and the service agreement between the OSP and the LNP database service provider. Normally ENUM, SS7, and SIP are the widely used protocols for performing the LNP dip, with SIP gaining more popularity as per the research we conducted.
The LNP Call Flow can be explained through these high-level simple steps:
- User A dials the telephone number for User B.
- The telephone switch of User A’s Service Provider initiates a query to the LNP routing database to check if the number for User B has been ported.
- If User B’s telephone number has been ported, the LNP database responds back with the LRN (Local Routing Number) of the ported number. A few other parameters such as current assigned service provider ID (SPID), Alternative SPID (to identify reseller), Wireless/Wireline Service Provider type, etc., are maintained and returned by the LNP database when a LNP query is done.
- If user B’s telephone number has not been ported, the LNP database response indicates that the number has not been ported and that the call should be routed directly based on the user B’s telephone number itself.
Sample Invite Message Sent from the UE
INVITE sip:+17194881003@147.10.100.45:5060 SIP/2.0
Via: SIP/2.0/UDP 10.201.10.54:5060;branch=z9hG4bK+914a721d4063af6a8e3eb92505fbd7c31+sip+6+aa089dc5
From: “JOHN ME” sip:+14483889246@10.201.20.44:5060;tag=10.201.10.44+6+97d0d919+cdee1a06
To: sip:+17194881003@147.10.100.45:5060
CSeq: 650135 INVITE
Expires: 300
Content-Length: 278
Contact: sip:81aa1d93db67762585fc4ae100572c81@10.201.20.44:5060;transport=udp
Content-Type: application/sdp
Call-ID: 0gQAAC8WAAACBAAALxYAAIIU6xe8jjF7atqXViZbSuDjyNEtDAjoUTgWT2umhhIj@10.201.20.44
Max-Forwards: 69
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,OPTIONS, INFO
Accept: application/sdp, application/isup, application/dtmf, application/dtmf-relay, multipart/mixed
A query is made by the originating subscriber’s switch for called number 17194881003 to the LNP database server to see if the number has been ported. During the LNP dip, the LNP database server checks its database and determines that the number has been ported. So it replies back with the LRN of the ported number. The originating subscriber’s switch, or its partner that made the query to the SMS, then routes the call further with the LRN included within the R-URI and npdi=yes, indicating that a LNP query was done, see below.
Sample Invite after LNP Query
INVITE sip:+17194881003;npdi=yes;rn=+16616493311@172.30.30.150:5060 SIP/2.0
Via: SIP/2.0/UDP 10.201.10.54:5060;branch=z9hG4bK+914a721d4063af6a8e3eb92505fbd7c31+sip+6+aa089dc5
From: “JOHN ME” sip:+14483889246@10.201.20.44:5060;tag=10.201.10.44+6+97d0d919+cdee1a06
To: sip:+17194881003@147.10.100.45:5060
CSeq: 650135 INVITE
Expires: 300
Content-Length: 278
Contact: sip:81aa1d93db67762585fc4ae100572c81@10.201.20.44:5060;transport=udp
Content-Type: application/sdp
Call-ID: 0gQAAC8WAAACBAAALxYAAIIU6xe8jjF7atqXViZbSuDjyNEtDAjoUTgWT2umhhIj@10.201.20.44
Max-Forwards: 69
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,OPTIONS, INFO
Accept: application/sdp, application/isup, application/dtmf, application/dtmf-relay, multipart/mixed
The npdi parameter stands for Number Portability Dip Indicator and it could be explicitly set to ‘yes’ or just be present in the Invite R-URI as per RFC 4694 to indicate that LNP query has been made.
tel:+1-202-533-1234;npdi;rn=+1-202-544-0000
In case the LNP query has been done by the originating service provider or a partner’s switch and the number has not been ported, the downstream Invite message would contain the npdi parameter. However, LRN would not be present in the R-URI as shown in the example below.
INVITE sip:+17194881003;npdi=yes@172.30.30.150:5060 SIP/2.0
Via: SIP/2.0/UDP 10.201.10.54:5060;branch=z9hG4bK+914a721d4063af6a8e3eb92505fbd7c31+sip+6+aa089dc5
From: “JOHN ME” sip:+14483889246@10.201.20.44:5060;tag=10.201.10.44+6+97d0d919+cdee1a06
To: sip:+17194881003@147.10.100.45:5060
CSeq: 650135 INVITE
Expires: 300
Content-Length: 278
Contact: sip:81aa1d93db67762585fc4ae100572c81@10.201.20.44:5060;transport=udp
Content-Type: application/sdp
Call-ID: 0gQAAC8WAAACBAAALxYAAIIU6xe8jjF7atqXViZbSuDjyNEtDAjoUTgWT2umhhIj@10.201.20.44
Max-Forwards: 69
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,OPTIONS, INFO
Accept: application/sdp, application/isup, application/dtmf, application/dtmf-relay, multipart/mixed
Commonly Occurring Problems
Often the responsibility to query the LNP database falls between the cracks. The local originating carrier may fail to do it and the immediate northbound carrier [N-1] may also drop the task.
Although very much less common, it can happen at the SCP and its backup is offline, maybe for scheduled maintenance. A message would come back stating “Subsystem Unavailable”. More frequent is a slow response from the N-1 carrier, triggering a timeout on the local originating switch. Hopefully, this would be caught by alerts generated to the support desk /NOC.
Sometimes an incorrect LRN value can be returned by the TCAP query. Basically, the LNP database has been given incorrect information. You know the old adage “garbage in, garbage out”. It starts with manual human data entry following a rather complex administrative process and errors can occur along the way.
Quick and Easy Troubleshooting
What information do we need from our network monitoring tools in order to ensure the process is working correctly and to be able to troubleshoot when it is not?
The main new parameter that we need to monitor is the LRN. This is the routing number of the new switch on which the new destination this ported number now resides. All we need to do is to route the invite to this LRN and it will know where to route to the new destination of the called party. So we need to be able to search on the calling number, the called number which is obviously in standard functionality of OCOM. But in addition, we need to be able to search on the LRN or the ‘RN’ in the SIP INVITE.
Important Information from Your Monitoring Tool
The most important parameter derived from the AIN/TCAP database query is the RN. This parameter appears in your ISUP/SS7 call control populated from the AIN/TCAP query and shows the original number dialed. The called number has now been replaced with the LRN. So your switch will direct the call to that switch using the LRN. And that switch’s local database will contain the information on how to reach the ported end subscriber.
The new destination for the call on the subscriber’s home switch is now given in the Called Party field i.e., the LRN. The original dialed digits is useful information for reference when troubleshooting and is now contained in the Generic Address Part number of your ISUP Initial Address Message (IAM) as shown above. Teraquant has highlighted this information on the main troubleshooting calls page in OCOM.