/* Routines to talk to the MSC using the IPA Protocol */ /* * (C) 2010 by Holger Hans Peter Freyther * (C) 2010 by On-Waves * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ #ifndef BSC_MSC_H #define BSC_MSC_H #include #include #include #include #include struct bsc_msc_dest { struct llist_head list; char *ip; int port; int dscp; }; struct bsc_msc_connection { /* FIXME: Remove stuff that is no longer needed! */ struct osmo_wqueue write_queue; int is_connected; int is_authenticated; int first_contact; struct llist_head *dests; const char *name; void (*connection_loss) (struct bsc_msc_connection *); void (*connected) (struct bsc_msc_connection *); struct osmo_timer_list reconnect_timer; struct osmo_timer_list timeout_timer; struct msgb *pending_msg; /* Sigtran connection data */ struct osmo_sccp_instance *sccp; struct osmo_sccp_user *sccp_user; struct osmo_sccp_addr g_calling_addr; struct osmo_sccp_addr g_called_addr; struct a_reset_ctx *reset; int conn_id_counter; }; struct bsc_msc_connection *bsc_msc_create(void *ctx, struct llist_head *dest); int bsc_msc_connect(struct bsc_msc_connection *); void bsc_msc_schedule_connect(struct bsc_msc_connection *); void bsc_msc_lost(struct bsc_msc_connection *); struct msgb *bsc_msc_id_get_resp(int fixed, const char *token, const uint8_t *res, int len); #endif