msc_vlr_test_call: validate_sdp: validate PT nr too

Change-Id: Ia4c5dca62142325c504b703bf0a294c11bb60209
This commit is contained in:
Neels Hofmeyr 2024-01-29 05:26:19 +01:00
parent b26715c60d
commit efd374a03e
2 changed files with 215 additions and 193 deletions

View File

@ -806,6 +806,7 @@ struct codec_test {
/* MO acks the MNCC_RTP_CREATE with these codecs (if any). */
const char *mo_tx_sdp_mncc_rtp_create[16];
bool mo_tx__ignore_pt_nrs;
/* mt_rx_sdp_mncc_setup_req == mo_tx_sdp_mncc_rtp_create */
#define mt_rx_sdp_mncc_setup_req mo_tx_sdp_mncc_rtp_create
@ -821,9 +822,10 @@ struct codec_test {
const char *mt_rx_assigned_codec;
const char *mt_rx_sdp_mncc_rtp_create[16];
const char *mt_tx_sdp_mncc_rtp_create[16];
const char *mt_tx_sdp_mncc_rtp_create[16];
const char *mt_tx_sdp_mncc_alert_ind[16];
bool mt_tx__ignore_pt_nrs;
bool mo_expect_reassignment;
enum gsm0808_permitted_speech mo_tx_reassignment_perm_speech[8];
@ -869,12 +871,21 @@ struct codec_test {
LIST_END \
}
#define SDP_CODECS_ALL_GSM { \
"AMR", \
"GSM-EFR", \
"GSM", \
"GSM-HR-08", \
}
#define SDP_CODECS_ALL_GSM \
{ \
"AMR:octet-align=1#112", \
"GSM-EFR#110", \
"GSM#3", \
"GSM-HR-08#111", \
}
#define SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS \
{ \
"AMR:octet-align=1#127", \
"GSM-EFR#110", \
"GSM#3", \
"GSM-HR-08#111", \
}
static const struct codec_test codec_tests[] = {
{
@ -885,7 +896,7 @@ static const struct codec_test codec_tests[] = {
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = PERM_SPEECH_ALL_GSM,
.mo_rx_assigned_codec = "AMR",
.mo_tx_sdp_mncc_rtp_create = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mo_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM,
/* mt_rx_sdp_mncc_setup_req == mo_tx_sdp_mncc_rtp_create */
.mt_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mt_tx_cc_setup_bcap = {
@ -908,9 +919,9 @@ static const struct codec_test codec_tests[] = {
LIST_END
},
.mt_rx_assigned_codec = "AMR",
.mt_tx_sdp_mncc_rtp_create = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_alert_ind = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_setup_cnf = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM,
.mt_tx_sdp_mncc_alert_ind = SDP_CODECS_ALL_GSM,
.mt_tx_sdp_mncc_setup_cnf = SDP_CODECS_ALL_GSM,
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
@ -918,11 +929,11 @@ static const struct codec_test codec_tests[] = {
.desc = "FR1 picked by MO from Codec List (BSS Supported), MT hence also picks FR1",
.mo_rx_compl_l3_codec_list_bss_supported = { SC(GSM0808_SCT_FR1, 0) },
.mo_rx_ms_bcap = BCAP_ALL_GSM,
.mo_tx_sdp_mncc_setup_ind = { "GSM" },
.mo_tx_sdp_mncc_setup_ind = { "GSM#3" },
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = { GSM0808_PERM_FR1, LIST_END },
.mo_rx_assigned_codec = "GSM",
.mo_tx_sdp_mncc_rtp_create = { "GSM" },
.mo_tx_sdp_mncc_rtp_create = { "GSM#3" },
/* mt_rx_sdp_mncc_setup_req == mo_tx_sdp_mncc_rtp_create */
.mt_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mt_tx_cc_setup_bcap = { GSM48_BCAP_SV_FR, LIST_END },
@ -931,9 +942,9 @@ static const struct codec_test codec_tests[] = {
.mt_rx_sdp_mncc_rtp_create = {},
.mt_tx_assignment_perm_speech = { GSM0808_PERM_FR1, LIST_END },
.mt_rx_assigned_codec = "GSM",
.mt_tx_sdp_mncc_rtp_create = { "GSM" },
.mt_tx_sdp_mncc_alert_ind = { "GSM" },
.mt_tx_sdp_mncc_setup_cnf = { "GSM" },
.mt_tx_sdp_mncc_rtp_create = { "GSM#3" },
.mt_tx_sdp_mncc_alert_ind = { "GSM#3" },
.mt_tx_sdp_mncc_setup_cnf = { "GSM#3" },
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
@ -941,11 +952,11 @@ static const struct codec_test codec_tests[] = {
.desc = "FR1 picked by MO from Bearer Cap, MT hence also picks FR1",
.mo_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mo_rx_ms_bcap = { GSM48_BCAP_SV_FR, LIST_END },
.mo_tx_sdp_mncc_setup_ind = { "GSM" },
.mo_tx_sdp_mncc_setup_ind = { "GSM#3" },
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = { GSM0808_PERM_FR1, LIST_END },
.mo_rx_assigned_codec = "GSM",
.mo_tx_sdp_mncc_rtp_create = { "GSM" },
.mo_tx_sdp_mncc_rtp_create = { "GSM#3" },
/* mt_rx_sdp_mncc_setup_req == mo_tx_sdp_mncc_rtp_create */
.mt_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mt_tx_cc_setup_bcap = { GSM48_BCAP_SV_FR, LIST_END },
@ -954,9 +965,9 @@ static const struct codec_test codec_tests[] = {
.mt_rx_sdp_mncc_rtp_create = {},
.mt_tx_assignment_perm_speech = { GSM0808_PERM_FR1, LIST_END },
.mt_rx_assigned_codec = "GSM",
.mt_tx_sdp_mncc_rtp_create = { "GSM" },
.mt_tx_sdp_mncc_alert_ind = { "GSM" },
.mt_tx_sdp_mncc_setup_cnf = { "GSM" },
.mt_tx_sdp_mncc_rtp_create = { "GSM#3" },
.mt_tx_sdp_mncc_alert_ind = { "GSM#3" },
.mt_tx_sdp_mncc_setup_cnf = { "GSM#3" },
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
@ -968,7 +979,7 @@ static const struct codec_test codec_tests[] = {
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = PERM_SPEECH_ALL_GSM,
.mo_rx_assigned_codec = "AMR", /* <- Early Assignment first picks a mismatching codec */
.mo_tx_sdp_mncc_rtp_create = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mo_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM,
/* This is the codec limitation this test verifies, Codec List (BSS Supported): */
.mt_rx_compl_l3_codec_list_bss_supported = { SC(GSM0808_SCT_FR1, 0) },
@ -987,8 +998,8 @@ static const struct codec_test codec_tests[] = {
LIST_END
},
.mt_rx_assigned_codec = "GSM",
.mt_tx_sdp_mncc_rtp_create = { "GSM" },
.mt_tx_sdp_mncc_alert_ind = { "GSM" },
.mt_tx_sdp_mncc_rtp_create = { "GSM#3" },
.mt_tx_sdp_mncc_alert_ind = { "GSM#3" },
.mo_expect_reassignment = true,
.mo_tx_reassignment_perm_speech = {
@ -997,7 +1008,7 @@ static const struct codec_test codec_tests[] = {
},
.mo_rx_reassigned_codec = "GSM",
.mt_tx_sdp_mncc_setup_cnf = { "GSM" },
.mt_tx_sdp_mncc_setup_cnf = { "GSM#3" },
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
@ -1009,7 +1020,7 @@ static const struct codec_test codec_tests[] = {
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = PERM_SPEECH_ALL_GSM,
.mo_rx_assigned_codec = "AMR", /* <- Early Assignment first picks a mismatching codec */
.mo_tx_sdp_mncc_rtp_create = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mo_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM,
.mt_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mt_tx_cc_setup_bcap = BCAP_ALL_GSM,
@ -1026,8 +1037,8 @@ static const struct codec_test codec_tests[] = {
LIST_END
},
.mt_rx_assigned_codec = "GSM",
.mt_tx_sdp_mncc_rtp_create = { "GSM" },
.mt_tx_sdp_mncc_alert_ind = { "GSM" },
.mt_tx_sdp_mncc_rtp_create = { "GSM#3" },
.mt_tx_sdp_mncc_alert_ind = { "GSM#3" },
.mo_expect_reassignment = true,
.mo_tx_reassignment_perm_speech = {
@ -1036,7 +1047,7 @@ static const struct codec_test codec_tests[] = {
},
.mo_rx_reassigned_codec = "GSM",
.mt_tx_sdp_mncc_setup_cnf = { "GSM" },
.mt_tx_sdp_mncc_setup_cnf = { "GSM#3" },
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
@ -1048,7 +1059,7 @@ static const struct codec_test codec_tests[] = {
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = PERM_SPEECH_ALL_GSM,
.mo_rx_assigned_codec = "AMR",
.mo_tx_sdp_mncc_rtp_create = { "AMR", "GSM-EFR", "GSM", "GSM-HR-08" },
.mo_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM,
/* mt_rx_sdp_mncc_setup_req == mo_tx_sdp_mncc_rtp_create */
.mt_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mt_tx_cc_setup_bcap = {
@ -1071,9 +1082,21 @@ static const struct codec_test codec_tests[] = {
LIST_END
},
.mt_rx_assigned_codec = "AMR",
.mt_tx_sdp_mncc_rtp_create = { "AMR#96", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_alert_ind = { "AMR#96", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_setup_cnf = { "AMR#96", "GSM-EFR", "GSM", "GSM-HR-08" },
/* We want to test how osmo-msc reacts to a peer using different payload type nrs. So below SDP string
* features odd numbers that osmo-msc would never pick.
* But, the below SDP string serves two purposes:
* - feed this to osmo-msc when it is MO.
* - *validate* what osmo-msc sends when it is MT.
* The validation step will fail on the MT side, but we still want to feed this SDP to MO.
* By the flag ...__ignore_pt_nrs = true, we skip validation of the payload type numbers and can pass
* this SDP without the test failing.
*/
.mt_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mt_tx__ignore_pt_nrs = true,
.mt_tx_sdp_mncc_alert_ind = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mt_tx_sdp_mncc_setup_cnf = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
@ -1085,7 +1108,17 @@ static const struct codec_test codec_tests[] = {
.mo_rx_sdp_mncc_rtp_create = {},
.mo_tx_assignment_perm_speech = PERM_SPEECH_ALL_GSM,
.mo_rx_assigned_codec = "AMR",
.mo_tx_sdp_mncc_rtp_create = { "AMR#98", "GSM-EFR", "GSM", "GSM-HR-08" },
/* We want to test how osmo-msc reacts to a peer using different payload type nrs. So below SDP string
* features odd numbers that osmo-msc would never pick.
* But, the below SDP string serves two purposes:
* - feed this to osmo-msc when it is MO.
* - *validate* what osmo-msc sends when it is MT.
* The validation step will fail on the MT side, but we still want to feed this SDP to MO.
* By the flag ...__ignore_pt_nrs = true, we skip validation of the payload type numbers and can pass
* this SDP without the test failing.
*/
.mo_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mo_tx__ignore_pt_nrs = true,
/* mt_rx_sdp_mncc_setup_req == mo_tx_sdp_mncc_rtp_create */
.mt_rx_compl_l3_codec_list_bss_supported = CODEC_LIST_ALL_GSM,
.mt_tx_cc_setup_bcap = {
@ -1108,9 +1141,9 @@ static const struct codec_test codec_tests[] = {
LIST_END
},
.mt_rx_assigned_codec = "AMR",
.mt_tx_sdp_mncc_rtp_create = { "AMR#98", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_alert_ind = { "AMR#98", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_setup_cnf = { "AMR#98", "GSM-EFR", "GSM", "GSM-HR-08" },
.mt_tx_sdp_mncc_rtp_create = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mt_tx_sdp_mncc_alert_ind = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mt_tx_sdp_mncc_setup_cnf = SDP_CODECS_ALL_GSM_WITH_ODD_PT_NRS,
.mo_tx_sdp_mncc_setup_compl_ind = {},
},
};
@ -1183,26 +1216,11 @@ static const char *strlist_name(const char *const*strs)
return sb.buf;
}
/* Split an input string of "AMR#96" into "AMR" and 96: copy the subtype name without the "#96" part to
* split_subtype_name_and_pt_nr which must be a char[16]. If pt_nr is non-NULL, write the 96 to *pt_nr.
*/
static void split_subtype_name_and_pt_nr(char subtype_name_wo_pt[], int *pt_nr, const char *input)
{
char *hash;
osmo_strlcpy(subtype_name_wo_pt, input, 16);
hash = strchr(subtype_name_wo_pt, '#');
if (hash) {
*hash = '\0';
if (pt_nr)
*pt_nr = atoi(hash + 1);
}
}
/* Validate that the codecs in sdp_str appear in the order as expected by the list of subtype names in expected_codecs.
* Ignore any payload type numbers ("#96") in expected_codecs.
*/
static bool validate_sdp(const char *func, const char *desc,
const char *sdp_str, const char * const expected_codecs[])
const char *sdp_str, const char * const expected_codecs[], bool cmp_payload_type)
{
const char * const *expect_pos;
struct sdp_audio_codec *codec;
@ -1214,21 +1232,25 @@ static bool validate_sdp(const char *func, const char *desc,
expect_pos = expected_codecs;
sdp_audio_codecs_foreach(codec, &sdp.audio_codecs) {
char subtype_name_wo_pt[16];
struct sdp_audio_codec xc;
if (!*expect_pos) {
BTW("%s: %s: ERROR: did not expect %s", func, desc, codec->subtype_name);
return false;
}
split_subtype_name_and_pt_nr(subtype_name_wo_pt, NULL, *expect_pos);
if (strcmp(subtype_name_wo_pt, codec->subtype_name)) {
if (sdp_audio_codec_from_str(&xc, *expect_pos)) {
BTW("%s: %s: ERROR: cannot parse %s", func, desc, codec->subtype_name);
return false;
}
if (sdp_audio_codec_cmp(&xc, codec, true, cmp_payload_type)) {
BTW("%s: %s: ERROR: mismatch: in idx %d, expect %s, got %s", func, desc,
(int)(expect_pos - expected_codecs), *expect_pos, codec->subtype_name);
(int)(expect_pos - expected_codecs), sdp_audio_codec_to_str(&xc),
sdp_audio_codec_to_str(codec));
return false;
}
expect_pos++;
/* only match first codec */
return true;
}
if (*expect_pos) {
BTW("%s: %s: ERROR: mismatch: expected %s to be listed, but not found", func, desc, *expect_pos);
@ -1237,8 +1259,8 @@ static bool validate_sdp(const char *func, const char *desc,
return true;
}
#define VALIDATE_SDP(GOT_SDP_STR, EXPECT_SDP_STR) do { \
if (validate_sdp(__func__, t->desc, GOT_SDP_STR, EXPECT_SDP_STR)) { \
#define VALIDATE_SDP(GOT_SDP_STR, EXPECT_SDP_STR, CMP_PAYLOAD_TYPE) do { \
if (validate_sdp(__func__, t->desc, GOT_SDP_STR, EXPECT_SDP_STR, CMP_PAYLOAD_TYPE)) { \
btw("VALIDATE_SDP OK: " #GOT_SDP_STR " == " #EXPECT_SDP_STR " ==%s", strlist_name(EXPECT_SDP_STR)); \
} else { \
btw("Failed to validate SDP:\nexpected%s\ngot\n%s", \
@ -1291,37 +1313,33 @@ static bool validate_perm_speech(const char *func, const char *desc,
/* Compose a valid SDP string from the list of codec subtype names given. If a subtype name includes a payload type
* number ("AMR#96") then use that PT number in the SDP instead of the default from codec_mapping.c. */
static struct sdp_msg *sdp_from_subtype_names(const char *const *subtype_names)
static struct sdp_msg *sdp_from_codec_strs(const char *const *codec_strs)
{
static struct sdp_msg sdp;
sdp = (struct sdp_msg){};
const char *const *subtype_name;
const char *const *codec_str;
osmo_sockaddr_str_from_str(&sdp.rtp, "1.2.3.4", 56);
for (subtype_name = subtype_names; *subtype_name; subtype_name++) {
char subtype_name_wo_pt[16];
const struct codec_mapping *m;
struct sdp_audio_codec *ac;
int set_pt = -1;
split_subtype_name_and_pt_nr(subtype_name_wo_pt, &set_pt, *subtype_name);
m = codec_mapping_by_subtype_name(subtype_name_wo_pt);
if (!m) {
BTW("ERROR: unknown subtype_name: %s", *subtype_name);
for (codec_str = codec_strs; *codec_str; codec_str++) {
struct sdp_audio_codec c;
if (sdp_audio_codec_from_str(&c, *codec_str)) {
BTW("ERROR: unknown codec_str: %s", *codec_str);
abort();
}
if (!sdp_audio_codecs_add_copy(&sdp.audio_codecs, &c)) {
BTW("ERROR: list full, cannot add %s", *codec_str);
abort();
}
ac = sdp_audio_codecs_add_copy(&sdp.audio_codecs, &m->sdp);
if (set_pt >= 0)
ac->payload_type = set_pt;
}
return &sdp;
}
static int sdp_str_from_subtype_names(char *buf, size_t buflen, const char *const *subtype_names)
static int sdp_str_from_codec_strs(char *buf, size_t buflen, const char *const *codec_strs)
{
if (!subtype_names[0]) {
if (!codec_strs[0]) {
buf[0] = '\0';
return 0;
}
return sdp_msg_to_sdp_str_buf(buf, buflen, sdp_from_subtype_names(subtype_names));
return sdp_msg_to_sdp_str_buf(buf, buflen, sdp_from_codec_strs(codec_strs));
}
static const char *bcap_hexstr(const enum gsm48_bcap_speech_ver ms_bcap[])
@ -1382,10 +1400,10 @@ static void test_codecs_mo(const struct codec_test *t)
crcx_ok(RTP_TO_CN);
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
mncc.callref = mncc_rtp.callref = cc_to_mncc_tx_got_callref;
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mo_tx_sdp_mncc_setup_ind);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mo_tx_sdp_mncc_setup_ind, true);
btw("MNCC replies with MNCC_RTP_CREATE");
sdp_str_from_subtype_names(mncc_rtp.sdp, sizeof(mncc_rtp.sdp), t->mo_rx_sdp_mncc_rtp_create);
sdp_str_from_codec_strs(mncc_rtp.sdp, sizeof(mncc_rtp.sdp), t->mo_rx_sdp_mncc_rtp_create);
mncc_sends_to_cc(MNCC_RTP_CREATE, &mncc_rtp);
btw("MGW acknowledges the CRCX, triggering Assignment with%s", perm_speech_name(t->mo_tx_assignment_perm_speech));
@ -1398,7 +1416,8 @@ static void test_codecs_mo(const struct codec_test *t)
cc_to_mncc_expect_tx("", MNCC_RTP_CREATE);
ms_sends_assignment_complete(t->mo_rx_assigned_codec);
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mo_tx_sdp_mncc_rtp_create);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mo_tx_sdp_mncc_rtp_create,
!t->mo_tx__ignore_pt_nrs);
btw("MNCC says that's fine");
dtap_expect_tx("8302" /* CC: Call Proceeding */);
@ -1416,7 +1435,7 @@ static void test_codecs_mo(const struct codec_test *t)
expect_bssap_assignment();
}
sdp_str_from_subtype_names(mncc.sdp, sizeof(mncc.sdp), t->mo_rx_sdp_mncc_alert_req);
sdp_str_from_codec_strs(mncc.sdp, sizeof(mncc.sdp), t->mo_rx_sdp_mncc_alert_req);
mncc_sends_to_cc(MNCC_ALERT_REQ, &mncc);
OSMO_ASSERT(dtap_tx_confirmed);
@ -1428,7 +1447,7 @@ static void test_codecs_mo(const struct codec_test *t)
}
dtap_expect_tx("8307" /* CC: Connect */);
sdp_str_from_subtype_names(mncc.sdp, sizeof(mncc.sdp), t->mo_rx_sdp_mncc_setup_rsp);
sdp_str_from_codec_strs(mncc.sdp, sizeof(mncc.sdp), t->mo_rx_sdp_mncc_setup_rsp);
mncc_sends_to_cc(MNCC_SETUP_RSP, &mncc);
OSMO_ASSERT(dtap_tx_confirmed);
@ -1437,7 +1456,7 @@ static void test_codecs_mo(const struct codec_test *t)
cc_to_mncc_expect_tx("", MNCC_SETUP_COMPL_IND);
ms_sends_msg("03cf" /* CC: Connect Acknowledge */);
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mo_tx_sdp_mncc_setup_compl_ind);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mo_tx_sdp_mncc_setup_compl_ind, true);
BTW("RTP stream goes ahead, not shown here.");
fake_time_passes(123, 45);
@ -1482,7 +1501,7 @@ static void test_codecs_mt(const struct codec_test *t)
paging_expect_imsi(IMSI);
paging_sent = false;
sdp_str_from_subtype_names(mncc.sdp, sizeof(mncc.sdp), t->mt_rx_sdp_mncc_setup_req);
sdp_str_from_codec_strs(mncc.sdp, sizeof(mncc.sdp), t->mt_rx_sdp_mncc_setup_req);
mncc_sends_to_cc(MNCC_SETUP_REQ, &mncc);
mncc.sdp[0] = '\0';
@ -1534,7 +1553,7 @@ static void test_codecs_mt(const struct codec_test *t)
OSMO_ASSERT(crcx_scheduled(RTP_TO_CN));
OSMO_ASSERT(crcx_scheduled(RTP_TO_RAN));
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_call_conf_ind);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_call_conf_ind, true);
btw("MGW acknowledges the CRCX to RAN, triggering Assignment with%s", perm_speech_name(t->mt_tx_assignment_perm_speech));
@ -1564,31 +1583,34 @@ static void test_codecs_mt(const struct codec_test *t)
ms_sends_assignment_complete(t->mt_rx_assigned_codec);
btw("MNCC sends MNCC_RTP_CREATE, which first waits for the CN side RTP");
sdp_str_from_subtype_names(mncc_rtp.sdp, sizeof(mncc_rtp.sdp), t->mt_rx_sdp_mncc_rtp_create);
sdp_str_from_codec_strs(mncc_rtp.sdp, sizeof(mncc_rtp.sdp), t->mt_rx_sdp_mncc_rtp_create);
mncc_sends_to_cc(MNCC_RTP_CREATE, &mncc_rtp);
btw("When the CN side RTP address is known, ack MNCC_RTP_CREATE");
cc_to_mncc_expect_tx("", MNCC_RTP_CREATE);
crcx_ok(RTP_TO_CN);
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_rtp_create);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_rtp_create,
!t->mt_tx__ignore_pt_nrs);
fake_time_passes(1, 23);
cc_to_mncc_expect_tx("", MNCC_ALERT_IND);
ms_sends_msg("8381" /* CC: Alerting */);
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_alert_ind);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_alert_ind,
!t->mt_tx__ignore_pt_nrs);
fake_time_passes(1, 23);
cc_to_mncc_expect_tx(IMSI, MNCC_SETUP_CNF);
ms_sends_msg("83c7" /* CC: Connect */);
OSMO_ASSERT(cc_to_mncc_tx_confirmed);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_setup_cnf);
VALIDATE_SDP(cc_to_mncc_tx_last_sdp, t->mt_tx_sdp_mncc_setup_cnf,
!t->mt_tx__ignore_pt_nrs);
dtap_expect_tx("030f" /* CC: Connect Acknowledge */);
sdp_str_from_subtype_names(mncc.sdp, sizeof(mncc.sdp), t->mt_rx_sdp_mncc_setup_compl_req);
sdp_str_from_codec_strs(mncc.sdp, sizeof(mncc.sdp), t->mt_rx_sdp_mncc_setup_compl_req);
mncc_sends_to_cc(MNCC_SETUP_COMPL_REQ, &mncc);
BTW("RTP stream goes ahead, not shown here.");

View File

@ -2615,7 +2615,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x80000004: MNCC_RTP_CREATE
@ -2654,7 +2654,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC says that's fine
MSC <-- MNCC: callref 0x80000004: MNCC_CALL_PROC_REQ
@ -2669,7 +2669,7 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 1.000023 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { AMR GSM-EFR GSM GSM-HR-08 }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111 }
MSC <-- MNCC: callref 0x80000004: MNCC_ALERT_REQ
v=0
o=OsmoMSC 0 0 IN IP4 1.2.3.4
@ -3000,7 +3000,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- Total time passed: 126.000114 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -3027,7 +3027,7 @@ a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- Total time passed: 127.000137 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -3053,7 +3053,7 @@ a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ
@ -3250,7 +3250,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == GSM#3
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x80000005: MNCC_RTP_CREATE
@ -3285,7 +3285,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == GSM#3
- MNCC says that's fine
MSC <-- MNCC: callref 0x80000005: MNCC_CALL_PROC_REQ
@ -3300,7 +3300,7 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 251.000205 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM#3 }
MSC <-- MNCC: callref 0x80000005: MNCC_ALERT_REQ
v=0
o=OsmoMSC 0 0 IN IP4 1.2.3.4
@ -3611,7 +3611,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM#3
- Total time passed: 376.000296 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -3634,7 +3634,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM#3
- Total time passed: 377.000319 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -3656,7 +3656,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM#3
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ
@ -3853,7 +3853,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == GSM#3
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x80000006: MNCC_RTP_CREATE
@ -3888,7 +3888,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == GSM#3
- MNCC says that's fine
MSC <-- MNCC: callref 0x80000006: MNCC_CALL_PROC_REQ
@ -3903,7 +3903,7 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 501.000387 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM#3 }
MSC <-- MNCC: callref 0x80000006: MNCC_ALERT_REQ
v=0
o=OsmoMSC 0 0 IN IP4 1.2.3.4
@ -4214,7 +4214,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM#3
- Total time passed: 626.000478 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -4237,7 +4237,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM#3
- Total time passed: 627.000501 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -4259,7 +4259,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM#3
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ
@ -4460,7 +4460,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x80000007: MNCC_RTP_CREATE
@ -4499,7 +4499,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC says that's fine
MSC <-- MNCC: callref 0x80000007: MNCC_CALL_PROC_REQ
@ -4514,7 +4514,7 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 751.000569 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM#3 }
- Expecting re-assignment
MSC <-- MNCC: callref 0x80000007: MNCC_ALERT_REQ
v=0
@ -4844,7 +4844,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM#3
- Total time passed: 876.000660 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -4867,7 +4867,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM#3
- Total time passed: 877.000683 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -4889,7 +4889,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM#3
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ
@ -5090,7 +5090,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x80000008: MNCC_RTP_CREATE
@ -5129,7 +5129,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC says that's fine
MSC <-- MNCC: callref 0x80000008: MNCC_CALL_PROC_REQ
@ -5144,7 +5144,7 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 1001.000751 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { GSM#3 }
- Expecting re-assignment
MSC <-- MNCC: callref 0x80000008: MNCC_ALERT_REQ
v=0
@ -5474,7 +5474,7 @@ m=audio 23 RTP/AVP 3
a=rtpmap:3 GSM/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == GSM#3
- Total time passed: 1126.000842 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -5497,7 +5497,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == GSM#3
- Total time passed: 1127.000865 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -5519,7 +5519,7 @@ a=rtpmap:3 GSM/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == GSM#3
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ
@ -5720,7 +5720,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x80000009: MNCC_RTP_CREATE
@ -5759,7 +5759,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC says that's fine
MSC <-- MNCC: callref 0x80000009: MNCC_CALL_PROC_REQ
@ -5774,27 +5774,27 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 1251.000933 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { AMR#96 GSM-EFR GSM GSM-HR-08 }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111 }
MSC <-- MNCC: callref 0x80000009: MNCC_ALERT_REQ
v=0
o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 96 110 3 111
a=rtpmap:96 AMR/8000
a=fmtp:96 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DMNCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) rx MNCC_ALERT_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) rx MNCC_ALERT_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) stopping pending guard timer
DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) starting guard timer with 180 seconds
DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) new state MO_CALL_PROC -> CALL_DELIVERED
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI:local-10-23-23-1-23){UNINITIALIZED}: setting remote addr to 1.2.3.4:56
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Sending DTAP: CC GSM48_MT_CC_ALERTING
@ -5808,21 +5808,21 @@ o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 96 110 3 111
a=rtpmap:96 AMR/8000
a=fmtp:96 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DMNCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) rx MNCC_SETUP_RSP (RTP=1.2.3.4:56{AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) rx MNCC_SETUP_RSP (RTP=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) stopping pending guard timer
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) starting guard timer with 180 seconds
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) starting timer T313 with 30 seconds
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) new state CALL_DELIVERED -> CONNECT_IND
DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to AMR:octet-align=1#96,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000009 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: remote addr already 1.2.3.4:56, no change
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-16:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Sending DTAP: CC GSM48_MT_CC_CONNECT
@ -5867,9 +5867,9 @@ o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 96 110 3 111
a=rtpmap:96 AMR/8000
a=fmtp:96 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
@ -6105,7 +6105,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == AMR#96 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
- Total time passed: 1376.001024 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -6132,7 +6132,7 @@ a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == AMR#96 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
- Total time passed: 1377.001047 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -6158,7 +6158,7 @@ a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == AMR#96 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ
@ -6359,7 +6359,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_setup_ind == AMR:octet-align=1#112 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC replies with MNCC_RTP_CREATE
MSC <-- MNCC: callref 0x8000000a: MNCC_RTP_CREATE
@ -6398,7 +6398,7 @@ a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR#98 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mo_tx_sdp_mncc_rtp_create == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
- MNCC says that's fine
MSC <-- MNCC: callref 0x8000000a: MNCC_CALL_PROC_REQ
@ -6413,27 +6413,27 @@ DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_CO
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Assignment for this trans already started earlier
- Total time passed: 1501.001115 s
- The other call leg got established (not shown here), MNCC tells us so, with codecs { AMR#98 GSM-EFR GSM GSM-HR-08 }
- The other call leg got established (not shown here), MNCC tells us so, with codecs { AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111 }
MSC <-- MNCC: callref 0x8000000a: MNCC_ALERT_REQ
v=0
o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DMNCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) rx MNCC_ALERT_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) rx MNCC_ALERT_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) stopping pending guard timer
DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) starting guard timer with 180 seconds
DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) new state MO_CALL_PROC -> CALL_DELIVERED
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI:local-10-23-23-1-23){UNINITIALIZED}: setting remote addr to 1.2.3.4:56
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Sending DTAP: CC GSM48_MT_CC_ALERTING
@ -6447,21 +6447,21 @@ o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DMNCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) rx MNCC_SETUP_RSP (RTP=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) rx MNCC_SETUP_RSP (RTP=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) stopping pending guard timer
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) starting guard timer with 180 seconds
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) starting timer T313 with 30 seconds
DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) new state CALL_DELIVERED -> CONNECT_IND
DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x8000000a tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: remote addr already 1.2.3.4:56, no change
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-18:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}: Sending DTAP: CC GSM48_MT_CC_CONNECT
@ -6506,9 +6506,9 @@ o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
@ -6599,9 +6599,9 @@ o=OsmoMSC 0 0 IN IP4 1.2.3.4
s=GSM Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 56 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 56 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
@ -6610,8 +6610,8 @@ a=ptime:20
DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc)
DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC)
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) New transaction
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} RAN={(no-codecs)})
DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} RAN={(no-codecs)})
DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DPAG Paging: IMSI-901700000010650:MSISDN-46071 for MNCC: establish call: Starting paging
paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-46071 on GERAN-A
strcmp(paging_expecting_imsi, vsub->imsi) == 0
@ -6663,7 +6663,7 @@ DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTHE
DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTHENTICATED}: Received Event MSC_A_EV_TRANSACTION_ACCEPTED
DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTHENTICATED}: state_chg to MSC_A_ST_COMMUNICATING
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) starting timer T303 with 30 seconds
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) new state NULL -> CALL_PRESENT
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: Sending DTAP: CC GSM48_MT_CC_SETUP
DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: RAN encode: DTAP on GERAN-A
@ -6685,15 +6685,15 @@ DCC trans(CC:CALL_PRESENT IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: Starting call assignment
DCC call_leg(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){ESTABLISHING}: Allocated
DCC call_leg(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){ESTABLISHING}: is child of msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP)
DCC trans(CC:CALL_PRESENT IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
MGW <--CRCX to RTP_TO_CN-- MSC: call_id=0x13 codecs=AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:CALL_PRESENT IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
MGW <--CRCX to RTP_TO_CN-- MSC: call_id=0x13 codecs=AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){UNINITIALIZED}: Allocated
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){UNINITIALIZED}: is child of call_leg(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP)
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
MGW <--CRCX to RTP_TO_RAN-- MSC: call_id=0x13 codecs=AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
MGW <--CRCX to RTP_TO_RAN-- MSC: call_id=0x13 codecs=AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){UNINITIALIZED}: Allocated
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){UNINITIALIZED}: is child of call_leg(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP)
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_RAN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_RAN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:CALL_PRESENT IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) new state CALL_PRESENT -> MO_TERM_CALL_CONF
DMNCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_CALL_CONF_IND
MSC --> MNCC: callref 0x423: MNCC_CALL_CONF_IND
@ -6705,7 +6705,7 @@ DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMU
DCC call_leg(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){ESTABLISHING}: Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: Received Event MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: MGW endpoint's RTP address available for the CI RTP_TO_RAN: 10.23.23.1:23 (osmux=no:-2)
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) Sending Assignment Command
DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: RAN encode: ASSIGNMENT_COMMAND on GERAN-A
DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
@ -6715,8 +6715,8 @@ DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COM
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_RAN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#112
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_RAN:no-CI:local-10-23-23-1-23){UNINITIALIZED}: setting remote addr to 1.2.3.4:1234
DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP:trans-0:call-19:RTP_TO_RAN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-1234){UNINITIALIZED}: Not committing: no MGW endpoint CI set up
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) Assignment Complete: RAN: AMR:octet-align=1#112, CN: AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: :0{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) Assignment Complete: RAN: AMR:octet-align=1#112, CN: AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) Assignment complete, but still waiting for the CRCX OK on the CN side RTP
- MNCC sends MNCC_RTP_CREATE, which first waits for the CN side RTP
MSC <-- MNCC: callref 0x423: MNCC_RTP_CREATE
@ -6728,23 +6728,23 @@ DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COM
DCC call_leg(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){ESTABLISHING}: Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: Received Event MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE
DBSSAP msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: MGW endpoint's RTP address available for the CI RTP_TO_CN: 10.23.23.1:23 (osmux=no:-2)
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
MSC --> MNCC: callref 0x423: MNCC_RTP_CREATE
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
m=audio 23 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 23 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == AMR#98 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_rtp_create == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
- Total time passed: 1626.001206 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_ALERTING
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -6754,24 +6754,24 @@ DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) stopping pending timer T310
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) starting timer T301 with 180 seconds
DCC trans(CC:MO_TERM_CALL_CONF IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) new state MO_TERM_CALL_CONF -> CALL_RECEIVED
DCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_ALERT_IND (RTP=10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_ALERT_IND (RTP=10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
MSC --> MNCC: callref 0x423: MNCC_ALERT_IND
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
m=audio 23 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 23 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == AMR#98 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_alert_ind == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
- Total time passed: 1627.001229 s
MSC <--GERAN-A-- MS: GSM48_MT_CC_CONNECT
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: + rx_from_ms: now used by 2 (cc,rx_from_ms)
@ -6780,24 +6780,24 @@ DRLL msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMU
DCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx CONNECT in state CALL_RECEIVED
DCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) stopping pending timer T301
DCC trans(CC:CALL_RECEIVED IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) new state CALL_RECEIVED -> CONNECT_REQUEST
DCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_SETUP_CNF (RTP=10.23.23.1:23{AMR:octet-align=1#98,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111})
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) tx MNCC_SETUP_CNF (RTP=10.23.23.1:23{AMR:octet-align=1#127,GSM-EFR#110,GSM#3,GSM-HR-08#111})
MSC --> MNCC: callref 0x423: MNCC_SETUP_CNF
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
m=audio 23 RTP/AVP 98 110 3 111
a=rtpmap:98 AMR/8000
a=fmtp:98 octet-align=1
m=audio 23 RTP/AVP 127 110 3 111
a=rtpmap:127 AMR/8000
a=fmtp:127 octet-align=1
a=rtpmap:110 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 GSM-HR-08/8000
a=ptime:20
DREF msc_a(IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_COMMUNICATING}: - rx_from_ms: now used by 1 (cc)
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == AMR#98 GSM-EFR GSM GSM-HR-08
- VALIDATE_SDP OK: cc_to_mncc_tx_last_sdp == t->mt_tx_sdp_mncc_setup_cnf == AMR:octet-align=1#127 GSM-EFR#110 GSM#3 GSM-HR-08#111
MSC <-- MNCC: callref 0x423: MNCC_SETUP_COMPL_REQ
DMNCC trans(CC:CONNECT_REQUEST IMSI-901700000010650:MSISDN-46071:GERAN-A:PAGING_RESP callref-0x423 tid-0) rx MNCC_SETUP_COMPL_REQ