When you try to register IMS user via P-CSCF in visited network (roaming) in Kamailio IMS platform you will probably get following error:
403 Forbidden - HSS Roaming not allowed
This means that user is not allowed to register to appropriate IMS domain. So you will need to allow user in HSS databaze to use this visited network.
Our domain is ims3.sip.uniza.sk and we want to register user sip:student@ims3.sip.uniza.sk via P-CSCF in domain ims1.sip.uniza.sk (pcscf.ims1.sip.uniza.sk):
Adding new visited network
At first we need to add Visited network.
Navigate in HSS Choose Network configuration from upper menu,
from left menu under Visited Networks choose Create and then insert Indentity (domain name of visited network), then click on Save.
To verify successful creation you can Search (then click on Search) in Visited Networks:
Assign visited network to user
Then you will need to assign created visited network to user (his public user identity sip:student@ims3.sip.uniza.sk)
Choose User identities from upper menu,
navigate to the left menu and under Public User Identity choose Search and select appropriate user.
Add visited network (ims1.sip.uniza.sk in our case). Without this user is not allowed to register to IMS domain ims1.sip.uniza.sk.
After adding it appears under List of Visited Networks:
After these steps we are able to register with user sip:student@ims3.sip.uniza.sk in ims1.sip.uniza.sk domain.
Testing
We tested registration of sip:student@ims3.sip.uniza.sk on Monster IMS client ver. 0.9.25.
We set the PCSCF address for pcscf.ims1.sip.uniza.sk as on the following picture:
Here is captured registration flow (158.193.139.40 is IP address of pcscf.ims1.sip.uniza.sk):
UDP 172.16.1.99:5060 --> 158.193.139.40:5060 REGISTER sip:ims3.sip.uniza.sk SIP/2.0 Call-ID: d0e1e82b6102d00f0f1e21178aa43d26@172.16.1.99 CSeq: 1 REGISTER From: "student" <sip:student@ims3.sip.uniza.sk>;tag=1000 To: "student" <sip:student@ims3.sip.uniza.sk> Via: SIP/2.0/UDP 172.16.1.99:5060;branch=z9hG4bK787ce1057018bd12f33c3aa672de8eac34 Max-Forwards: 20 Expires: 3600 Authorization: Digest username="student@ims3.sip.uniza.sk",realm="ims3.sip.uniza.sk",nonce="",response="",uri="sip:ims3.sip.uniza.sk" Contact: "student" <sip:student@172.16.1.99:5060>;+sip.instance=76a5671b-9b2d-4f1a-8f87-a24ca4d0f0ae User-Agent: monster Version: 0.9.25 Content-Length: 0
UDP 158.193.139.40:5060 --> 172.16.1.99:5060 SIP/2.0 401 Unauthorized - Challenging the UE Call-ID: d0e1e82b6102d00f0f1e21178aa43d26@172.16.1.99 CSeq: 1 REGISTER From: "student" <sip:student@ims3.sip.uniza.sk>;tag=1000 To: "student" <sip:student@ims3.sip.uniza.sk>;tag=68988887aea29c51493f22b8b0542a94-eddd Via: SIP/2.0/UDP 172.16.1.99:5060;rport=2423;received=158.193.139.247;branch=z9hG4bK787ce1057018bd12f33c3aa672de8eac34 Path: <sip:term@pcscf.ims1.sip.uniza.sk:5060;lr> Service-Route: <sip:orig@scscf2.ims3.sip.uniza.sk:5060;lr> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, PUBLISH, MESSAGE, INFO Server: Serving-CSCF Content-Length: 0 WWW-Authenticate: Digest realm="ims3.sip.uniza.sk", nonce="be5cc05c338e1673f621c3785e3ca810", algorithm=MD5, qop="auth,auth-int"
UDP 172.16.1.99:5060 --> 158.193.139.40:5060 REGISTER sip:ims3.sip.uniza.sk SIP/2.0 Call-ID: d0e1e82b6102d00f0f1e21178aa43d26@172.16.1.99 CSeq: 2 REGISTER From: "student" <sip:student@ims3.sip.uniza.sk>;tag=1001 To: "student" <sip:student@ims3.sip.uniza.sk> Via: SIP/2.0/UDP 172.16.1.99:5060;branch=z9hG4bKdd0043eb7e69a289c57c2fed244d7de634 Max-Forwards: 20 Authorization: Digest username="student@ims3.sip.uniza.sk",realm="ims3.sip.uniza.sk",nonce="be5cc05c338e1673f621c3785e3ca810",uri="sip:ims3.sip.uniza.sk",algoritm=MD5,response="a0784400bcbd4fe5f3abd5e73b174dc0",qop=auth-int,nc=00000001,cnonce="100561019853535198" Expires: 3600 Contact: "student" <sip:student@172.16.1.99:5060>;+sip.instance=76a5671b-9b2d-4f1a-8f87-a24ca4d0f0ae User-Agent: monster Version: 0.9.25 Content-Length: 0
UDP 158.193.139.40:5060 --> 172.16.1.99:5060 SIP/2.0 200 OK - SAR succesful and registrar saved Call-ID: d0e1e82b6102d00f0f1e21178aa43d26@172.16.1.99 CSeq: 2 REGISTER From: "student" <sip:student@ims3.sip.uniza.sk>;tag=1001 To: "student" <sip:student@ims3.sip.uniza.sk>;tag=68988887aea29c51493f22b8b0542a94-5359 Via: SIP/2.0/UDP 172.16.1.99:5060;rport=2423;received=158.193.139.247;branch=z9hG4bKdd0043eb7e69a289c57c2fed244d7de634 P-Associated-URI: <sip:student@ims3.sip.uniza.sk> Contact: <sip:student@172.16.1.99:5060>;expires=3600;pub-gruu="sip:student@ims3.sip.uniza.sk;gr=76a5671b-9b2d-4f1a-8f87-a24ca4d0f0ae" Path: <sip:term@pcscf.ims1.sip.uniza.sk:5060;lr> Service-Route: <sip:orig@scscf2.ims3.sip.uniza.sk:5060;lr> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, PUBLISH, MESSAGE, INFO Server: Serving-CSCF Content-Length: 0
You can see terminating P-CSCF address in Path header and serving S-CSCF in Service-Route header.
Both of them are in different domain, that means user student is in roaming.