blob: a1baeb4e92a910290db2313072182941ef055ea2 [file] [log] [blame]
/* Component implementing a IMS server towards Asterisk's IMS UE
* (C) 2024 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
* Author: Pau Espin Pedrol <pespin@sysmocom.de>
* All rights reserved.
*
* Released under the terms of GNU General Public License, Version 2 or
* (at your option) any later version.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
module IMS_ConnectionHandler {
import from TCCOpenSecurity_Functions all;
import from General_Types all;
import from Osmocom_Types all;
import from Native_Functions all;
import from Misc_Helpers all;
import from SDP_Types all;
import from SDP_Templates all;
import from SIP_Emulation all;
import from SIPmsg_Types all;
import from SIP_Templates all;
type port IMSCoord_PT message
{
inout charstring;
} with { extension "internal" };
const charstring IMS_COORD_CMD_REGISTERED := "COORD_CMD_REGISTERED";
type component IMS_ConnHdlr extends SIP_ConnHdlr {
var charstring g_name;
var IMS_ConnHdlrPars g_pars;
timer g_Tguard;
var PDU_SIP_Request g_rx_sip_req;
var PDU_SIP_Response g_rx_sip_resp;
port IMSCoord_PT COORD;
}
type record of IMS_ConnHdlr IMS_ConnHdlrList;
type record IMS_ConnHdlrPars {
float t_guard,
charstring remote_sip_host,
uint16_t remote_sip_port,
charstring user,
charstring display_name,
charstring password,
SipUrl registrar_sip_req_uri,
SipAddr registrar_sip_record,
CallidString registrar_sip_call_id,
integer registrar_sip_seq_nr,
Via local_via,
SipUrl local_sip_url_ext,
SipAddr local_sip_record,
Contact local_contact,
IMS_CallPars cp optional
}
type record of IMS_ConnHdlrPars IMS_ConnHdlrParsList;
type record IMS_CallParsMT {
/* Whether to wait for COORD.receive(COORD_CMD_PICKUP) before accepting the call. */
boolean wait_coord_cmd_pickup,
/* Whether to expect CANCEL instead of ACK as answer to our OK */
boolean exp_cancel
}
type record IMS_CallPars {
SipAddr calling optional,
SipAddr called optional,
SipAddr from_addr optional,
SipAddr to_addr optional,
CallidString sip_call_id,
integer sip_seq_nr,
charstring sip_body optional,
charstring local_rtp_addr,
uint16_t local_rtp_port,
SDP_Message peer_sdp optional,
IMS_CallParsMT mt
}
}