blob: 24ac4bcaab9db7419f692ab705cfc5b8f140b6e3 [file] [log] [blame]
Harald Welteb3414b22017-11-23 18:22:10 +01001module BSC_MS_Simulation {
2
3import from IPL4asp_Types all;
4
5import from IPA_Emulation all;
6
7import from SCCP_Types all;
8import from SCCPasp_Types all;
9import from SCCP_Emulation all;
10
11import from BSSMAP_Emulation all;
12
13import from BSC_MS_ConnectionHandler all;
14
15type component BSC_CT {
16 /* component references */
17 var IPA_Emulation_CT vc_IPA;
18 var SCCP_CT vc_SCCP;
19 var BSSMAP_Emulation_CT vc_BSSMAP;
20 /* test port to SCCP emulation */
21 port SCCPasp_PT SCCP;
22
23 var SCCP_PAR_Address g_sccp_addr_own;
24 var SCCP_PAR_Address g_sccp_addr_remote;
25}
26
27function main(charstring remote_ip, PortNumber remote_port,
28 charstring local_ip, PortNumber local_port,
29 MSC_SCCP_MTP3_parameters sccp_pars,
30 SCCP_PAR_Address sccp_addr_own,
31 SCCP_PAR_Address sccp_addr_remote) runs on BSC_CT
32{
33 g_sccp_addr_own := sccp_addr_own;
34 g_sccp_addr_remote := sccp_addr_remote;
35
36 /* create components */
37 vc_IPA := IPA_Emulation_CT.create;
38 vc_SCCP := SCCP_CT.create;
39 vc_BSSMAP := BSSMAP_Emulation_CT.create;
40
41 map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
42
43 /* connect MTP3 service provider (IPA) to lower side of SCCP */
44 connect(vc_IPA:MTP3_SP_PORT, vc_SCCP:MTP3_SCCP_PORT);
45
Harald Weltec82eef42017-11-24 20:40:12 +010046 /* connect BSSMAP dispatcher to upper side of SCCP */
Harald Welteb3414b22017-11-23 18:22:10 +010047 connect(vc_BSSMAP:SCCP, vc_SCCP:SCCP_SP_PORT);
48
Harald Weltec82eef42017-11-24 20:40:12 +010049 /* connect BSSMAP dispatcher to IPA_Emulation MGCP */
50 connect(vc_BSSMAP:MGCP, vc_IPA:IPA_MGCP_PORT);
51
Harald Welteb3414b22017-11-23 18:22:10 +010052 vc_IPA.start(IPA_Emulation.main_client(remote_ip, remote_port, local_ip, local_port));
53 vc_SCCP.start(SCCPStart(sccp_pars));
54 vc_BSSMAP.start(BSSMAP_Emulation.main(BSC_MS_BssmapOps));
55
56 while (true) {
57 timer T := 5.0;
58 T.start;
59 T.timeout;
60 f_start_BSC_MS();
61 //vc_IPA.MTP3_SP_PORT.send(t_ASP_MTP3_TRANSFERreq_sccp('83'O, 1, 2, 0, '012345'O));
62 }
63
64 vc_IPA.done;
65 vc_BSSMAP.done;
66 vc_SCCP.done
67}
68
69function f_start_BSC_MS() runs on BSC_CT {
70 var BSC_MS_ConnHdlr vc_conn;
71
72 /* start new component */
73 vc_conn := BSC_MS_ConnHdlr.create;
74 /* connect client BSSAP port to BSSAP dispatcher */
75 connect(vc_conn:BSSAP, vc_BSSMAP:CLIENT);
76 /* start component */
77 vc_conn.start(BSC_MS_ConnectionHandler.main(g_sccp_addr_own, g_sccp_addr_remote));
78}
79
80}