blob: cfa9403ba3418b57b12926526ad38ea8a46689f4 [file] [log] [blame]
Benny Prijono945aeb22008-12-22 18:54:58 +00001# $Id$
Benny Prijonoe9a82242008-07-07 20:14:41 +00002import inc_sip as sip
3import inc_sdp as sdp
4
5# In this test we simulate broken server, where it wants to
6# change the nonce, but it fails to set stale to true. In this
7# case, we should expect pjsip to retry the authentication until
8# PJSIP_MAX_STALE_COUNT is exceeded as it should have detected
9# that that nonce has changed
10
11
12pjsua = "--null-audio --id=sip:CLIENT --registrar sip:127.0.0.1:$PORT " + \
13 "--realm=python --user=username --password=password " + \
14 "--auto-update-nat=0"
15
16req1 = sip.RecvfromTransaction("Initial request", 401,
17 include=["REGISTER sip"],
18 exclude=["Authorization"],
19 resp_hdr=["WWW-Authenticate: Digest realm=\"python\", nonce=\"1\""]
20 )
21
22req2 = sip.RecvfromTransaction("First retry", 401,
23 include=["REGISTER sip", "Authorization", "nonce=\"1\""],
24 exclude=["Authorization:[\\s\\S]+Authorization:"],
25 resp_hdr=["WWW-Authenticate: Digest realm=\"python\", nonce=\"2\""]
26 )
27
28req3 = sip.RecvfromTransaction("Second retry retry", 401,
29 include=["REGISTER sip", "Authorization", "nonce=\"2\""],
30 exclude=["Authorization:[\\s\\S]+Authorization:"],
31 resp_hdr=["WWW-Authenticate: Digest realm=\"python\", nonce=\"3\""]
32 )
33
34req4 = sip.RecvfromTransaction("Third retry", 200,
35 include=["REGISTER sip", "Authorization", "nonce=\"3\""],
36 exclude=["Authorization:[\\s\\S]+Authorization:"],
37 expect="registration success"
38 )
39
40recvfrom_cfg = sip.RecvfromCfg("Successful auth server changes nonce but with stale=false",
41 pjsua, [req1, req2, req3, req4])