Uživatelská funkce OnReceivedSMS()
Uživatelská funkce OnNotification()
Uživatelská funkce OnShutdown()
Při spuštění uživatelského skriptu je po provedení všech potřebných inicializací zavolána funkce OnInit. Jako parametr dostává tři proměnné, které musí nainicializovat.
AppName |
Do této proměnné musí uživatelský skript zapsat své jméno (jméno, pod kterým byl přidán do systému). |
ServerName |
Sem musí aplikace zadat jméno serveru MobilChange, se kterým chce pracovat. Lokální server (počítač, na němž aplikace běží) se označuje prázdným řetězcem (""). Ve stávající verzi sem nemá smysl zadávat nic jiného, než prázdný řetězec. |
IddleTime |
Zde musí skript zapsat, jak často má být volána funkce OnIddle. Čas se zadává v milisekundách, doporučené minimum je 5000, maximum 60000. Při ukončování činnosti UMS.Taskmanageru se po tuto dobu čeká na ukončení skriptové aplikace. Proto nenastavujte příliš vysokou hodnotu, aby ukončení Taskmanageru netrvalo příliš dlouho. |
(návratová |
Textový řetězec "OK", pokud je vše v pořádku, Pokud uživatelský kód vrátí "ERROR", je skript ukončen a zrestartován. |
Zde je tedy ukázka kompletní funkce OnInit():
Function OnInit( AppName, ServerName, IddleTime ) AppName = "pizza" ' application "pizza" ServerName = "" ' local server IddleTime = 10000 ' 10 seconds, recommended ' There can be done additinal initialization tasks OnInit = "OK" ' return status End Function |
Upozornění: Uvnitř OnInit() NELZE použít funkce MobilChange.SendSMS/SendSMSEx - ještě není nainicializováno vše potřebné pro odeslání SMS.
Jakmile je skriptové aplikace doručena nějaká SMS, je zavolána uživatelská funce OnReceivedSMS(). Ta dostává informace o SMS ve svých třech parametrech. Nicméně tato funkce je zde jen pro zpětnou kompatibilitu se staršími verzemi Mobilchange - preferovaná cesta je používat novou funkci OnNotification(), která rovněž dostává informace o došlých SMS a navíc dostává více informací o zprávě.
Upozornění: Funkce musí být implementována.
FromNumber |
Telefonní číslo odesilatele v mezinárodním formátu. |
TimeReceived |
Čas příchodu SMS jako textový řetězec ve formátu YYYY/MM/DD hh:mm:ss |
MessageBody |
Text přišlé SMS zprávy. |
(návratová |
Textový řetězec "OK", pokud je vše v pořádku, Pokud uživatelský kód vrátí "ERROR", je skript ukončen a zrestartován. SMS zůstává ve frontě a po restartu bude skriptu znovu předána. |
Ukázka kompletní funkce OnReceivedSMS() v uživatelské aplikaci Pizza. Odpovídá na přijatou SMS a do odpovědi vloží text původní SMS.
Function OnReceivedSMS( FromNumber, TimeReceived, MessageBody ) Dim rc
MXLog "Working on received SMS..."
MXLog "Sending reply..." rc = MobilChange.SendSMS( FromNumber, "PIZZA SERVICE: You have ordered pizza -" + MessageBody + "- from phone number " + FromNumber + ".", True, Empty, Empty, Empty, Empty,True,True ) MXLog "MobilChange.SendSms() = " & rc If rc <> "OK" Then MXLog "ERROR: " + MobilChange.LastError End If
OnReceivedSMS = "OK" ' return status End Function |
Jakmile je skriptové aplikace doručena nějaká SMS, potvrzení o odeslání, (ne)doručení atd., je zavolána uživatelská funce OnNotification() a jsou jí předány tyto parametry:
MessageType |
Typ události. Možné hodnoty: •sent_ok_wait - Čeká na doručenku. •sent_ok - Zpráva odeslána, Doručenka nevyžadována. •sent_err_send - Chyba při odesílání. •e_nosms - Uživatel nemá právo odeslat zprávu. •e_norule - Nenalezeno pravidlo pro odeslání. •e_dailycounter - Uživatel překročil svůj denní limit ceny odeslaných SMS. •e_monthlycounter - Uživatel překročil svůj měsíční limit ceny odeslaných. •sms e_linecounter - Uživatel překročil denní limit počtu SMS linky. •e_norule - Neplatné telefonní číslo (prázdný řetězec). •e_createusersp - Nelze vytvořit uživatele - chyba v uložené proceduře. •e_createuser - Nelze vytvořit uživatele, jelikož je to zakázáno v nastavení MobilChange. •e_expired - Vypršela doba platnosti zprávy. •e_invalidpdu - Chyba při parsování PDU. • e_drtimeout - Doručenka nepřišla v časovém limitu: SMS byla odesláno do SMS centra a SMS centrum SMS přijalo, ale do konfigurací daného limitu nepřišla doručenka ani nedoručenka. •e_confirmtimeout - Potvrzení ze SMSC nepřišlo v časovém limitu. SMS byla odesláno do SMS centra, ale SMS centrum do stanoveného limitu přijetí SMS nepotvrdila. •sent_ok_dr - Přijata doručenka. •sent_err_ndr - Přijata nedoručenka. •e_postponed - Odeslání odloženo (např. dvě sms na stejné číslo rychle za sebou - druhá bude pozdržena). •e_reroute - Zpráva k přesměrování, nepodařilo se odeslat. Například síťová chyba při odesílání požadavku do SMS centra. SMS centrum SMS vůbec nedostalo. •rcv_sms - Příchozí zpráva. •e_multipart - Nedošly všechny dílky příchozí vícedílné zprávy v požadovaném čase. |
||||||||||||||||||||||||||||||||||||||||||
Attr |
Kolekce atributů oznámení, jedná se o instanci objektu FxExtObj.DSVariantCol. Kolekce může obsahovat tyto položky:
|
||||||||||||||||||||||||||||||||||||||||||
(návratová |
Textový řetězec "OK", pokud je vše v pořádku, Pokud uživatelský kód vrátí "ERROR", je skript ukončen a zrestartován. SMS zůstává ve frontě a po restartu bude skriptu znovu předána. |
Tato funkce je preferována oproti funkce OnReceived(), protože má více parametrů. Její implementace však není povinná.
Funkce OnIddle() je volána systémem tehdy, pokud nejsou po zadanou dobu (nastavuje uživatel ve funkci OnInit() žádné přijaté zprávy. Je určena například k odesílání zpráv o stavu zařízení, výpisů z databází atd.
(návratová |
Textový řetězec "OK", pokud je vše v pořádku, Pokud uživatelský kód vrátí "ERROR", je skript ukončen a zrestartován. |
Ukázka funkce OnIddle():
Function OnIddle ' There can be done anything... OnIddle = "OK" ' return status End Function |
Funkce OnShutdown() je volána systémem při ukončení služby UMS.TaskManager, například tedy při shutdownu počítače. Umožňuje uzavřít databázová spojení, smazat pracovní soubory.
(návratová |
Textový řetězec "OK", pokud je vše v pořádku, Pokud uživatelský kód vrátí "ERROR", je skript ukončen a zrestartován. |
Ukázka funkce OnShutdown():
Function OnShutdown ' There can be done anything... OnShutdown = "OK" ' return status End Function |