| /* mgcp_ss7 helper coder */ |
| /* |
| * (C) 2010 by Holger Hans Peter Freyther <zecke@selfish.org> |
| * (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 <http://www.gnu.org/licenses/>. |
| * |
| */ |
| |
| #ifndef mgcp_ss7_h |
| #define mgcp_ss7_h |
| |
| #include <osmocore/timer.h> |
| #include <osmocore/write_queue.h> |
| |
| #include <osmocom/vty/command.h> |
| |
| #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 |