Iñaki Baz Castillo
2008-03-04 12:12:33 UTC
Hi, when I receive an INVITE from my provider SIP_PSTN gateway I do a lookup
in my internal ENUM.
If the E164 number is mapped to a local SIP user (client of mine) I look for
it in the location server.
If the user is registered I forwad the INVITE and so... all OK.
The problem is in the case the SIP user is not registered (by any reason).
Then my proxy replies "404 Not Found" to the provider SIP_PSTN gateway.
RFC 3398 specifies that the ISUP mapped code for SIP "404" is:
-------------------------------------------------------------------------------------------------
1 Unallocated number
This number is not in the routing table or it has no path across the ISDN
cloud (network).
1. Check routing table to see it the number is available.
2. Check to make sure the correct digits were dialed and it is a
valid number.
-------------------------------------------------------------------------------------------------
So my PSTN provider replies with ISUP "Unallocated number" and the caller
provider "X" generates the typicall early media message to inform the caller:
"Provider X informs you that the number you are calling doesn't exist"
This is a big inconvenient since me, as telephony provider, am responsible of
generating that early media message. In fact, when I receive a call to a non
registered user I first reply with an own 183 Session Progress:
"My provider informs you that the number you are calling is not available
now"
After the 183 I send a 404, so the gateway mappes it to "Unallocated number"
and the caller provider adds its own early media message... the caller
listens to two early messages (mine first and him provider's one later)!!
But the callee DOES exist, the only it occurs is that the SIP user is not
registered, just it. The number DOES exist in my system, so I think it would
be better if my provider gateway would map the 404 to any of those ISUP
causes:
-------------------------------------------------------------------------------------------------
3 No route to destination.
The dialed number is in the routing plan, but there is no physical route
to the destination.
1. The PRI D-Channel may be down at one end or the other.
2. The span or WAN is not connected correctly.
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
20 Subscriber Absent.
Used when a mobile station has logged off, radio contact is not
obtained with a mobile station or if a personal telecommunications
user is temporarily not addressable at any user-network interface.
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
27 Destination Out-of-Order.
This is a working number, but the span to the destination is not
active or there is a problem sending messages to this destination.
-------------------------------------------------------------------------------------------------
Unfortunatelly any of the above ISUP causes (decimal 3, 20, 27) exist as a SIP
code mapping in RFC 3398.
As a very dirty solution I'm using now this RFC3398 mapping:
502 Bad gateway ---> 38 Network out of order
-------------------------------------------------------------------------------------------------
38 Network Out-of-Order.
Indicates that the network is not functioning correctly and that the
condition is likely to last a relatively long period of time.
-------------------------------------------------------------------------------------------------
So if the caller is a movile he will be first listen to my provider early
message, and later he will see "network failure" (or similar) into its
screen. It's dirty but it's the best option I've found.
Any suggestion to handle it more correctly? In short, I can't reply with "404"
since the caller will listen two early media messages and he will think that
the number doesn't exist.
Thanks for any help.
in my internal ENUM.
If the E164 number is mapped to a local SIP user (client of mine) I look for
it in the location server.
If the user is registered I forwad the INVITE and so... all OK.
The problem is in the case the SIP user is not registered (by any reason).
Then my proxy replies "404 Not Found" to the provider SIP_PSTN gateway.
RFC 3398 specifies that the ISUP mapped code for SIP "404" is:
-------------------------------------------------------------------------------------------------
1 Unallocated number
This number is not in the routing table or it has no path across the ISDN
cloud (network).
1. Check routing table to see it the number is available.
2. Check to make sure the correct digits were dialed and it is a
valid number.
-------------------------------------------------------------------------------------------------
So my PSTN provider replies with ISUP "Unallocated number" and the caller
provider "X" generates the typicall early media message to inform the caller:
"Provider X informs you that the number you are calling doesn't exist"
This is a big inconvenient since me, as telephony provider, am responsible of
generating that early media message. In fact, when I receive a call to a non
registered user I first reply with an own 183 Session Progress:
"My provider informs you that the number you are calling is not available
now"
After the 183 I send a 404, so the gateway mappes it to "Unallocated number"
and the caller provider adds its own early media message... the caller
listens to two early messages (mine first and him provider's one later)!!
But the callee DOES exist, the only it occurs is that the SIP user is not
registered, just it. The number DOES exist in my system, so I think it would
be better if my provider gateway would map the 404 to any of those ISUP
causes:
-------------------------------------------------------------------------------------------------
3 No route to destination.
The dialed number is in the routing plan, but there is no physical route
to the destination.
1. The PRI D-Channel may be down at one end or the other.
2. The span or WAN is not connected correctly.
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
20 Subscriber Absent.
Used when a mobile station has logged off, radio contact is not
obtained with a mobile station or if a personal telecommunications
user is temporarily not addressable at any user-network interface.
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
27 Destination Out-of-Order.
This is a working number, but the span to the destination is not
active or there is a problem sending messages to this destination.
-------------------------------------------------------------------------------------------------
Unfortunatelly any of the above ISUP causes (decimal 3, 20, 27) exist as a SIP
code mapping in RFC 3398.
As a very dirty solution I'm using now this RFC3398 mapping:
502 Bad gateway ---> 38 Network out of order
-------------------------------------------------------------------------------------------------
38 Network Out-of-Order.
Indicates that the network is not functioning correctly and that the
condition is likely to last a relatively long period of time.
-------------------------------------------------------------------------------------------------
So if the caller is a movile he will be first listen to my provider early
message, and later he will see "network failure" (or similar) into its
screen. It's dirty but it's the best option I've found.
Any suggestion to handle it more correctly? In short, I can't reply with "404"
since the caller will listen two early media messages and he will think that
the number doesn't exist.
Thanks for any help.
--
I?aki Baz Castillo
ibc at in.ilimit.es
I?aki Baz Castillo
ibc at in.ilimit.es