Using the SIP Center SIP Application Server to Test Proxy Functionality

Anyone wishing to communicate with the SIP Center Server will have two ways of doing so:
- The first would be to set the sipcenter.com as a "next hop" server, and point this to sip.sipcenter.com. This will result in any requests to sipcenter.com being proxied to the SIP Center server.
- Secondly, you could use DNS SRV lookups. i.e. When a server wishes to communicate with the SIP Center server, it does an SRV lookup, gets the SIP Centers and proxies to that address.
This then allows SIP servers under development to test compatibility when receiving and sending SIP messages such as INVITE or REGISTER which have been proxied up/down stream. This can be achieved by registering a client at the SIP Center Server, which is available to receive calls. Connect a client to the SIP proxy server undergoing tests (which we will call PSTEST). Place a call to the client registered at the SIP Center from the User Agent Client connected to PSTEST - PSTEST will receive the call, identify that the domain exists in its "next hop" list of known servers or does a SRV lookup and route the message upstream. This then allows the basic call set-up up between two User Agents with a route passing through two SIP proxy servers. This call flow is illustrated by diagram 1 and the message flow below it.
Diagram 1

Client 2 > SIP Center SIP Application Server
REGISTER sip:10.20.30.20 SIP/2.0
To: < sip:ua2@sipcenter.com >
From: < sip:ua2@sipcenter.com >
Call-ID: -1189109688-503913370@10.20.30.20
CSeq: 1 REGISTER
Via: SIP/2.0/UDP 10.20.30.20
Contact: < sip:ua2@10.20.30.20 >
Expires: 3600
Content-Length: 0
SIP Center SIP Application Server > Client 2
SIP/2.0 401 Unauthorized
< sip:ua2@sipcenter.com > To: ; tag=C1C3349813C4000000E4DBA5351E
From: < sip:ua2@sipcenter.com >
CSeq: 1 REGISTER
Call-ID: -1189109688-503913370@10.20.30.20
Via: SIP/2.0/UDP 10.20.30.20
WWW-Authenticate: Digest realm="Ubiquity Software Corporation", nonce="e4dba705a63c87d3047...
ed8d7bca05919d352f5baeb", opaque="1234567890abcedef", stale=false, algorithm=MD5, qop="auth, auth-int"
l: 0
Client 2 > SIP Center SIP Application Server
REGISTER sip: 10.20.30.20 SIP/2.0
To: < sip:ua2@sipcenter.com >
From: < sip:ua2@sipcenter.com >
Call-ID: -1189109688-503913370@10.20.30.20
CSeq: 2 REGISTER
Via: SIP/2.0/UDP 10.20.30.20
Contact: < sip:ua2@10.20.30.20 >
Expires: 3600
Content-Length: 0
Authorization: Digest username="test", realm="Ubiquity Software Corporation", nonce="e4dba705a63c87d304...
7ed8d7bca05919d352f5baeb", uri="sip:193.195.52.152", algorithm=MD5, qop=auth-int, cnonce="e4dba728ce583398ac1aa8a667...
130b69fad9a2b2c2", nc=00 000001, opaque="1234567890abcedef", response="083a0befad19154e0169b6 120e3cd0bb"
SIP Center SIP Application Server > Client 2
SIP/2.0 200 OK
To: < sip:ua2@sipcenter.com >;tag=C1C3349813C4000000E4DBA5351E
From: < sip:ua2@sipcenter.com >
CSeq: 2 REGISTER
Call-ID: -1189109688-503913370@10.20.30.20
Via: SIP/2.0/UDP 10.20.30.20
Contact: < sip:ua2@10.20.30.20 >;action=proxy;expires=3599
Expires: Fri, 23 Feb 2001 15:15:08 GMT
l: 0
Client 2 is now registered with the SIP Center Network Server and is ready to take part in the SIP proxy server testing.
Client 1 will now initiate the call. The message flow should continue as follows for a successful call set-up. As with previous example, this document will assume that the call "tear down" and "ACK" transaction will take place directly between clients and will not be represented in the call flow.
Client 1 > PSTEST
INVITE sip:ua2@sipcenter.com SIP/2.0
CSeq: 2 INVITE
To: sip:ua2@sipcenter.com
From: ua1< sip:ua1@10.20.30.10 >
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP 10.20.30.10
Contact: < sip:ua1@10.20.30.10 >
Subject: no subject
Content-Type: application/sdp
Content-Length: 123
v=0
o=- 982931950090 982931950090 IN IP4 10.20.30.10
s=-
c=IN IP4 10.20.30.10
t=0 0
m=audio 5004 RTP/AVP 8 3 0
PSTEST > Client 1
SIP/2.0 100 Trying
To: sip:ua2@sipcenter.com
From: ua1< sip:ua1@10.20.30.10 >
CSeq: 2 INVITE
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP 10.20.30.10
Content-Length: 0
PSTEST > SIP Center SIP Application Server
INVITE sip:ua2@sipcenter.com SIP/2.0
CSeq: 2 INVITE
To: sip:ua2@sipcenter.com
From: ua1< sip:ua1@10.20.30.10 >
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP
10.20.30.30:5060;branch= C1C3349813C4000000E4DB49274Cpotato 0potato0potato0
Via: SIP/2.0/UDP 10.20.30.10
Contact: < sip:ua1@10.20.30.10 >
Subject: no subject
Content-Type: application/sdp
Content-Length: 123
v=0
o=- 982931950090 982931950090 IN IP4 10.20.30.10
s=-
c=IN IP4 10.20.30.10
t=0 0
m=audio 5004 RTP/AVP 8 3 0
SIP Center SIP Application Server > PSTEST
SIP/2.0 100 Trying
To: sip:ua2@sipcenter.com
From: ua1< sip:ua1@10.20.30.10 >
CSeq: 2 INVITE
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP 10.20.30.10
Content-Length: 0
SIP Center SIP Application Server > Client 2
INVITE sip:ua2@10.20.30.20 SIP/2.0
CSeq: 2 INVITE
To: sip:ua2@sipcenter.com
From: ua1< sip:ua1@10.20.30.10 >
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP
10.20.30.40;branch=C1C3348813C400000 0E4DB4A6468potato0potato 0potato0
Via: SIP/2.0/UDP
10.20.30.30;branch=C1C3349813C400000 0E4DB49274Cpotato0potato 0potato0
Via: SIP/2.0/UDP 10.20.30.10
Contact: < sip:ua1@10.20.30.10 >
Subject: no subject
Content-Type: application/sdp
Content-Length: 123
v=0
o=- 982931950090 982931950090 IN IP4 10.20.30.10
s=-
c=IN IP4 10.20.30.10
t=0 0
m=audio 5004 RTP/AVP 8 3 0
Client 2 > SIP Center SIP Application Server > PSTEST > Client 1
*note that top via would be stripped as each hop is passed through.
SIP/2.0 180 Ringing
To: sip:ua2@sipcenter.com
From: ua1< sip:ua1@10.20.30.10 >
CSeq: 2 INVITE
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP
10.20.30.40;branch=C1C3348813C400000 0E4DB4A6468potato0potato 0potato0
Via: SIP/2.0/UDP
10.20.30.30;branch=C1C3349813C400000 0E4DB49274Cpotato0potato 0potato0
Via: SIP/2.0/UDP 10.20.30.10
Content-Length: 0
Client 2 > SIP Center SIP Application Server > PSTEST > Client 1
SIP/2.0 200 OK
To: sip:ua2@sipcenter.com;tag=117530467
From: ua1< sip:ua1@10.20.30.10 >
CSeq: 2 INVITE
Call-ID: 689074775671095236@10.20.30.10
Via: SIP/2.0/UDP
10.20.30.40;branch=C1C3348813C400000 0E4DB4A6468potato0potato 0potato0
Via: SIP/2.0/UDP
10.20.30.30;branch=C1C3349813C400000 0E4DB49274Cpotato0potato 0potato0
Via: SIP/2.0/UDP 10.20.30.10
Contact: < sip:ua2@10.20.30.20 >
Content-Type: application/sdp
Content-Length: 101
v=0
o=- 0 0 IN IP4 10.20.30.20
s=-
c=IN IP4 10.20.30.20
t=0 0
m=audio 5004 RTP/AVP 8 3 0