Portál AbcLinuxu, 4. května 2025 23:08

Práce s K300i přes IrDA i kabel (gammu, wammu)

20.7.2007 12:27 | Přečteno: 2051× | Výběrový blog

Motivací je pracovat (zjišťovat informace, posílat SMS, zálohovat, apod.) s mobilním telefonem (Sony Ericsson K300i) pomocí počítače (notebook HP Compaq nx6110 s GNU/Linuxem Ubuntu 7.04) a programů gammu a wammu.

Předesílám, že výpisy jsou z důvodu zachování soukromí upraveny a mohou být zkráceny. Telefonní i jiná čísla a jména jsou smyšlená.

Nainstalujeme program gammu.

mermar@gati:~$ sudo apt-get install gammu

Pro informaci uvádím jeho verzi.

mermar@gati:~$ gammu --version
Warning: No configuration file found!
[Gammu version 1.09.00 built 22:16:54 Dec  6 2006 in gcc 4.1]

Vytvoříme konfigurační soubor. Ten obsahuje dvě různé konfigurace. První je pro práci přes IrDA, druhá pro práci přes datový kabel. Vždy když budeme spouštět příkaz gammu, zvolíme patřičnou konfiguraci pomocí čísla. Zápis příkazu tedy bude vypadat gammu N --any-command, kde N je číslo konfigurace. Čísluje se od 0, nula se neuvádí v konfiguračním souboru a nemusí se uvádět ani za příkazem gammu - jde o implicitní volbu.

# ~/.gammurc
# Sony Ericsson K300i

[gammu]
# For IrDA.
# Info, phonebook, todo should work.
port = /dev/ircomm0
connection = irdaobex
model = seobex

[gammu1]
# For data cable (USB-RS232).
# Info, sms, phonebook, enhancedphonebook, calendar, todo, call, logo, ringtone should work.
port = /dev/ttyUSB0
connection = at115200

Dokumentace ke gammu je bohužel velmi špatná. U většiny přepínačů je uveden pouze jejich název, bez vysvětlení co dělá. V podstatě zcela chybí příklady použití. A daly by se vytknout ještě další věci. Gammu toho umí víc, než je zde popsáno. Zmiňuji pouze věci, které mi fungují nebo považuji za užitečné. Předesílám, že získání poznámek (gammu 1 --getallnotes) nefunguje a snaha o stažení kalendáře (gammu 1 --getallcalendar) skončí segfaultem. Příkazy, které zde uvádím u propojení kabelem a nejsou u propojení přes IrDA, přes IrDA nefungují.

Práce s telefonem přes IrDA

Zprovozníme IrDA. Identifikujeme telefon.

mermar@gati:~$ gammu 0 --identify
Manufacturer  : Sony Ericsson
Model         : unknown (K300i)
Firmware      : prgCXC125978_EU_1_KR (20R2BA010TTTT00)
IMEI          : 123456789098765

Zjistíme aktuální stav telefonu.

mermar@gati:~$ gammu 0 --monitor 1
Press Ctrl+C to break...
Entering monitor mode...

Enabling info about incoming SMS : Function not implemented. Help required.
Enabling info about incoming CB  : Function not implemented. Help required.
Enabling info about calls        : Function not implemented. Help required.
Enabling info about USSD         : Function not implemented. Help required.

Phone phonebook   : Used 049, Free 461
ToDos             : Used 1, Free 379
Calendar          : Used 0, Free 379

Leaving monitor mode...

Stáhneme z telefonu TODO list (obsahuje jedinou položku).

mermar@gati:~$ gammu 0 --getalltodo
Press Ctrl+C to break...
Location     : 1
Note type    : Memo (Miscellaneous)
Priority     : Medium
Text         : "Otestovat sit."
Silent alarm : Thu 14 Jun 2007 08:00:00 AM 
Private      : No
LUID         : "00010000006E"

Vypíšeme telefoní seznam z telefonu.

mermar@gati:~$ gammu 0 --getallmemory ME
Press Ctrl+C to break...
Memory ME, Location 1
First name       : "Ondrej"
Mobile number    : "+420777765432"
LUID             : "00000000002D"

Memory ME, Location 2
First name       : "Dalibor"
Mobile number    : "+420777234567"
LUID             : "00000000001F"

Práce s telefonem přes datový kabel

Zapojíme datový kabel. Identifikujeme telefon.

