/* mgcp_ss7 helper coder */ /* * (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 mgcp_ss7_h #define mgcp_ss7_h #include #include #include #include "thread.h" enum cellmgr_node { MGCP_NODE = _LAST_OSMOVTY_NODE + 1, }; struct mgcp_ss7_endpoint; struct mgcp_ss7 { struct mgcp_config *cfg; struct write_queue mgcp_fd; struct msgb *mgcp_msg; struct mgcp_ss7_endpoint *mgw_end; /* timer */ struct timer_list poll_timer; /* thread handling */ struct thread_notifier *cmd_queue; pthread_t thread; }; enum { MGCP_SS7_MUTE_STATUS, MGCP_SS7_ALLOCATE, MGCP_SS7_DELETE, MGCP_SS7_SHUTDOWN, }; struct mgcp_ss7_cmd { struct llist_head entry; uint8_t type; uint32_t port; uint32_t param; }; void mgcp_ss7_exec(struct mgcp_ss7 *mgcp, uint8_t type, uint32_t port, uint32_t param); void mgcp_ss7_reset(struct mgcp_ss7 *mgcp); void mgcp_ss7_free(struct mgcp_ss7 *mgcp); #endif