GAMMU-SMSD-TABLES(7)

JMÉNO

gammu-smsd-tables - popis tabulek pro databázové služby gammu-smsd(1)

POPIS
gammu-smsd(1) podporuje několik služeb. Aktuálně použitá je zvolená v konfiguračním souboru gammu-smsdrc(5). Jednotlivé služby jsou popsány v samostatných manuálových stránkách. Tato manuálová stránka popisuje strukturu databáze a potřebné tabulky. Několik SMS démonů může sdílet jedinou databázi. Pokud v jejich nastavení nezadáte PhoneID, všechny jsou brány jako rovnocenné a kterýkoliv z nich může odeslat odchozí zprávu. Pokud nastavíte PhoneID a použijete ho při vkládání zprávy to tabulky outbox (gammu-smsd-inject(1) to dělá), každý SMS démon bude mít vlastní frontu odchozích zpráv.

  Přijímání zpráv
Přijaté zprávy jsou ukládány v tabulce inbox.

  Odesílání zpráv
Zprávy k odeslání jsou čteny z tabulky outbox a jejich případné další části z tabulky outbox_multipart.

  Popis tabulek

daemons
    Informace o běžících démonech.

gammu
    Tato tabulka obsahuje jedinou hodnotu - verzi databázového schématu. V části HISTORIE se můžete podívat, co se měnilo.

inbox
    Tabulka, ve které jsou ukládány přijaté zprávy. Popis sloupců: UpdatedInDB (timestamp)
    kdy byl tento záznam aktualizován ReceivingDateTime (timestamp)
    kdy byla přijata SMS Text (text)
    zakódovaný text zprávy (pro všechny SMS) SenderNumber (varchar(20))
    číslo odesílatele SMS Coding (enum('Default_No_Compression', 'Unicode_No_Compression', '8bit', 'Default_Compression', 'Unicode_Compression'))
    kódování textu SMS UDH (text)
    zakódovaná hlavička uživatelských dat (UDH) SMSCNumber (varchar(20))
    číslo centra zpráv (SMSC) Class (integer)
    třída SMS nebo -1 (0 je jen pro zobrazení na displej, 1 je normální SMS) TextDecoded (varchar(160))
    dekódovaný text (pro zprávy ve výchozí abecedě nebo unicode) ID (integer unsigned)
    identifikátor zprávy (pro použití v externích aplikacích) RecipientID (text)
    který démon Gammu přidal tento záznam Processed (enum('false', 'true'))
    můžete použít pro označení, jestli byla zpráva zpracována nebo nebyla

