diff --git a/src/mm-base-call.c b/src/mm-base-call.c index 46e06ee6..cab4bdc0 100644 --- a/src/mm-base-call.c +++ b/src/mm-base-call.c @@ -63,6 +63,9 @@ struct _MMBaseCallPrivate { /* The port used for audio while call is ongoing, if known */ MMPort *audio_port; + + /* Ongoing call index */ + guint index; }; /*****************************************************************************/ @@ -811,6 +814,24 @@ mm_base_call_get_state (MMBaseCall *self) return (MMCallState) mm_gdbus_call_get_state (MM_GDBUS_CALL (self)); } +/*****************************************************************************/ +/* Current call index, only applicable while the call is ongoing + * See 3GPP TS 22.030 [27], subclause 6.5.5.1. + */ + +guint +mm_base_call_get_index (MMBaseCall *self) +{ + return self->priv->index; +} + +void +mm_base_call_set_index (MMBaseCall *self, + guint index) +{ + self->priv->index = index; +} + /*****************************************************************************/ /* Define the states in which we want to handle in-call events */ @@ -872,6 +893,8 @@ mm_base_call_change_state (MMBaseCall *self, (GAsyncReadyCallback) cleanup_audio_channel_ready, NULL); } + /* reset index */ + self->priv->index = 0; } mm_gdbus_call_set_state (MM_GDBUS_CALL (self), new_state); diff --git a/src/mm-base-call.h b/src/mm-base-call.h index 86caa485..3e89467d 100644 --- a/src/mm-base-call.h +++ b/src/mm-base-call.h @@ -120,9 +120,12 @@ const gchar *mm_base_call_get_path (MMBaseCall *self); const gchar *mm_base_call_get_number (MMBaseCall *self); MMCallDirection mm_base_call_get_direction (MMBaseCall *self); MMCallState mm_base_call_get_state (MMBaseCall *self); +guint mm_base_call_get_index (MMBaseCall *self); void mm_base_call_set_number (MMBaseCall *self, const gchar *number); +void mm_base_call_set_index (MMBaseCall *self, + guint index); void mm_base_call_change_state (MMBaseCall *self, MMCallState new_state,