aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2022-11-14 20:43:06 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2022-12-16 12:43:09 +0100
commitaadfd50a0f19068826e90bed47598b032cf4ded3 (patch)
tree7c29e1c5961957520f97947dd7a8ff8a13e5ac3c
parent2110a0f1111bccc9005db382538643b79c917638 (diff)
Osmo-CC: Change UPDATE to MODIFY message
Naming it UPDATE was not a good idea. Now this is renamed to MODIFY message, related to MNCC (GSM). It is used to change media coding during a call. It allows new codec negotiation using SDP protocol and/or changing RTP peer. Also useful for SIP.
-rw-r--r--src/libosmocc/endpoint.c24
-rw-r--r--src/libosmocc/message.h6
2 files changed, 24 insertions, 6 deletions
diff --git a/src/libosmocc/endpoint.c b/src/libosmocc/endpoint.c
index cb591b8..48290d5 100644
--- a/src/libosmocc/endpoint.c
+++ b/src/libosmocc/endpoint.c
@@ -568,18 +568,30 @@ static void notify_ind(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
forward_to_ul(call, msg);
}
-static void update_req(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
+static void modify_req(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
{
/* to lower layer */
forward_to_ll(call, msg);
}
-static void update_cnf(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
+static void modify_cnf(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
{
/* to upper layer */
forward_to_ul(call, msg);
}
+static void modify_ind(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
+{
+ /* to upper layer */
+ forward_to_ul(call, msg);
+}
+
+static void modify_rsp(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
+{
+ /* to lower layer */
+ forward_to_ll(call, msg);
+}
+
static void disc_req(osmo_cc_call_t *call, osmo_cc_msg_t *msg)
{
/* change state */
@@ -866,9 +878,13 @@ static struct statemachine {
{SBIT(OSMO_CC_STATE_ACTIVE),
OSMO_CC_MSG_INFO_REQ, info_req},
{SBIT(OSMO_CC_STATE_ACTIVE),
- OSMO_CC_MSG_UPDATE_REQ, update_req},
+ OSMO_CC_MSG_MODIFY_REQ, modify_req},
+ {SBIT(OSMO_CC_STATE_ACTIVE),
+ OSMO_CC_MSG_MODIFY_CNF, modify_cnf},
+ {SBIT(OSMO_CC_STATE_ACTIVE),
+ OSMO_CC_MSG_MODIFY_IND, modify_ind},
{SBIT(OSMO_CC_STATE_ACTIVE),
- OSMO_CC_MSG_UPDATE_CNF, update_cnf},
+ OSMO_CC_MSG_MODIFY_RSP, modify_rsp},
/* call release */
{SBIT(OSMO_CC_STATE_INIT_OUT) | SBIT(OSMO_CC_STATE_INIT_IN) |
diff --git a/src/libosmocc/message.h b/src/libosmocc/message.h
index 8f4d487..da46435 100644
--- a/src/libosmocc/message.h
+++ b/src/libosmocc/message.h
@@ -30,8 +30,10 @@ enum osmo_cc_msg_type {
OSMO_CC_MSG_NOTIFY_IND = 0x85,
OSMO_CC_MSG_INFO_REQ = 0x88,
OSMO_CC_MSG_INFO_IND = 0x89,
- OSMO_CC_MSG_UPDATE_REQ = 0x91,
- OSMO_CC_MSG_UPDATE_CNF = 0x93,
+ OSMO_CC_MSG_MODIFY_REQ = 0x90,
+ OSMO_CC_MSG_MODIFY_IND = 0x91,
+ OSMO_CC_MSG_MODIFY_RSP = 0x92,
+ OSMO_CC_MSG_MODIFY_CNF = 0x93,
OSMO_CC_MSG_ATTACH_REQ = 0xf8,
OSMO_CC_MSG_ATTACH_IND = 0xf9,
OSMO_CC_MSG_ATTACH_RSP = 0xfa,