mermar@gati:~$ gammu 1 --identify
Manufacturer  : Sony Ericsson
Model         : K300i (AAB-1021071-BV)
Firmware      : R2BA010
IMEI          : 123456789098765
Product code  : AAB-1021071-BV
SIM IMSI      : 098765432123456

Zjistíme aktuální stav telefonu (gammu s tímto přepínačem pokaždé vytuhne).

mermar@gati:~$ gammu 1 --monitor 1
Press Ctrl+C to break...
Entering monitor mode...

Enabling info about incoming SMS : No error.
Enabling info about incoming CB  : No error.
Enabling info about calls        : No error.
Enabling info about USSD         : No error.

SIM phonebook     : Used 051, Free 169
Dialled numbers   : Used 002, Free 028
Received numbers  : Used 001, Free 029
Missed numbers    : Used 000, Free 030
Phone phonebook   : Used 049, Free 461
ToDos             : Used 1, Free 379
Calendar          : Used 0, Free 379
Battery level     : 74 percent
Battery capacity  : 531 mAh
Battery temp.     : 23 C
Phone temp.       : 25 C
Battery voltage   : 3880 mV
Charge voltage    : 0 mV
Charge current    : 0 mA
Phone current     : -6 mA
Charge state      : powered from battery
Signal strength   : -113 dBm
Network level     : 0 percent
SIM SMS status    : 7 used, 0 unread, 25 locations
Phone SMS status  : 47 used, 0 unread, 85 locations
Network state     : home network
Network           : 123 45 (Vodafone CZ, Czech Republic), LAC AAFA, CID 0000

Zjistíme informace o síti

mermar@gati:~$ gammu 1 --networkinfo
Network state     : home network
Network           : 123 45 (Vodafone CZ, Czech Republic), LAC AAFA, CellID 0000

Vypíšeme informace o filesystému.

mermar@gati:~$ gammu 1 --getfilesystemstatus
Free memory: 2786304, total memory: 0 Used by: Images: 1073578, Sounds: 0, Themes: 0

Vypíšeme strukturu filesystému (stejný výstup jako gammu 1 --getfilesystem flatall).

mermar@gati:~$ gammu 1 --getfilesystem flat
    Folder ""
     |-- Folder "Pictures"
     |    |-- "ethernet.png"
     |    |-- "hora.jpg"
     |    |-- "dla.png"
     |    |-- "Skate Jump.svgz"
     |    |-- "Sony Ericsson.gif"
     |    |-- Folder "My"
     |    |    |-- "0734645348.jpg"
     |    |    |-- "0345037148.jpg"
     |    |-- Folder "camera_semc"
     |    |    |-- "Picture(1).jpg"
     |    |    |-- "Picture(3).jpg"
     |    |    |-- "Picture(2).jpg"
     |-- Folder "Sounds"
     |    |-- "Thinking.imy"
     |    |-- "Greeting.mid"
     |    |-- "MusicDJ Demo.mid"
     |    |-- "Sony Ericsson.mid"
     |    |-- "Train.mp3"
     |-- Folder "Themes"
     |    |-- "Lunarspots.thm"
     |-- Folder "Videos"
     |    |-- Folder "camera"
     |-- Folder "Other"
     |    |-- "file1."

Phone memory: 0 bytes (free 2786304 bytes, used -2786304 bytes)
Used by: Images: 1073578, Sounds: 0, Themes: 0

Zjistíme datum a čas, které jsou nastaveny v telefonu.

mermar@gati:~$ gammu 1 --getdatetime
Phone time is Fri 13 Jul 2007 05:39:35 PM 
Time format is 24 hours
Date format is YY MM DD, date separator is -

Nastavíme datuma a čas telefonu podle datumu a času v počítači.

mermar@gati:~$ gammu 1 --setdatetime
Setting time in phone to the time on PC.

Vypíšeme nastavení alarmu telefonu. Vrátí čas jednorázového alarmu, je-li nastaven. Není-li nastaven jednorázový alarm, vrátí čas opakovaného alarmu. Vrací chybně "Every day" bez ohledu na skutečné nastavení.

mermar@gati:~$ gammu 1 --getalarm
Date: Every day
Time: 05:15

Nastavíme jednorázový alarm na 05:10.

mermar@gati:~$ gammu 1 --setalarm 05 10

