Neels Hofmeyr | 17518fe | 2017-06-20 04:35:06 +0200 | [diff] [blame] | 1 | /*! \file gsm0480.h */ |
| 2 | |
Sylvain Munaut | 12ba778 | 2014-06-16 10:13:40 +0200 | [diff] [blame] | 3 | #pragma once |
Holger Hans Peter Freyther | 55aea50 | 2010-09-30 18:30:41 +0800 | [diff] [blame] | 4 | |
Tobias Engel | 419684e | 2012-03-08 13:31:52 +0100 | [diff] [blame] | 5 | #include <osmocom/core/defs.h> |
Pablo Neira Ayuso | 8341934 | 2011-03-22 16:36:13 +0100 | [diff] [blame] | 6 | #include <osmocom/core/msgb.h> |
| 7 | #include <osmocom/gsm/protocol/gsm_04_08.h> |
| 8 | #include <osmocom/gsm/protocol/gsm_04_80.h> |
Holger Hans Peter Freyther | 55aea50 | 2010-09-30 18:30:41 +0800 | [diff] [blame] | 9 | |
Holger Hans Peter Freyther | 00cb570 | 2010-10-09 01:47:15 +0800 | [diff] [blame] | 10 | #define MAX_LEN_USSD_STRING 31 |
| 11 | |
Tobias Engel | 419684e | 2012-03-08 13:31:52 +0100 | [diff] [blame] | 12 | /* deprecated */ |
Holger Hans Peter Freyther | 00cb570 | 2010-10-09 01:47:15 +0800 | [diff] [blame] | 13 | struct ussd_request { |
Harald Welte | 1f87d75 | 2012-09-07 12:07:10 +0200 | [diff] [blame] | 14 | char text[MAX_LEN_USSD_STRING + 1]; |
Holger Hans Peter Freyther | 00cb570 | 2010-10-09 01:47:15 +0800 | [diff] [blame] | 15 | uint8_t transaction_id; |
| 16 | uint8_t invoke_id; |
| 17 | }; |
| 18 | |
Tobias Engel | 419684e | 2012-03-08 13:31:52 +0100 | [diff] [blame] | 19 | /* deprecated */ |
Holger Hans Peter Freyther | daa653f | 2010-10-11 07:56:06 +0200 | [diff] [blame] | 20 | int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len, |
Tobias Engel | 419684e | 2012-03-08 13:31:52 +0100 | [diff] [blame] | 21 | struct ussd_request *request) OSMO_DEPRECATED("Use gsm0480_decode_ss_request() instead"); |
| 22 | |
| 23 | struct ss_request { |
| 24 | uint8_t opcode; |
| 25 | uint8_t ss_code; |
| 26 | uint8_t ussd_text[MAX_LEN_USSD_STRING + 1]; |
| 27 | uint8_t transaction_id; |
| 28 | uint8_t invoke_id; |
| 29 | }; |
| 30 | |
| 31 | int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len, |
| 32 | struct ss_request *request); |
Holger Hans Peter Freyther | 00cb570 | 2010-10-09 01:47:15 +0800 | [diff] [blame] | 33 | |
Holger Hans Peter Freyther | c64970e | 2010-10-18 16:56:43 +0200 | [diff] [blame] | 34 | struct msgb *gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const char *text); |
Holger Hans Peter Freyther | 55aea50 | 2010-09-30 18:30:41 +0800 | [diff] [blame] | 35 | struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text); |
| 36 | struct msgb *gsm0480_create_notifySS(const char *text); |
Neels Hofmeyr | bc1d758 | 2016-11-26 15:21:15 +0100 | [diff] [blame] | 37 | struct msgb *gsm0480_create_ussd_notify(int level, const char *text); |
| 38 | struct msgb *gsm0480_create_ussd_release_complete(void); |
Holger Hans Peter Freyther | 55aea50 | 2010-09-30 18:30:41 +0800 | [diff] [blame] | 39 | |
| 40 | int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id); |
| 41 | int gsm0480_wrap_facility(struct msgb *msg); |
Neels Hofmeyr | 25774b9 | 2016-11-26 15:21:05 +0100 | [diff] [blame] | 42 | |
| 43 | struct gsm48_hdr *gsm0480_l3hdr_push(struct msgb *msg, uint8_t proto_discr, |
| 44 | uint8_t msg_type); |