Hi,
There are two funny things, which I do not understand:
1. The first (orig) S-CSCF should already replace the TEL URI by a SIP URI and do an
ENUM query:
Lines 1140 – 1158 of Kamailio_scscf.cfg:
route[PSTN_handling]
{
# First, we translate "tel:"-URI's to SIP-URI's:
# $ru: tel:+(34)-999-888-777
# $fu: sip:test@foo.com
# becomes $ru: sip:+34999888777@foo.com;user=phone
if (tel2sip("$ru", "$fd", "$ru") < 0)
<------THIS SHOULD CONVERT TEL URI to SIP URI a)
xlog("L_WARN","Failed to convert $ru to a sip:-URI - M=$rm
R=$ru F=$fu T=$tu IP=$si:$sp ID=$ci\n\n");
if ($rU =~ "\+[0-9]+") {
# Now let's check, if the number can be found in ENUM:
if(!enum_query()) {
# ENUM failed, send it to the PSTN-Gateway:
route(PSTN);
break;
}
}
}
1. Do you have .pcap’s from the traffic between first S-CSCF and I-CSCF? What is the
Request URI?
You can take detailed logs (#define WITH_DEBUG in scscf.cfg) and analyse them -> if
necessary, we can help with analysis
1. 2. If the I-CSCF actually receives a TEL URI (what we do not know yet), then “why
the heck do not we call the enum_query()”? Why do we hit the “604 Does not exist
anywhere”?
b) Let’s keep these questions, until we know, if the S-CSCF has actually sent a TEL URI to
the I-CSCF in the Request Line of the INVITE.
Lines 537 – 576 of kamailio_icscf.cfg:
route[lir_term_user_unknown]
{
if (uri =~ "tel:.*") {
# Let's check, if the number can be found in ENUM:
if(!enum_query()) {
# ENUM failed, send it to the PSTN-Gateway:
route(PSTN);
break;
}
# ENUM resolved to another domain
if ($rd != NETWORKNAME) {
t_on_reply("initial_request_reply");
t_on_failure("initial_request_failure");
if (!t_relay()) {
t_reply("500","Error forwarding to external
domain");
exit;
};
exit;
} else {
t_reply("604","Does not exist anywhere - HSS User
Unknown");
exit;
};
} else {
# we received a request for our domain (non-tel), but HSS said "User
Unknown"
if ($rd != NETWORKNAME) {
t_reply("604","Does not exist anywhere - HSS User
Unknown");
exit;
} else {
# try to forward non-tel request to other domain
t_on_reply("initial_request_reply");
t_on_failure("initial_request_failure");
if (!t_relay()) {
t_reply("500","Error forwarding to external
domain");
exit;
};
exit;
};
};
}
Hope it helps
Christoph
-----Ursprüngliche Nachricht-----
Von: sr-users <sr-users-bounces(a)lists.kamailio.org> Im Auftrag von BALL SUN
Gesendet: Donnerstag, 25. Juni 2020 04:29
An: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org
Betreff: Re: [SR-Users] Kamailio IMS with ENUM
Hello
I may not describe the problem clearly. When a UE call a number to the Kamailio IMS core,
says, the number is 12345678, the R-URI in the SIP INVITE is
"sip:12345678;phone-context=ims.mnc001.mcc001.3gppnetwork.org@ims.mnc001.mcc001.3gppnetwork.org;user=phone",
Kamailio P-CSCF pass to INVITE to S-CSCF, and then S-CSCF pass to I-CSCF, I-SCSF trigger
LIR to HSS with Public-Identity = tel:12345678, This IMPU did not provision in HSS, so HSS
response with "DIAMATER_ERROR_USER_UNKNOWN".
On receiving this LIA, I-CSCF return to S-CSCF with "604 Does not exist anywhere -
HSS User Unknown", and then forward to P-CSCF and the UE.
My question is why I-CSCF did not trigger a DNS/ENUM query after receiving LIA?
attached is the Kamailio configuration that we are using, please advise.
- RBK
On Wed, Jun 24, 2020 at 11:52 PM Valentin Christoph
<Christoph.Valentin@kontron.com<mailto:Christoph.Valentin@kontron.com>>
wrote:
I don't know your DNS server nor your addressing
plan. Probably to
modify / add some zone files
You must be sure to forward the ranges of telephone
numbers that you want to forward to the other domain.
Actually, it DID the request to the DNS/ENUM, but the
result was "keep the domain as it is" or "replace it by the own
domain"
If the DNS/ENUM query did NOT succeed, then you would
run into route(PSTN) and the request would be forwarded to "good old CS domain"
to find a destination.
-----Ursprüngliche Nachricht-----
Von: sr-users
<sr-users-bounces@lists.kamailio.org<mailto:sr-users-bounces@lists.kamailio.org>>
Im Auftrag von
BALL SUN
Gesendet: Mittwoch, 24. Juni 2020 16:49
> An: Kamailio (SER) - Users Mailing List
<sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org>
Betreff: Re: [SR-Users] Kamailio IMS with ENUM
yes. when the HSS profile is not found, it did not
route to DNS/ENUM to check, which portion of configuration should I check?
On Wed, Jun 24, 2020 at 5:31 PM Valentin Christoph
<Christoph.Valentin@kontron.com<mailto:Christoph.Valentin@kontron.com>>
wrote:
>
> This means the HSS had answered the user is not
known in this domain (lir_term_user_unknown), but then the DNS server insists this
telephone number should be handled by our domain ($rd == NETWORKNAME).
>
> Just enter the user to the HSS database - if it
shall be handled by
> this domain -
>
> Or configure DNS, so that this telephone number
is routed to another domain. - if it shall be handled by a different domain.
>
>
-----Ursprüngliche Nachricht-----
>
Von: sr-users
<sr-users-bounces@lists.kamailio.org<mailto:sr-users-bounces@lists.kamailio.org>>
Im Auftrag von
>
BALL SUN
> Gesendet: Dienstag, 23. Juni 2020 16:40
> An: Kamailio (SER) - Users Mailing List
> > <sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org>
>
Betreff: Re: [SR-Users] Kamailio IMS with ENUM
>
> Thanks. I actually keep having
"604","Does not exist anywhere - HSS User Unknown", so by right,
I-CSCF should go to check the ENUM, but it didn't so what configuration I should
enable? is it dispatcher list and needed to enabkle PEERING? below is the routine that
related to "604","Does not exist anywhere - HSS User Unknown" in
icscf.
>
> - RBK
>
> route[lir_term_user_unknown]
> {
> if (uri =~ "tel:.*") {
> # Let's check, if the number can be found in
ENUM:
> if(!enum_query()) {
> # ENUM failed, send it to the PSTN-Gateway:
> route(PSTN);
> break;
> }
> # ENUM resolved to another domain
> if ($rd != NETWORKNAME) {
> t_on_reply("initial_request_reply");
>
t_on_failure("initial_request_failure");
> if (!t_relay()) {
> t_reply("500","Error forwarding to
external domain"); exit; }; exit; } else { t_reply("604","Does not
exist anywhere - HSS User Unknown"); exit; }; } else { # we received a request for
our domain (non-tel), but HSS said "User Unknown"
> if ($rd != NETWORKNAME) {
> t_reply("604","Does not exist
anywhere - HSS User Unknown"); exit; }
> else { # try to forward non-tel request to other
domain
> t_on_reply("Initial_Request_reply");
>
t_on_failure("Initial_Request_failure");
> if (!t_relay()) {
> t_reply("500","Error forwarding to
external domain"); exit; }; exit;
> }; }; } }
>
> On Tue, Jun 23, 2020 at 8:40 PM Valentin
Christoph
<Christoph.Valentin@kontron.com<mailto:Christoph.Valentin@kontron.com>>
wrote:
> >
> > The example I-CSCF and S-CSCF
configurations at misc/examples/ims contain usage of the enum module, afaik.
> > This could be easily adapted or taken as an
example.
> >
> >
-----Ursprüngliche
Nachricht-----
> >
Von: sr-users
<sr-users-bounces@lists.kamailio.org<mailto:sr-users-bounces@lists.kamailio.org>>
Im Auftrag von
> >
BALL SUN
> > Gesendet: Dienstag, 23. Juni 2020 08:53
>
> An: Kamailio (SER) - Users Mailing List
> > >
<sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org>
> > Betreff: [SR-Users] Kamailio IMS with ENUM
> >
> > Hi
> >
> > Is there any information that can help to
setup ENUM query in
> > Kamailio IMS? what we wanted to achieve is
to when A in domain A
> > (the local
> > domain) makes an INVITE to B, it will check
the domain of B from ENUM backend.
> >
> > if it is not on the local domain, it will
route to remote IMS core.
> >
> > Thanks
> >
>
> - RBK
> >
> >
_______________________________________________
> > > Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org
> > li
> > st
> >
s.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=
> > 02
> > %7
> >
C01%7Cchristoph.valentin%40kontron.com%7Cc6c88e565e844b41467208d81
> > 78
> > 36
> >
ada%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C63728520048206383
> > 6&
> > am
> >
p;sdata=YphpOloEosgWB9Gyt5xXH1COcafnRqMBDrLzhnRsM1o%3D&reserve
> > d=
> > 0
_______________________________________________
> > > Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org
> > li
> > st
> >
s.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=
> > 02
> > %7
> >
C01%7Cchristoph.valentin%40kontron.com%7Cc6c88e565e844b41467208d81
> > 78
> > 36
> >
ada%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C63728520048206383
> > 6&
> > am
> >
p;sdata=YphpOloEosgWB9Gyt5xXH1COcafnRqMBDrLzhnRsM1o%3D&reserve
> > d=
> > 0
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> > sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org
> st
>
s.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=02
> %7
>
C01%7Cchristoph.valentin%40kontron.com%7C4ca61d548b9b479aacc408d8184
> dd
>
44b%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C637286069835679064&
> am
>
p;sdata=ORTi4lWOImK5BqSxadSCxcviUwotzg9SvmoWzLVZnZA%3D&reserved=
> 0
_______________________________________________
> Kamailio (SER) - Users Mailing List
> > sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org
> st
>
s.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=02
> %7
>
C01%7Cchristoph.valentin%40kontron.com%7C4ca61d548b9b479aacc408d8184
> dd
>
44b%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C637286069835679064&
> am
>
p;sdata=ORTi4lWOImK5BqSxadSCxcviUwotzg9SvmoWzLVZnZA%3D&reserved=
> 0
_______________________________________________
Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org
s.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=02%7
C01%7Cchristoph.valentin%40kontron.com%7C1aaa3d1351304bbb9d2408d818afa
2fd%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C637286489926646195&am
p;sdata=odANkkCXC5Mdt7R9uwSDv8u%2BK7jelWG%2B4pgQSBS0v0o%3D&reserve
d=0 _______________________________________________
Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org
s.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=02%7
C01%7Cchristoph.valentin%40kontron.com%7C1aaa3d1351304bbb9d2408d818afa
2fd%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C637286489926646195&am
p;sdata=odANkkCXC5Mdt7R9uwSDv8u%2BK7jelWG%2B4pgQSBS0v0o%3D&reserve
d=0