blob: deac322555531aa9145a694c60cff0e31fab824e [file] [log] [blame]
Sylvain Munaut12ba7782014-06-16 10:13:40 +02001#pragma once
Holger Hans Peter Freyther55aea502010-09-30 18:30:41 +08002
Tobias Engel419684e2012-03-08 13:31:52 +01003#include <osmocom/core/defs.h>
Pablo Neira Ayuso83419342011-03-22 16:36:13 +01004#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 Freyther55aea502010-09-30 18:30:41 +08007
Holger Hans Peter Freyther00cb5702010-10-09 01:47:15 +08008#define MAX_LEN_USSD_STRING 31
9
Tobias Engel419684e2012-03-08 13:31:52 +010010/* deprecated */
Holger Hans Peter Freyther00cb5702010-10-09 01:47:15 +080011struct ussd_request {
Harald Welte1f87d752012-09-07 12:07:10 +020012 char text[MAX_LEN_USSD_STRING + 1];
Holger Hans Peter Freyther00cb5702010-10-09 01:47:15 +080013 uint8_t transaction_id;
14 uint8_t invoke_id;
15};
16
Tobias Engel419684e2012-03-08 13:31:52 +010017/* deprecated */
Holger Hans Peter Freytherdaa653f2010-10-11 07:56:06 +020018int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len,
Tobias Engel419684e2012-03-08 13:31:52 +010019 struct ussd_request *request) OSMO_DEPRECATED("Use gsm0480_decode_ss_request() instead");
20
21struct 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
29int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len,
30 struct ss_request *request);
Holger Hans Peter Freyther00cb5702010-10-09 01:47:15 +080031
Holger Hans Peter Freytherc64970e2010-10-18 16:56:43 +020032struct msgb *gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const char *text);
Holger Hans Peter Freyther55aea502010-09-30 18:30:41 +080033struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text);
34struct msgb *gsm0480_create_notifySS(const char *text);
35
36int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id);
37int gsm0480_wrap_facility(struct msgb *msg);