Protokol GDEP

Podporované typy a verzie zariadení  
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol GDEP (Game Data Exchange Protocol) je implementovaný vo verzii 2.4 (aktuálne k 05/2006). Protokol slúži na posielanie a prijímanie SMS a MMS správ, spracovanie WAP požiadaviek a hranie SMS hier.
Protokol je postavený na štandardoch TCP, HTTP (resp. HTTPS) a XML. Účastníkmi komunikácie sú GAP server (GAme Platform) na strane Orange a aplikácia (D2000 KOM proces).
Implementácia v D2000 podporuje nasledovné správy protokolu:

Tab. č. 1

SprávaSmerPopis
HELLOKOM->GAPPrihlasovanie sa (meno+heslo) ku GAP platforme pri nadväzovaní spojenia.
INQUIRE_LINKKOM->GAP
GAP->KOM
Testovanie funkčnosti spojenia pri dlhšej dobe nečinnosti.
INQ_RSPKOM->GAP
GAP->KOM
Odpoveď na INQUIRE.
RECEIVE (sms)GAP->KOMPrijatie SMS správy od GAP servera.
RCV_RSP (sms)KOM->GAPPotvrdenie prijatia SMS správy D2000 KOM procesom.
SEND (sms)KOM->GAPPoslanie SMS správy.
SND_RSP (sms)GAP->KOMPotvrdenie prijatie SMS správy GAP serverom.
ACCEPTEDGAP->KOMPotvrdenie prijatie SMS alebo MMS správy SMS/MMS centrom.
ACC_RSPKOM->GAPOdpoveď D2000 KOM procesu na správu ACCEPTED.
RECEIPT (sms)GAP->KOMPotvrdenie prijatie SMS správy koncovým užívateľom.
REC_RSPKOM->GAPOdpoveď D2000 KOM procesu na správu RECEIPT.
BYKOM->GAPUkončenie spojenia zo strany D2000 KOM procesu.
BY_RSPGAP->KOMOdpoveď GAP servera na správu BY.
NAKGAP->KOMOdmietnutie neprípustnej správy.

Nasledovné správy protokolu NIE SÚ v aktuálnej verzii implementované:

Tab. č. 2

SprávaSmerPopis
RECEIVE (wap)GAP->KOMPrijatie WAP požiadavky od GAP servera.
RCV_RSP (wap)KOM->GAPPotvrdenie prijatia WAP požiadavky D2000 KOM procesom.
RECEIVE (mms-xml)GAP->KOMPrijatie MMS správy od GAP servera.
RCV_RSP (mms-xml)KOM->GAPPotvrdenie prijatia MMS správy D2000 KOM procesom.
SEND (mms-xml)KOM->GAPPoslanie MMS správy.
SND_RSP (mms-xml)GAP->KOMPotvrdenie prijatie MMS správy GAP serverom.
RECEIPT (mms)GAP->KOMPotvrdenie prijatie MMS správy koncovým užívateľom.
SCOREKOM->GAPZmena skóre hráča.
SCO_RSPGAP->KOMOdpoveď GAP servera na správu SCORE.
NICKKOM->GAPSpráva prezývok (nickov) hráča: vytváranie, rušenie, pridávanie, mazanie a hľadanie.
NICK_RSPGAP->KOMOdpoveď GAP servera na správu NICK.

Konfigurácia komunikačnej linky


Kategória komunikačnej linky: TCP/IP-TCP
TCP  Parametre:

  • Host: String max. 80 znakov – meno servera vo formáte INET (meno alebo číselná adresa a.b.c.d).
  • Port: Číslo TCP portu (1 až 65535).
  • Číslo linky: Nepoužité, zadajte ľubovoľné číslo.

Poznámka: Protokol GDEP je postavený nad HTTP alebo HTTPS protokolom. D2000 KOM proces neobsahuje HTTPS komunikáciu - táto je riešená modulárne pomocou programu stunnel. Program stunnel je schopný zabaliť do SSL vrstvy klientskú aj serverovskú časť komunikácie. Keďže GDEP protokol vyžaduje na oboch stranách (GAP server aj D2000 KOM) implementáciu klienta aj servera, je nutné spustiť dva stunnel procesy:

  • jeden v serverovskom móde, ktorý bude čakať na pripojenie sa GAP servera a po spracovaní SSL vrstvy dáta prepošle na dohodnutý port, na ktorom čaká D2000 KOM ako GDEP server (viď parameter Server Port),
  • ďalší v klientskom móde, ktorý čaká na dohodnutom porte. K nemu sa pripojí D2000 KOM (klientska časť) a po zabalení dát do SSL vrstvy ich stunnel pošle na zadefinovaný cieľový počítač a port (serverovský port GAP servera). Preto bude v parametri Host zrejme uvedený localhost a v parametri Port uvedený port, na ktorom čaká stunnel proces v klientskom móde.


