asterisk: Implement AMI Action DedicatedBearerStatus
Related: SYS#6879
Change-Id: I49c216f8874fe63480414096d9c03a1af00a0fc2
diff --git a/asterisk/IMS_ConnectionHandler.ttcn b/asterisk/IMS_ConnectionHandler.ttcn
index dd3223c..7a9f11f 100644
--- a/asterisk/IMS_ConnectionHandler.ttcn
+++ b/asterisk/IMS_ConnectionHandler.ttcn
@@ -47,6 +47,8 @@
const charstring IMS_COORD_CMD_START := "IMS_COORD_CMD_START";
const charstring IMS_COORD_CMD_CALL_ESTABLISHED := "IMS_COORD_CMD_CALL_ESTABLISHED";
const charstring IMS_COORD_CMD_HANGUP := "IMS_COORD_CMD_HANGUP";
+const charstring IMS_COORD_CMD_CALL_TRYING := "IMS_COORD_CMD_CALL_TRYING";
+const charstring IMS_COORD_CMD_CALL_SESSION_PROGRESS := "IMS_COORD_CMD_CALL_SESSION_PROGRESS";
type component IMS_ConnHdlr extends SIP_ConnHdlr {
var charstring g_name;
@@ -113,15 +115,20 @@
}
type record of IMS_ConnHdlrPars IMS_ConnHdlrParsList;
+type record IMS_CallParsMO {
+ /* Whether to COORD.send(IMS_COORD_CMD_CALL_TRYING) when receiving an INVITE from UE. */
+ boolean tx_coord_cmd_invite_trying
+}
+template (value) IMS_CallParsMO t_IMS_CallParsMO := {
+ tx_coord_cmd_invite_trying := false
+}
+
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
+ /* Whether to COORD.send(IMS_COORD_CMD_CALL_SESSION_PROGRESS) when receiving an 183 Session Progress from UE. */
+ boolean tx_coord_cmd_session_progress
}
template (value) IMS_CallParsMT t_IMS_CallParsMT := {
- wait_coord_cmd_pickup := false,
- exp_cancel := false
+ tx_coord_cmd_session_progress := false
}
type record IMS_CallPars {
@@ -141,6 +148,7 @@
boolean support_precondition_ext,
boolean require_precondition_ext,
SDP_Message peer_sdp optional,
+ IMS_CallParsMO mo,
IMS_CallParsMT mt
}
@@ -160,6 +168,7 @@
support_precondition_ext := true,
require_precondition_ext := false,
peer_sdp := omit,
+ mo := t_IMS_CallParsMO,
mt := t_IMS_CallParsMT
}
@@ -1043,6 +1052,11 @@
body := omit);
SIP.send(req);
+ if (g_pars.subscr.cp.mt.tx_coord_cmd_session_progress) {
+ /* Signal used to inform that Dedicated bearer can be established: */
+ COORD.send(IMS_COORD_CMD_CALL_SESSION_PROGRESS);
+ }
+
/* Rx 200 OK (PRACK) */
exp := tr_SIP_Response(g_pars.subscr.cp.sip_call_id,
from_addr_exp,
@@ -1213,6 +1227,11 @@
userAgent := omit);
SIP.send(tx_resp);
+ if (g_pars.subscr.cp.mo.tx_coord_cmd_invite_trying) {
+ /* Signal used to inform that Dedicated bearer can be established: */
+ COORD.send(IMS_COORD_CMD_CALL_TRYING);
+ }
+
tx_sdp := f_gen_sdp();
/* Use precondition ? */