mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-23 08:12:01 +00:00
the client API is not very intuitive and requires a lot of extra care when it is used from an osmo-fsm. - Add an FSM that permits comfortable handling of an MGCP connection. Change-Id: I887ce0c15a831dffeb6251a975337b83942af566
34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
#pragma once
|
|
|
|
#include <osmocom/mgcp_client/mgcp_common.h>
|
|
#include <osmocom/mgcp_client/mgcp_client.h>
|
|
#include <osmocom/gsm/protocol/gsm_04_08.h>
|
|
|
|
/*! This struct organizes the connection infromation one connection side
|
|
* (either remote or local). It is used to pass parameters (local) to the FSM
|
|
* and get responses (remote) from the FSM as pointer attached to the FSM
|
|
* event.
|
|
*
|
|
* When modifiying a connection, the endpoint and call_id members may be left
|
|
* unpopulated. The call_id field is ignored in this case. If an endpoint
|
|
* identifier is supplied it is checked against the internal state to make
|
|
* sure it is correct. */
|
|
struct mgcp_conn_peer {
|
|
/*!< RTP connection IP-Address (optional, string e.g. "127.0.0.1") */
|
|
char addr[INET_ADDRSTRLEN];
|
|
|
|
/*!< RTP connection IP-Port (optional) */
|
|
uint16_t port;
|
|
|
|
/*!< RTP endpoint */
|
|
char endpoint[MGCP_ENDPOINT_MAXLEN];
|
|
|
|
/*!< CALL ID (unique per connection) */
|
|
unsigned int call_id;
|
|
};
|
|
|
|
struct osmo_fsm_inst *mgcp_conn_create(struct mgcp_client *mgcp, struct osmo_fsm_inst *parent_fi, uint32_t parent_term_evt,
|
|
uint32_t parent_evt, struct mgcp_conn_peer *conn_peer);
|
|
int mgcp_conn_modify(struct osmo_fsm_inst *fi, uint32_t parent_evt, struct mgcp_conn_peer *conn_peer);
|
|
void mgcp_conn_delete(struct osmo_fsm_inst *fi);
|