Konfigurácia komunikačnej stanice


Komunikačný protokol: GDEP
Adresa stanice: nepoužitá

Poznámka: Na linke musí byť PRESNE JEDNA komunikačná stanica.


Parametre protokolu stanice

Môžu byť zadané nasledovné parametre protokolu stanice:

Tab. č. 3

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
RD
Relogin DelayČakanie pred pokusom o znovupripojenie sa ku GAP serverusec10
TKI
TCP KeepInit optionKeepInit nastavenie TCP protokolu.-False
CE
Station Communication ErrorPočet neúspešných pokusov o pripojenie sa, po ktorých stanica prechádza do stavu StCOMERR.-1
HE
Station Hard ErrorPočet neúspešných pokusov o pripojenie sa, po ktorých stanica prechádza do stavu StHARDERR.-3
U
User NameUžívateľské meno na prihlásenie sa ku GAP serveru.--
P
UserPasswordHeslo na prihlásenie sa ku GAP serveru.--
HH
HTTP HostIP adresa alebo meno servera uvádzané v HTTP requeste.--
HP
HTTP PortPort servera uvádzaný v HTTP requeste.-0
SP
Server PortPort, na ktorom počúva KOM ako server.-1000
TSI
Timeout Send InquireTimeout, po ktorom KOM pošle INQUIRE správu (0=vypnuté).sec90
TRI
Timeout Receive Inq_RspTimeout, do ktorého KOM očakáva INQ_RSP (odpoveď na INQUIRE).sec10
TRA
Timeout Receive AcceptTimeout, po ktorom vyhlási KOM proces správu za timeoutovanú (úroveň potvrdenia 2), ak dovtedy nepríde správa ACCEPTED.sec10
TRR
Timeout Receive ReceiptTimeout, po ktorom vyhlási KOM proces správu za timeoutovanú (úroveň potvrdenia 3), ak dovtedy nepríde správa RECEIPT.sec60
K1
H1
P1
K2
H2
P2
KOM Name 1
Host Address 1
Port Number 1
KOM Name 2
Host Address 2
Port Number 2
Pri nasadení v redundantnom systéme D2000 (dva procesy D2000 KOM): ak sa meno počítača, na ktorom beží proces D2000 KOM zhoduje s parametrom K1 (resp. K2), pri pripájaní sa na GAP server bude HELLO správa obsahovať voliteľné parametre host a port s hodnotami H1 a P1 (resp. H2 a P2). Takto GAP vie, na ktorý z dvoch procesov D2000 KOM sa má pripojiť.

Konfigurácia meraných bodov


Merané body sú definované svojou adresou, ktorá musí zodpovedať adrese uvedenej v nasledujúcich tabuľkách. Názvy meraných bodov sa môžu líšiť a sú uvedené iba kvôli odvolávke na ne v ďalšom texte.

Príjem SMS správ: Po príjme SMS správy sa nastavia hodnoty nasledovných meraných bodov (pokiaľ sú body nakonfigurované).

Tab. č. 4

AdresaTypNázov boduPopis
1TxtORcv_Id

64-bitové ID prijatej SMS správy (správa RECEIVE). Po spracovaní správy aplikáciou treba zápisom do tohto meraného bodu oznámiť KOM procesu, že môže potvrdiť prijatie správou RCV_RSP a zároveň sprístupniť aplikácii ďalšiu SMS správu (pokiaľ čaká vo fronte).
[message sequence ID on the Game Platform (64-bit number displayed decimally in ASCII format). It is used for duplicate receipt detection when a session has been re-established after the connection failure.]

2TxtIRcv_Serv_IdParameter serv_id prijatej správy.
[service ID that this message belongs to.]
3TxtIRcv_AppAddrParameter appaddr prijatej správy.
[destination number. It can be short or long number dedicated to the service (External Application). It is identification of the game. It is never encrypted. ]
4TxtIRcv_AppAddrTypeAtribút type parametra appaddr.
5TxtIRcv_MsisdnParameter msisdn prijatej správy.
[source number. Can be encrypted, see the type attribute.]
6TxtIRcv_MsisdnTypeAtribút type parametra msisdn.
7CiRcv_EmployeeParameter employee prijatej správy.
[if application have enabled mark of employee, then element employee has value
  0 – if source MSISDN is NOT employee
  1 – if source MSISDN is employee]