Stáhneme z telefonu TODO list (obsahuje jedinou položku).

mermar@gati:~$ gammu 1 --getalltodo
Press Ctrl+C to break...
Location     : 1
Note type    : Memo (Miscellaneous)
Priority     : Medium
Text         : "Otestovat sit."
Silent alarm : Thu 14 Jun 2007 08:00:00 AM 
Private      : No
LUID         : "00010000006E"

Pošleme SMS s textem Toto je text SMS. na číslo +420777123456. Přepínačem -report vyžádáme Delivery report. Přepínačem -validity MAX nastavíme Validity period na Network maximum. SMS nezůstane uložena v paměti telefonu ani na SIM kartě.

mermar@gati:~$ echo "Toto je text nasi zkusebni SMS." | gammu 1 --sendsms TEXT +420777123456 -report -validity MAX
If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=0

Stáhneme všechny SMS z paměti telefonu i ze SIM karty. Protože SMS může být hodně, je výstup přesměrován do souboru downloaded_sms.

mermar@gati:~$ gammu 1 --getallsms > downloaded_sms

Zazálohujeme všechny SMS z paměti telefonu i ze SIM karty do souboru backup_sms.

mermar@gati:~$ gammu 1 --backupsms backup_sms
Delete each sms after backup (yes/no/ALL/ONLY/NONE) ? no
Backup sms from folder "Inbox" (SIM) (yes/no/ALL/ONLY/NONE) ? yes
Backup sms from folder "Outbox" (SIM) (yes/no/ALL/ONLY/NONE) ? yes
Backup sms from folder "Inbox" (yes/no/ALL/ONLY/NONE) ? yes
Backup sms from folder "Outbox" (yes/no/ALL/ONLY/NONE) ? yes

Vypíšeme všechny adresáře s SMS.

mermar@gati:~$ gammu 1 --getsmsfolders
1. "                         Inbox", SIM memory, Inbox folder
2. "                        Outbox", SIM memory
3. "                         Inbox", phone memory, Inbox folder
4. "                        Outbox", phone memory

Vymažeme všechny SMS z adresáře Outbox.

mermar@gati:~$ gammu 1 --deleteallsms 2
Deleting SMS from "Outbox" folder: 

Vytočíme telefonní číslo +420777123456 (zavoláme na toto číslo).

mermar@gati:~$ gammu 1 --dialvoice +420777123456

Vypíšeme volané hovory.

mermar@gati:~$ gammu 1 --getallmemory DC
Press Ctrl+C to break...
Memory DC, Location 1
General number   : "+420777123456"
Name             : "Petr"
Date and time    : Fri 12 Jul 4007 04:45:00 PM 

Memory DC, Location 2
General number   : "+420776654321"
Name             : "Michal"
Date and time    : Thu 02 Jan 3970 11:00:00 AM

Vypíšeme zmeškané hovory (žádné nebyly).

mermar@gati:~$ gammu 1 --getallmemory MC
Press Ctrl+C to break...

Vypíšeme přijaté hovory.

mermar@gati:~$ gammu 1 --getallmemory RC
Press Ctrl+C to break...
Memory RC, Location 1
General number   : "+420777123456"
Name             : "Petr"
Date and time    : Fri 14 Jul 4007 04:10:00 PM

Vypíšeme telefoní seznam ze SIM karty.

mermar@gati:~$ gammu 1 --getallmemory SM
Press Ctrl+C to break...
Memory SM, Location 1
General number   : "*77"
Name             : "Oskarlinka"

Memory SM, Location 2
General number   : "+420466367890"
Name             : "Jiri"

Vypíšeme telefoní seznam z telefonu.

mermar@gati:~$ gammu 1 --getallmemory ME
Press Ctrl+C to break...
Memory ME, Location 1
First name       : "Ondrej"
Mobile number    : "+420777765432"
LUID             : "00000000002D"

Memory ME, Location 2
First name       : "Dalibor"
Mobile number    : "+420777234567"
LUID             : "00000000001F"

Práce v GUI

Pro práci v GUI slouží program wammu. Zvládá/nezvládá stejné věci jako gammu. Pokud při prvním spuštění nenalezne vlastní konfigurační soubor, použije konfigurační soubor gammu, což je velmi příjemná vlastnost.

Nainstalujeme wammu.

mermar@gati:~$ sudo apt-get install wammu

