pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38179?usp=email )
Change subject: asterisk: TC_ims_reregistration: Expect re-register using existing ipsec ctx ......................................................................
asterisk: TC_ims_reregistration: Expect re-register using existing ipsec ctx
Change-Id: I8d100dbba6cddfa5f31437c9cdc8c48f1bbd5701 --- M asterisk/Asterisk_Tests.ttcn M asterisk/IMS_ConnectionHandler.ttcn 2 files changed, 13 insertions(+), 13 deletions(-)
Approvals: jolly: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/asterisk/Asterisk_Tests.ttcn b/asterisk/Asterisk_Tests.ttcn index 20e01e7..dccf9fa 100644 --- a/asterisk/Asterisk_Tests.ttcn +++ b/asterisk/Asterisk_Tests.ttcn @@ -706,11 +706,11 @@ f_create_sip_expect(valueof(ts_SipUrl_from_Addr_Union(g_pars.subscr.registrar_sip_record.addr))); as_IMS_register();
- /* Re-Register: This should optimally be a as_IMS_2nd_register() instead... */ timer Trereg; Trereg.start(int2float(g_pars.subscr.registrar_expires) - 5.0); + g_pars.subscr.registrar_expires := c_def_expires; alt { - [] as_IMS_register(); + [] as_IMS_2nd_register(); [] Trereg.timeout { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str(g_name & ": Timeout waiting for re-registration")); } @@ -730,8 +730,8 @@
f_AMI_IMS_register(pars);
- /* Re-Register: if this was a 2nd REGISTER, then reauth shouldn't be needed... */ - as_AMI_IMS_register_Auth(pars, resync := false); + /* Wait for Asterisk to re-register and IMS_ConnHdlr to handle it... */ + f_sleep(int2float(pars.subscr.registrar_expires));
/* Trigger unregistration: */ f_AMI_IMS_unregister(pars); diff --git a/asterisk/IMS_ConnectionHandler.ttcn b/asterisk/IMS_ConnectionHandler.ttcn index 12f624c..39abc59 100644 --- a/asterisk/IMS_ConnectionHandler.ttcn +++ b/asterisk/IMS_ConnectionHandler.ttcn @@ -102,6 +102,7 @@ integer registrar_expires, SipUrl local_sip_url_ext, SipAddr local_sip_record, + WwwAuthenticate www_auth optional, Contact registered_contact optional, P_Associated_Uri p_associated_uri, IMS_CallPars cp optional @@ -241,6 +242,7 @@ ts_UserInfo(imsi)), local_sip_record := ts_SipAddr(ts_HostPort(domain), ts_UserInfo(imsi)), + www_auth := omit, registered_contact := omit, p_associated_uri := ts_P_Associated_Uri({}), cp := cp @@ -781,7 +783,6 @@ var CallidString sip_call_id; var template (value) From from_addr; var template (value) To to_addr; - var WwwAuthenticate wwwAuthenticate; var Security_server security_server; var template (value) Require require := ts_Require({"sec-agree"}); var template (value) Supported supported := ts_Supported({"sec-agree"}); @@ -835,7 +836,7 @@ }
to_addr.toParams := f_sip_param_set(to_addr.toParams, "tag", f_sip_rand_tag()); - wwwAuthenticate := f_gen_WwwAuthenticate(); + g_pars.subscr.www_auth := f_gen_WwwAuthenticate(); security_server := f_gen_Security_server();
/* Tx 401 Unauthorized */ @@ -843,7 +844,7 @@ from_addr, to_addr, via, - wwwAuthenticate, + g_pars.subscr.www_auth, sip_seq_nr, "REGISTER", p_associated_uri := g_pars.subscr.p_associated_uri, @@ -857,7 +858,7 @@ /* Now we should receive a new non-protected REGISTER * with Authoritzation containing auts in base64: */ var template (present) Authorization authorization := - f_tr_Authorization_AKAv1MD5(wwwAuthenticate, + f_tr_Authorization_AKAv1MD5(g_pars.subscr.www_auth, g_pars.subscr.imsi & "@" & g_pars.realm, f_sip_SipUrl_to_str(g_pars.registrar_sip_req_uri)); exp_req := @@ -906,7 +907,7 @@ from_addr, to_addr, via, - wwwAuthenticate, + g_pars.subscr.www_auth, sip_seq_nr, "REGISTER", p_associated_uri := g_pars.subscr.p_associated_uri, @@ -918,7 +919,7 @@ }
/* Now we should receive a new REGISTER over ipsec: */ - as_IMS_2nd_register(wwwAuthenticate, early_ret := early_ret); + as_IMS_2nd_register(early_ret := early_ret); } [fail_others] as_SIP_fail_resp(sip_expect_str); [fail_others] as_SIP_fail_req(sip_expect_str); @@ -926,12 +927,11 @@ }
/* Peer is issuing 2nd register, accept it: */ -altstep as_IMS_2nd_register(WwwAuthenticate wwwAuthenticate, - IMS_register_early_return early_ret := IMS_REG_EARLY_RET_BEFORE_None, +altstep as_IMS_2nd_register(IMS_register_early_return early_ret := IMS_REG_EARLY_RET_BEFORE_None, boolean fail_others := true) runs on IMS_ConnHdlr { var template (present) Authorization authorization := - f_tr_Authorization_AKAv1MD5(wwwAuthenticate, + f_tr_Authorization_AKAv1MD5(g_pars.subscr.www_auth, g_pars.subscr.imsi & "@" & g_pars.realm, f_sip_SipUrl_to_str(g_pars.registrar_sip_req_uri)); var template (present) PDU_SIP_Request exp_req :=