8CiRcv_DcsParameter dcs prijatej správy.
[parameter data_coding of the GDEP protocol (DCS) [SMPP PS v3.4]. (8-bit integer defined in the ASCII). Default = 0.]
9CiRcv_EsmParameter esm prijatej správy.
[parameter esm of the SMPP protocol (DCS) [SMPP PS v3.4]. (8-bit integer defined in the ASCII). Default = 0.]
10TxtIRcv_Recv_DateParameter receive_date prijatej správy.
[time of receive SMS to SMS center.]
11TxtIRcv_CodingAtribút coding parametra content.
[type of coding in the element content. Currently used are:
  text ASCII text,
  base64 content is coded by code base64 – this is used for binary data.]
12TxtIRcv_ContentParameter content prijatej správy.
[nothing but data. Data sent by the subscriber to the External Application (SMS).]
13TxtIRcv_MsgPartParameter msg_part prijatej správy (trojica ref_num/seg_num/tot_seg).
[ref_num - contain a originator generated reference number so that a segmented short message may be reassembled into a single original message
seg_num - sequence number of particular message within the concatenated message
tot_seg - indicating the total number of fragments]


Posielanie SMS správ: Pri posielaní SMS správy je potrebné nastaviť hodnoty nasledovných meraných bodov (pokiaľ sú body nakonfigurované). Správa sa pošle až po nastavení hodnoty meraného bodu Snd_AppDefId.
Značka (o) uvedená pri meranom bode znamená, že bod je voliteľný (nemusí byť nakonfigurovaný, pretože GDEP protokol tento atribút uvádza ako nepovinný).

Tab. č. 5