Nejprve musíme nastavit způsob připojení ve Wammu -> Settings na záložce Connection (nastavení můžeme opsat z konfiguračního souboru gammu). Potom telefon připojíme Phone -> Connect. Pak můžeme poměrně intuitivně pracovat. Platí stejně jako u gammu, že různé způsoby připojení určují co vše můžeme provádět a snaha o stažení kalendáře skončí rovněž s chybou (a tudíž nefunguje ani Backups -> Save).

Některé zkratky

SIM = Subscriber Identity Module
SMS = Short Message Service
EMS = Enhanced Messaging
MMS = Multimedia Messaging

Obrázky

Obrázek 1 - okno programu wammu při připojení K300i přes IrDA.
Obrázek 2 - okno programu wammu při připojení K300i přes datový kabel.

Odkazy

Blog OBEX a K300i přes IrDA i kabel
Blog IrDA port (USB dongles)
gammu
wammu

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Práce s K300i přes IrDA i kabel (gammu, wammu), obrázek 1 Práce s K300i přes IrDA i kabel (gammu, wammu), obrázek 2

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (5) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

20.7.2007 13:45 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Práce s K300i přes IrDA i kabel (gammu, wammu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Jako autorovi Gammu/Wammu mi to nedá nereagovat :-).
První je pro práci přes IrDA,
Pokud tam použiješ připojení at, bude ti fungovat to samé jako přes kabel.
Dokumentace ke gammu je bohužel velmi špatná. U většiny přepínačů je uveden pouze jejich název, bez vysvětlení co dělá.
Viděl si man stránku?
získání poznámek (gammu 1 --getallnotes) nefunguje
Telefon to AFAIK nepodporuje.
snaha o stažení kalendáře (gammu 1 --getallcalendar) skončí segfaultem
Kde je bug report? I když stejně první co ti řeknu je upgradovat gammu ;-).
Není-li nastaven jednorázový alarm, vrátí čas opakovaného alarmu.
Pokud je nastaveno víc alarmů, je potřeba zadat pozici, kterou chceš číst :-).
Vrací chybně "Every day" bez ohledu na skutečné nastavení.
Kde je bugreport? :-)
Nejprve musíme nastavit způsob připojení ve Wammu -> Settings na záložce Connection
Aktuální Wammu sdílí nastavení s Gammu a není potřeba konfigurovat dvakrát.
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
20.7.2007 17:49 Martin Merinsky | skóre: 16 | blog: free_sw_hw_info
Rozbalit Rozbalit vše Re: Práce s K300i přes IrDA i kabel (gammu, wammu)
Ad bugreporty. Podle tvých vlastních slov je první krok aktualizace na poslední stabilní verzi gammu. Aktualizaci provedu, až ji provede moje distribuce. Kompilovat nehodlám.

"Aktuální Wammu sdílí nastavení s Gammu a není potřeba konfigurovat dvakrát."

Říkáš to, co jsem napsal ("Pokud při prvním spuštění nenalezne vlastní konfigurační soubor, použije konfigurační soubor gammu, což je velmi příjemná vlastnost."). Reaguješ však na návod jak změnit způsob připojení mezi IrDA a kabelem (gammu N). Je nutné provést nastavení, jak jsem popsal.

"Pokud tam použiješ připojení at, bude ti fungovat to samé jako přes kabel."

Můžeš prosím uvést pozměněný konfigurační soubor? Nezdá se, že by mi to fungovalo.

"Telefon to AFAIK nepodporuje."

To vím, máš pravdu. Neuváděl jsem důvod.

"Viděl si man stránku?"

Ano viděl. Man stránka jako taková by možná stačila, ale nemůže nahrazovat uživatelskou dokumentaci. U velké části přepínačů je uveden pouze název, bez vysvětlení. Prakticky zcela chybí příklady použití. A pro důkaz nemusíme chodit daleko (budiž to i odpovědí na "Pokud je nastaveno víc alarmů, je potřeba zadat pozici, kterou chceš číst :-)."):
--getalarm
      Get alarm from phone

