diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-04-08 17:56:58 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-04-10 14:02:11 +0200 |
commit | 7011bf47c5a1346a6600e14cf1b49546f6378757 (patch) | |
tree | 880ad01caaef842cb8b629aa909222b4d05f66ab /sip/SIP_Tests.ttcn | |
parent | e94a64834d5c7eca4af49c920639791c3bb5231c (diff) |
asterisk: Introduce test TC_internal_call_momt
Lots of infrastructure added to allow call establishment and hang up
between 2 users connected to Asterisk.
SIP_Tests is updated to accomodate for necessary changes in
SIP_Templates used by Asterisk_Templates.
Change-Id: Ic5827a3e94b06fbc57f6405bf0f0aa6598c5d1fe
Related: SYS#6782
Diffstat (limited to 'sip/SIP_Tests.ttcn')
-rw-r--r-- | sip/SIP_Tests.ttcn | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/sip/SIP_Tests.ttcn b/sip/SIP_Tests.ttcn index 2164ef01..95f09e85 100644 --- a/sip/SIP_Tests.ttcn +++ b/sip/SIP_Tests.ttcn @@ -267,7 +267,9 @@ function f_establish_mt(inout CallPars cp) runs on ConnHdlr { /* OSC <- SIP: A party sends SIP invite for a MT-call into OSC */ SIP.send(ts_SIP_INVITE(cp.comp.sip_call_id, cp.comp.sip_url_ext, cp.comp.sip_url_gsm, - cp.comp.sip_seq_nr, cp.comp.sip_body)); + ts_Via_from(cp.comp.sip_url_ext.addr.nameAddr.addrSpec.hostPort), + ts_Contact_SipAddr(cp.comp.sip_url_ext), + cp.comp.sip_seq_nr, cp.comp.sip_body)); if (cp.mncc_with_sdp) { /* We just sent SDP via SIP, now expect the same SDP in MNCC to the MSC */ expect_sdp_to_msc := cp.comp.sip_body; @@ -275,7 +277,7 @@ function f_establish_mt(inout CallPars cp) runs on ConnHdlr { /* OSC -> SIP */ as_SIP_expect_resp(tr_SIP_Response(cp.comp.sip_call_id, sip_addr_ext, sip_addr_gsm, - tr_Via_from(tr_HostPort(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), *, "INVITE", 100, ?, "Trying", *)); @@ -288,7 +290,9 @@ function f_establish_mt(inout CallPars cp) runs on ConnHdlr { } [] SIP.receive { setverdict(fail, "Received unexpected SIP response"); - SIP.send(ts_SIP_ACK(cp.comp.sip_call_id, cp.comp.sip_url_ext, cp.comp.sip_url_gsm, + SIP.send(ts_SIP_ACK(cp.comp.sip_call_id, + cp.comp.sip_url_ext, cp.comp.sip_url_gsm, + ts_Via_from(cp.comp.sip_url_ext.addr.nameAddr.addrSpec.hostPort), cp.comp.sip_seq_nr, omit)); mtc.stop; } @@ -331,7 +335,7 @@ function f_establish_mt(inout CallPars cp) runs on ConnHdlr { /* 180 Ringing should not contain any SDP. */ as_SIP_expect_resp(tr_SIP_Response(cp.comp.sip_call_id, sip_addr_ext, sip_addr_gsm, - tr_Via_from(tr_HostPort(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), *, "INVITE", 180, ?, "Ringing", omit)); @@ -347,14 +351,16 @@ function f_establish_mt(inout CallPars cp) runs on ConnHdlr { /* OSC -> SIP: OSC confirms call establishment to SIP side */ as_SIP_expect_resp(tr_SIP_Response(cp.comp.sip_call_id, sip_addr_ext, sip_addr_gsm, - tr_Via_from(tr_HostPort(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), contact := ?, method := "INVITE", status_code := 200, seq_nr := ?, reason := "OK", body := expect_sdp_to_sip)); /* OSC <- SIP: SIP world acknowledges "200 OK" */ - SIP.send(ts_SIP_ACK(cp.comp.sip_call_id, cp.comp.sip_url_ext, cp.comp.sip_url_gsm, + SIP.send(ts_SIP_ACK(cp.comp.sip_call_id, + cp.comp.sip_url_ext, cp.comp.sip_url_gsm, + ts_Via_from(cp.comp.sip_url_ext.addr.nameAddr.addrSpec.hostPort), cp.comp.sip_seq_nr, omit)); /* MSC <- OSC: OSC sends SETUP COMPL to MNCC (which triggers CC CONNECT ACK */ MNCC.receive(tr_MNCC_SETUP_COMPL_req(cp.mncc_call_id)) -> value mncc { @@ -430,7 +436,10 @@ function f_establish_mo(inout CallPars cp) runs on ConnHdlr { * "a=sendrecv;" */ expect_sdp_to_sip := pattern cn_sdp & "*"; } - sip_req := f_SIP_expect_req(tr_SIP_INVITE(?, sip_addr_gsm, sip_addr_ext, ?, expect_sdp_to_sip)); + sip_req := f_SIP_expect_req(tr_SIP_INVITE(sip_addr_ext.addr.nameAddr.addrSpec, ?, + sip_addr_gsm, sip_addr_ext, + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_gsm.addr.nameAddr.addrSpec.hostPort)), + ?, expect_sdp_to_sip)); cp.comp.sip_url_gsm.params := sip_req.msgHeader.fromField.fromParams; cp.comp.sip_call_id := sip_req.msgHeader.callId.callid; seq_nr := sip_req.msgHeader.cSeq.seqNumber; @@ -474,7 +483,12 @@ function f_establish_mo(inout CallPars cp) runs on ConnHdlr { /* MSC -> OSC: CC CONNECT ACK was received from MS */ MNCC.send(ts_MNCC_SETUP_COMPL_ind(cp.mncc_call_id)); /* OSC -> SIP: Acknowledge the call */ - SIP.receive(tr_SIP_ACK(cp.comp.sip_call_id, sip_addr_gsm, sip_addr_ext, ?, omit)); + SIP.receive(tr_SIP_ACK(sip_addr_ext.addr.nameAddr.addrSpec, + cp.comp.sip_call_id, + sip_addr_gsm, + sip_addr_ext, + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_gsm.addr.nameAddr.addrSpec.hostPort)), + ?, omit)); } /* Release call from the mobile side */ @@ -487,7 +501,10 @@ function f_release_mobile(inout CallPars cp) runs on ConnHdlr { MNCC.send(ts_MNCC_DISC_ind(cp.mncc_call_id, ts_MNCC_cause(0))); /* OSC -> SIP: Expect BYE from OSC to SIP side */ - sip_req := f_SIP_expect_req(tr_SIP_BYE(cp.comp.sip_call_id, sip_addr_gsm, sip_addr_ext, ?, *)); + sip_req := f_SIP_expect_req(tr_SIP_BYE(sip_addr_ext.addr.nameAddr.addrSpec, + cp.comp.sip_call_id, sip_addr_gsm, sip_addr_ext, + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_gsm.addr.nameAddr.addrSpec.hostPort)), + ?, *)); cp.comp.sip_url_gsm.params := sip_req.msgHeader.fromField.fromParams; /* OSC <- SIP: Acknowledge the BYE */ @@ -506,6 +523,7 @@ function f_release_sip(inout CallPars cp) runs on ConnHdlr { var template SipAddr sip_addr_ext := tr_SipAddr_from_val(cp.comp.sip_url_ext); /* OSC <- SIP: SIP-side sends a BYE to OSC */ SIP.send(ts_SIP_BYE(cp.comp.sip_call_id, cp.comp.sip_url_ext, cp.comp.sip_url_gsm, + ts_Via_from(cp.comp.sip_url_ext.addr.nameAddr.addrSpec.hostPort), cp.comp.sip_seq_nr, omit)); /* MSC <- OSC: Expect OSC to cause MNCC Disconnect Request */ MNCC.receive(tr_MNCC_DISC_req(cp.mncc_call_id)); @@ -513,7 +531,7 @@ function f_release_sip(inout CallPars cp) runs on ConnHdlr { MNCC.send(ts_MNCC_REL_ind(cp.mncc_call_id, ts_MNCC_cause(0))); /* OSC -> SIP: Confirmation to SIP side */ as_SIP_expect_resp(tr_SIP_Response(cp.comp.sip_call_id, sip_addr_ext, sip_addr_gsm, - tr_Via_from(tr_HostPort(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_ext.addr.nameAddr.addrSpec.hostPort)), *, "BYE", 200, cp.comp.sip_seq_nr, "OK", omit)); } @@ -682,7 +700,10 @@ private function f_TC_mo_setup_disc_late_rtp(charstring id) runs on ConnHdlr { timer T := 10.0; T.start; alt { - [] SIP.receive(tr_SIP_INVITE(?, sip_addr_gsm, sip_addr_ext, ?, ?)) { + [] SIP.receive(tr_SIP_INVITE(sip_addr_ext.addr.nameAddr.addrSpec, ?, + sip_addr_gsm, sip_addr_ext, + tr_Via_from(f_tr_HostPort_opt_defport(sip_addr_gsm.addr.nameAddr.addrSpec.hostPort)), + ?, ?)) { setverdict(fail, "Received unexpected INVITE"); } [] T.timeout { |