AdresaTypNázov boduPopis
101TxtOSnd_Serv_IdParameter serv_id odosielanej správy.
[service ID that this message belongs to.]
102TxtOSnd_Rcv_Msg_Id (o)Parameter rcv_msg_id odosielanej správy.
[ID of received message (RECEIVE) that this message is a response to]
103TxtOSnd_AppAddrParameter appaddr odosielanej správy.
[source number. It can be either short or long (MSISDN) number assigned to the service.]
104CoSnd_AppAddrType (o)Atribút type parametra appaddr.
105TxtOSnd_MsisdnParameter msisdn odosielanej správy.
[destination number. In case of a mobile telephone number, it can be encrypted. In case of a short number, the destination number is the short number only.
Can be encrypted, the type is present in the type attribute.]
106CoSnd_MsisdnType (o)Atribút type parametra msisdn.
107TxtOSnd_BillMsisdn (o)Parameter billmsisdn odosielanej správy.
[MSISDN to which the message will be billed (this tag is only used with specific applications, where the billed subscriber is not the recipient of the message. This option must be approved at the Game Platform by agreement with the marketing dept.)
Can be encrypted, the type is present in the type attribute.]
108CoSnd_BillType (o)Atribút type parametra billmsisdn.
109CoSnd_Flags (o)Parameter flags odosielanej správy.
[32-bit numbers displayed decimally in ASCII format. Flags are combined with OR binary function. Unused bits are reserved.
SMS_FLAG_RECEIPT bit 1 - delivery receipt requested
SMS_FLAG_REPLACE bit 2 - SM replacement requested on SIM card position under bits 4-6
SMS_FLAG_POSITION bit 4-6 - SIM position for SM replacement
position range: from 1 to 7, 0 is unused]
110TxtOSnd_Expiration (o)Parameter expiration odosielanej správy.
[validity period of the SM in the GSM time encoding (i.e. YYMMDDhhmmsst), or the character „-", if not defined]
111TxtOSnd_Delivery (o)Parameter delivery odosielanej správy.
[delivery time of the SM in the GSM time encoding (i.e. YYMMDDhhmmsst), or the character „-", if not defined.]
112TxtOSnd_BillKeyParameter billkey odosielanej správy.
[billing key, 4 characters long string consisting of (0..9) and (A .. Z). Each application will have 4 keys to be used in this field]
113TxtOSnd_Evbill_Id (o)Parameter evbill-id odosielanej správy.
[service identifier in the event billing in case this type of billing method should be used.]
114TxtOSnd_EvbillIdSeq (o)Parameter evbill-id-seq odosielanej správy.
[service identifier in the event billing in case this type of billing method should be used.]
115CoSnd_Dcs (o)Parameter dcs odosielanej správy.
[parameter data_coding of the SMPP protocol (DCS) [SMPP PS v3.4]. (8-bit integer defined in the ASCII). Default = 0.]
116CoSnd_Esm (o)Parameter esm odosielanej správy.
[parameter esm of the SMPP protocol (DCS) [SMPP PS v3.4]. (8-bit integer defined in the ASCII). Default = 0.]
117TxtOSnd_Score (o)Parameter score odosielanej správy.
[game is sending score for the subscriber with – MSISDN. Format:
+score – Game Platform adds this score value to the daily counter
-score – Game Platform subtracts this score value from the daily counter
score – Game Platform replaces the daily counter by this score value
(daily counter is parameter, which is bind to MSISDN, nick, game and day. This counter will be changed only by GDEP protocol)]
118TxtOSnd_ScoreNick (o)Atribút nick parametra score.
[– if this attribute will be used it will define the particularly used nick of the subscriber defined by MSISDN. Score will update the daily counter for this MSISDN and nick. If this attribute will not be used daily counter for MSISDN and default value nick="" will be used.]
119TxtOSnd_ScoreFinish (o)Atribút finished parametra score.
[if this attribute will be used (with the any value, default value will be empty string ""), the Game Platform will add the new issue to the table C_SCORE, where will be add each player so many time how many will finish the game successfully. Use this attribute only after successful finishing of the game by the player.]
120TxtOSnd_CodingParameter content odosielanej správy.
[type of coding in the element content
Currently used are:
text ASCII text base64 content is coded by code base64 – this is used for binary data.]
121TxtOSnd_ContentParameter content odosielanej správy.
[nothing but data. Data sent by the External Application (SMS) to the subscriber.]
122TxtOSnd_Category (o)Parameter category odosielanej správy.
[element can be used to specify category of content that is to be sent, character string 1-64 bytes long]
123Co
Snd_AppDefId
Ľubovolné aplikáciou vygenerované kladné celé číslo, ktoré (pre aplikáciu) definuje zasielanú SMS správu. Potvrdenia o doručení resp. nedoručení SMS-ky budú obsahovať toto číslo (meraný bod Rsp_AppDefId), pokiaľ KOM proces nebol medzitým reštartovaný.
130TxtISnd_64bit_Id64-bitový identifikátor, ktorý nastaví KOM proces pri posielaní SMS správy. Keďže GDEP protokol pracuje s unikátnym 64-bitovým identifikátorom (jeho hodnotu inicializuje GDEP server pri pripojení sa D2000 KOM procesu), potvrdenia o doručení sú vnútorne označené týmto 64-bitovým ID-čkom. Pokiaľ bol KOM proces reštartovaný, po nábehu môžu prísť od GAP servera potvrdenia o doručení správ, ktoré boli poslané ešte pred reštartom. V takom prípade D2000 KOM proces nastaví Snd_AppDefId na hodnotu -1 a aplikácia môže spárovať potvrdenia podľa nastaveného Snd_64bit_Id.


Príjem potvrdení o doručení SMS správ: Po prijatí správ ACCEPTED, RECEIPT a NAK sa nastavia hodnoty nasledovných bodov (ako posledný sa nastaví Rsp_AppDefId).

Tab. č. 6

AdresaTypNázov boduPopis
131Co
Rsp_AppDefId
Príslušné Snd_AppDefId poslanej SMS správy alebo -1, ak správa s takýmto číslom nebola nájdená v zozname odoslaných a nepotvrdených správ (napr. po reštarte KOM procesu).
Po spracovaní potvrdenia o doručení musí aplikácia meraný bod Rsp_AppDefId nastaviť na 0, čo spôsobí jednak poslanie potvrdenia GAP serveru (správa ACC_RSP resp. REC_RSP, podľa toho, aké na akú správu D2000 KOM odpovedá) a jednak D2000 KOM môže nastaviť ďalšiu hodnotu, pokiaľ má v zásobníku ďalšie potvrdenia o doručení.
132CiRsp_ErrNoČíslo chyby: 0- bez chyby, ďalšie možné hodnoty viď norma [1].
Ak bola prijatá správa RECEIPT, tak Rsp_ErrNo kopíruje hodnotu parametra state s výnimkou hodnôt 2 (delivered) a 6 (accepted) - vtedy je správa považovaná za úspešne doručenú a Rsp_ErrNo=0.
133CiRsp_CnfTypeÚroveň potvrdenia správy:
úroveň 1 - správa bola odoslaná GAP serveru (Rsp_ErrN=0) alebo nastala chyba pri posielaní (Rsp_ErrNo=-1)
úroveň 2 - prišla správa ACCEPTED (s nulovým alebo nenulovým chybovým kódom, ktorého hodnota je v Rsp_ErrNo) alebo vypršal timeout Timeout Receive Accept (Rsp_ErrNo=-2)
úroveň 3 - prišla správa RECEIPT alebo vypršal timeout Timeout Receive Receipt (Rsp_ErrNo=-3)
134TxtIRsp_ErrDescTextový popis chyby (pri vypršaní timeoutu) alebo hodnota err_type pri negatívnej správe ACCEPT.
[err_type - type of error, one of SMSC, MMSC, INTERNAL
  • SMSC means the error occurred in SMSC
  • MMSC means the error occurred in MMSC
  • INTERNAL means the error occurred in GAP
]
135TxtI
Rsp_Serv_Id
64-bitové ID poslanej SMS správy, ku ktorej sa toto hlásenie vzťahuje.
Hodnoty nasledujúcich bodov sú platné iba pri prijatí správy RECEIPT.
136TxtIRec_Submit_DateParameter submit_date správy RECEIPT.
[date of delivery of sended SMS message to SMS center]
137TxtIRec_Done_DateParameter done_date správy RECEIPT.
[date of delivery of sended SMS message to destination]
138
CiRec_StateParameter state správy RECEIPT.
[state of the message, can have the following values (as described in [2] SMPP 3.4, chapter 5.2.28 message_state):
  • 1 – enroute - the message is in enroute state
  • 2 – delivered – the message is delivered to destiantion
  • 3 – expired – message validity period has expired
  • 4 – deleted – message has been deleted
  • 5 – undeliverable – message is undeliverable
  • 6 – accepted – message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service)
  • 7 – unknown – message is in invalid state
  • 8 – rejected – message is in rejected state
]
Poznámka: V prípade, že je prijatá správa RECEIPT so state=1 (prechodný enroute stav), ešte sa raz čaká s timeoutom Timeout Receive Receipt na prijatie správy RECEIPT s finálnym stavom.


139


TxtI


Rec_MsisdnParameter msisdn správy RECEIPT.
[msisdn that the message is delivered to. It can be encrypted.]
140TxtIRec_MsisdnTypeAtribút type parametra msisdn.


Identifikácia stavu komunikácie:

Tab. č. 7

AdresaTypNázov boduPopis
199Di
GAP_SrvConnected
Informácia o tom, či je GAP server pripojený na D2000 KOM proces. Po rozpade komunikácie môže nastať situácia, že D2000 KOM sa pripojí na GAP server, ale GAP server sa spätne nepripojí na D2000 KOM proces. Pokiaľ napr. do minúty po obnovení spojenia na GAP server (stav stanice je StON) je hodnota bodu GAP_SrvConnected FALSE, odporúčame vyskúšať reštart procesu D2000 KOM a ak to nepomôže, kontaktovať zodpovedných za GAP server.


Atribút type (Rcv_AppAddrType, Rcv_MsisdnType) môže nadobúdať nasledovné hodnoty (číselné hodnoty sú zadávané pri posielaní SMS správ, textové hodnoty prichádzajú pri prijímaní SMS správ):

Tab. č. 8

HodnotaČísloPopis
msisdn1Číslo mobilného užívateľa v tvare +421905123456.
alias2Zašifrované číslo účastníka (šifrovanie vykonáva GAP server), ktorého výsledkom je 32-znakový reťazec (hexa kód). Príklad šifrovania: 421905014940 -> 2F8E47BCAAAB12CA3E19B7DCC2DFDE84.
ow3Norma [1] neuvádza bližšiu definíciu, ale tento typ sa používa iba pri MMS správach.

Literatúra


[1] Game Data Exchange Protocol Specification 2.4 (poskytnuté spoločnosťou Orange Slovensko, a.s.)
[2] SMPP PS v3.4 (Short Message Peer to Peer Protocol Specification v3.4)

Zmeny a úpravy


-

Revízie dokumentu


  • Ver. 1.0 – 2. máj 2006: implementácia protokolu

Súvisiace stránky:

0 komentárov

Nie ste prihlásený. Akékoľvek zmeny, ktoré vykonáte, sa označia ako anonymné. Ak už máte svoj účet, pravdepodobne sa budete chcieť prihlásiť .