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