--setalarm hour minute
To je z té man stránky. Dokumentace na webu je shodného obsahu. Za prvé, i když jsou přepínače poměrně srozumitelné, měla by být jejich funkce alespoň jednou větou popsána. Za druhé, nikde není zmíněno, že je třeba zadat nějakou pozici, takže dokumentace nehovoří celou pravdu (a myslím, že jsem v dokumentaci zahlédl i místa, která jsou vyloženě špatně, ale nehodlám je znovu hledat). Za třetí, nikde není napsáno, jak se tento přepínač chová ("Vrátí čas jednorázového alarmu, je-li nastaven. Není-li nastaven jednorázový alarm, vrátí čas opakovaného alarmu."). Za čtvrté v dokumentaci by měly být uvedeny i příklady použítí tohoto přepínače. Bohužel, musím trvat na špatné dokumentaci. I když ti to možná jako autorovi programu nepřijde (protože ho znáš), já jako uživatel to tak vidím.

Až na těch několik chybiček považuji program za dobrý a tímto Ti děkuji.
23.7.2007 16:45 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Práce s K300i přes IrDA i kabel (gammu, wammu)
Ad bugreporty. Podle tvých vlastních slov je první krok aktualizace na poslední stabilní verzi gammu. Aktualizaci provedu, až ji provede moje distribuce. Kompilovat nehodlám.
Ok, ale bez nahlášení chyba nebude opravená nikdy :-).
Říkáš to, co jsem napsal ("Pokud při prvním spuštění nenalezne vlastní konfigurační soubor, použije konfigurační soubor gammu, což je velmi příjemná vlastnost."). Reaguješ však na návod jak změnit způsob připojení mezi IrDA a kabelem (gammu N). Je nutné provést nastavení, jak jsem popsal.
Právě že toho už není potřeba, Wammu nyní využívá přímo konfiguraci Gammu a stačí jen vybrat sekci, která se má použít.
Man stránka jako taková by možná stačila, ale nemůže nahrazovat uživatelskou dokumentaci.
Man stránka určitě je a bude hlavní zdroj informací. Na to psát několikaset stránkový manuál v docbooku prostě nemám čas. Nicméně dobrovolníci jsou vítáni :-).
Bohužel, musím trvat na špatné dokumentaci.
Toho jsem si vědom. Koneckonců pro další verzi už se aspoň man stránka automaticky generuje z nápovědy, takže nehrozí neaktuálnost parametrů v man stránce. Dokumentace byla v Gammu vždy na posledním místě a od té doby co jsem vedoucím projektu se to snažím trochu změnit. Nicméně zatím došlo hlavně na dokumentaci API, která běžné uživatele asi moc nezajímá.
20.7.2007 18:33 mrzout | skóre: 11 | blog: mrzutej
Rozbalit Rozbalit vše Re: Práce s K300i přes IrDA i kabel (gammu, wammu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Gammu je fajn.I když jsem po nějaké době zjistil, že mi při odesílání zkracuje dlouhé SMS (neposílá jich více) a z manuálu nevyčetl jak na to (ok, hledal jsem jen fulltextem, číst to celé nebudu).

Wammu mi přijde nefunkční. Při pokusu stáhnout třeba TODO to jde do kolen (nebo to byl možná ten kalendář, už je to déle).

Ono ale popravdě, dokud nepůjde synchronizace s nějakým PIN systémem, je to jen na hraní. Zatím jsem to využil jen k hledání fulltextem v SMS a skriptíku na jejich odesílání. A běžnému odesílání z konzole, je to pro mne mnohem rychlejší.
Hlasuj pro zavedení OpenID na Abclinuxu!
23.7.2007 16:08 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Práce s K300i přes IrDA i kabel (gammu, wammu)
Gammu je fajn.I když jsem po nějaké době zjistil, že mi při odesílání zkracuje dlouhé SMS (neposílá jich více) a z manuálu nevyčetl jak na to (ok, hledal jsem jen fulltextem, číst to celé nebudu).
gammu --sendsms EMS +420800123456 -text "Jakykoliv text"
Wammu mi přijde nefunkční. Při pokusu stáhnout třeba TODO to jde do kolen (nebo to byl možná ten kalendář, už je to déle).
Mě funguje a dokud tu chybu nikdo nenahlásí, tak prostě nemůže být opravena.
Ono ale popravdě, dokud nepůjde synchronizace s nějakým PIN systémem, je to jen na hraní. Zatím jsem to využil jen k hledání fulltextem v SMS a skriptíku na jejich odesílání. A běžnému odesílání z konzole, je to pro mne mnohem rychlejší.
Od toho je OpenSync.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.