outbox
    Zprávy určené k odeslání by měly být uloženy v této tabulce. Pokud zpráva obsahuje více částí, další části jsou uloženy v tabulce outbox_multipart. Popis sloupců: UpdatedInDB (timestamp)
    kdy byl tento záznam aktualizován InsertIntoDB (timestamp)
    kdy byla zpráva vložena do databáze SendingDateTime (timestamp)
    nastavte na libovolnou hodnotu, pokud chcete vynutit poslání zprávy i po naplánovaném čase Text (text)
    Text SMS zakódovaný šestnáctkově ve správné znakové sadě. Pokud chcete použít pole TextDecoded, nechte zde NULL (nebo prázdný text). DestinationNumber (varchar(20))
    číslo příjemce Coding (enum('Default_No_Compression', 'Unicode_No_Compression', '8bit', 'Default_Compression', 'Unicode_Compression'))
    kódování textu SMS UDH (text)
    User Data Header ((hlavička uživatelských dat) zapsaná v šestnáckové soustavě, která bude použita při vytváření zprávy. Pokud není uvedena, zpráva bude odeslána jako čistě textová. Class (integer)
    třída SMS nebo -1 (0 je normální SMS, 1 jen pro zobrazení na displej) TextDecoded (varchar(160))
    text zprávy v "člověkem čitelné" podobě ID (integer unsigned)
    číslo SMS/SMS sekvence Prosím uvědomte si, že toto číslo musí být unikátní i pro tabulku sentitems, takže opětovné používání ID zpráv nemusí být nutně dobrý nápad. MultiPart (enum('false','true'))
    informace, zda se v tabulce outbox_multipart nacházejí další části této SMS zprávy RelativeValidity (integer)
    platnost SMS zakódovaná podle GSM specifikací SenderID (text)
    která instance SMSD by měla odesílat tuto sekvenci SendingTimeOut (timestamp)
    použito SMSD pro vlastní účely DeliveryReport (enum('default','yes','no'))
    při výchozí hodnotě bude nastavení doručenky záviset na nastavení SMSD, při yes se doručenka vynutí CreatorID (text)
    identifikace odesílajícího démona, musí odpovídat PhoneID v konfiguraci SMSD, aby SMSD zprávu zpracoval

outbox_multipart
    Data pro odchozí zprávy, které jsou z více částí. Popis sloupců: ID (integer unsigned)
    Text (text)
    Coding (enum('Default_No_Compression', 'Unicode_No_Compression', '8bit', 'Default_Compression', 'Unicode_Compression'))
    UDH (text)
    Class (integer)
    TextDecoded (varchar(160))
    ID (integer unsigned)
    mají stejný význam jako v tabulce outbox SequencePosition (integer)
    kolikátá zpráva je tato v SMS sekvenci (začíná se od 2, první část je uložena v tabulce outbox).

phones
    Informace o připojených telefonech. Tato tabulka je pravidelně obnovována a můžete v ní najít informace jako stav baterie nebo síla signálu. Popis sloupců: ID (text)
    hodnota PhoneID UpdatedInDB (timestamp)
    kdy byl tento záznam aktualizován InsertIntoDB (timestamp)
    kdy byl tento záznam vytvořen (kdy byl telefon připojen) TimeOut (timestamp)
    kdy tento záznam expiruje Send (boolean)
    v současné době vždy true Receive (boolean)
    v současné době vždy true IMEI (text)
    IMEI telefonu Client (text)
    jméno klienta, obvykle text Gammu a verze Battery (integer)
    stav baterie v procentech (nebo -1 pokud není znám) Signal (integer)
    úrověň signálu v procentech (nebo -1 pokud není znám) Sent (integer)
    Počet odeslaných SMS zpráv (SMSD tento čítač nenuluje, takže může přetéct). Received (integer)
    Počet přijatých SMS zpráv (SMSD tento čítač nenuluje, takže může přetéct).

sentitems
    Informace o odeslaných (a neodeslaných) zprávách a jejich stavu. Při zapnutých doručenkách je stav zprávy aktualizován při jejím přijetí. Popis sloupců: UpdatedInDB (timestamp)
    kdy byl tento záznam aktualizován InsertIntoDB (timestamp)
    kdy byla zpráva vložena do databáze SendingDateTime (timestamp)
    kdy byla zpráva odeslána DeliveryDateTime (timestamp)
    Čas přijetí doručenky (pokud jsou zapnuty). Status (enum('SendingOK', 'SendingOKNoReport', 'SendingError', 'DeliveryOK', 'DeliveryFailed', 'DeliveryPending', 'DeliveryUnknown', 'Error'))
    Stav odesílání zprávy. SendingError znamená, že telefonu se nepodařilo zprávu odeslat, Error indikuje jinou chybu při zpracovávání zprávy. - SendingOK - Zpráva byla odeslána, čeká se na doručenku.
    - SendingOKNoReport - Zpráva byla odeslána bez požadavku na doručenku.
    - SendingError - Odesílání selhalo.
    - DeliveryOK - Doručenka dorazila a potvrdila úspěšné doručení.
    - DeliveryFailed - Doručenka dorazila a nahlásila chybu při doručování.
    - DeliveryPending - Doručenka dorazila a obsahuje informaci o zpořděném doručení.
    - DeliveryUnknown - Doručenka dorazila, ale informuje o neznámém stavu.
    - Error - Došlo k nějaké chybě při odesílání (obvykle se jedná o chybu SMSD). StatusError (integer)
    Stav z doručenky, hodnoty jsou definovány ve specifikaci GSM 03.40.sekce 9.2.3.15 (TP-Status). Text (text)
    text SMS zprávy v šestnáctkovém formátu DestinationNumber (varchar(20))
    číslo adresáta SMS Coding (enum('Default_No_Compression', 'Unicode_No_Compression', '8bit', 'Default_Compression', 'Unicode_Compression'))
    kódování textu SMS UDH (text)
    hlavička uživatelských dat (UDH) v šestnáctkovém formátu SMSCNumber (varchar(20))
    číslo servisního centra (SMSC), které odeslalo zprávu Class (integer)
    třída SMS nebo -1 (0 je normální SMS, 1 jen pro zobrazení na displej) TextDecoded (varchar(160))
    text zprávy v "člověkem čitelné" podobě ID (integer unsigned)
    SMS ID SenderID (text)
    která instance SMSD odeslala tuto sekvenci SequencePosition (integer)
    pořadí SMS v SMS sekvenci TPMR (integer)
    reference zprávy, podle specifikací GSM RelativeValidity (integer)
    platnost SMS zakódovaná podle GSM specifikací CreatorID (text)
    zkopírováno CreatorID z tabulky outbox, odpovídá PhoneID

pbk SMSD tuto tabulku v současné době nepoužívá, je zde jen pro použití v aplikaci.

pbk_groups
    SMSD tuto tabulku v současné době nepoužívá, je zde jen pro použití v aplikaci.

HISTORIE
Historie verzí schématu: 11 - položky pro ukládání textu zpráv již nejsou omezeny na 160 znaků, ale může se jednat o libovolně dlouhé texty (1.25.92) 10 - DeliveryDateTime je nyní NULL pokud zpráva nebyla doručena, přidáno několik indexů. 9 - přidána počítadla přijatých a odeslaných zpráv do tabulky phones 8 - přidána tabulka phones 7 - do tabulek přidáno CreatorID (obsahuje PhoneID, pokud je nastaveno)

PŘÍKLAD

  Vytváření tabulek
SQL skripty potřebný pro vytvoření všech tabulek pro většinu databází je obsažen v dokumentaci Gammu (docs/sql). Ta také obsahuje pár PHP skriptů pro práci s databází. Například vytvoření tabulek pro SQLite vypadá následovně:

    sqlite3 smsd.db < docs/sql/sqlite.sql

  Vkládání zpráv pomocí SQL
Pro posílání zpráv buď použijte gammu-smsd-inject(1), které za vás udělá veškerou magii, nebo můžete vložit zprávy ručně. Nejjednodušší je vložit obyčejnou textovou zprávu:

    INSERT INTO outbox (
        DestinationNumber,
        TextDecoded,
        CreatorID,
        Coding
    ) VALUES (
        '800123465',
        'This is a SQL test message',
        'Program',
        'Default_No_Compression'
    );

  Vkládání dlouhých zpráv pomocí SQL
Vkládání dlouhých zpráv složených z více částí je trochu více komplikované. Musíte také vytvořit UDH hlavičku a uložit ji šestnáctkově do pole UDH. Pro dlouhou textovou zprávu, UDH začíná s 050003 následované jedním bajtem s referenčním číslem zprávy (můžete sem uložit cokoliv, ale mělo by to být jiné pro každou zprávu, v příkladě je použito D3), bajtem s celkovým počet zpráv (v příkladě 02) a bajtem určujícím pořadí aktuální zprávy (01 pro první zprávu, 02 pro druhou, atd.). Například dlouhá textová zpráva skládající se z dvou částí může vypadat následovně:

    INSERT INTO outbox (
        CreatorID,
        MultiPart,
        DestinationNumber,
        UDH,
        TextDecoded,
        Coding
    ) VALUES (
        'Gammu 1.23.91',
        'true',
        '123465',
        '050003D30201',
        'Mqukqirip ya konej eqniu rejropocejor hugiygydewl tfej nrupxujob xuemymiyliralj. Te tvyjuh qaxumur ibewfoiws zuucoz tdygu gelum L ejqigqesykl kya jdytbez',
        'Default_No_Compression'
    )
    INSERT INTO outbox_multipart (
        SequencePosition,
        UDH,
        Class,
        TextDecoded,
        ID,
        Coding
    ) VALUES (
        2,
        '050003D30202',
        'u xewz qisubevumxyzk ufuylehyzc. Nse xobq dfolizygqysj t bvowsyhyhyemim ovutpapeaempye giuuwbib.',
        <ID_OF_INSERTED_RECORD_IN_OUBOX_TABLE>,
        'Default_No_Compression'
    )

DALŠÍ INFORMACE
Databázové služby: gammu-smsd-mysql(7), gammu-smsd-pgsql(7), gammu-smsd-dbi(7) gammu-smsd(1), gammu-smsdrc(5), gammu(1), gammurc(5)

AUTOR
gammu-smsd a tuto manuálovou stránku napsal Michal Čihař <michal@cihar.com>.

COPYRIGHT
Copyright © 2009 Michal Čihař a další autoři. Licence GPLv2: GNU GPL verze 2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
Tento program je svobodný software; můžete jej šířit a modifikovat. Není poskytována ŽÁDNÁ ZÁRUKA, v rozsahu jaký je povolen zákonem.

HLÁŠENÍ CHYB
Prosím hlašte chyby na <http://bugs.cihar.com>.