Phone control
(→D-Bus) |
|||
Line 13: | Line 13: | ||
===Make a phone call=== | ===Make a phone call=== | ||
- | dbus-send --system --dest=com.nokia.csd.Call --type=method_call --print-reply | + | dbus-send --system --dest=com.nokia.csd.Call --type=method_call --print-reply /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:'$1' uint32:0 |
- | + | ||
With this fantastic command you can make a phone call from the command line. Change $1 to whatever number you want, or if you put this in a shell script, run it and use the number you want to call as the option, ala: | With this fantastic command you can make a phone call from the command line. Change $1 to whatever number you want, or if you put this in a shell script, run it and use the number you want to call as the option, ala: | ||
Line 34: | Line 33: | ||
===End current phone call=== | ===End current phone call=== | ||
- | dbus-send --system --dest=com.nokia.csd.Call --print-reply | + | dbus-send --system --dest=com.nokia.csd.Call --print-reply /com/nokia/csd/call com.nokia.csd.Call.Release |
- | + | ||
This will release/end/hangup/reject the current call (or possibly all calls if more then one call is active - needs testing to verify behavior when more then 1 call active) or do nothing if no calls are active. | This will release/end/hangup/reject the current call (or possibly all calls if more then one call is active - needs testing to verify behavior when more then 1 call active) or do nothing if no calls are active. | ||
Line 46: | Line 44: | ||
===New e-mail=== | ===New e-mail=== | ||
- | dbus-send | + | dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.MailTo string:mailto: |
- | ===Send and receive e-mail | + | ===Send and receive e-mail=== |
- | dbus-send | + | dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive |
===Get IMEI=== | ===Get IMEI=== | ||
Line 55: | Line 53: | ||
===Open link in browser=== | ===Open link in browser=== | ||
- | dbus-send --system --type=method_call --dest= | + | dbus-send --system --type=method_call --dest=com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser.load_url string:"google.com" |
===dbus-send-im-here=== | ===dbus-send-im-here=== | ||
- | dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string: | + | dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string:'I'm here' |
===Lock (secure) the device=== | ===Lock (secure) the device=== | ||
Line 67: | Line 65: | ||
===dbus-send-media-play=== | ===dbus-send-media-play=== | ||
- | dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string: | + | dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:'file:///$1' |
===Pause what's currently playing=== | ===Pause what's currently playing=== | ||
Line 99: | Line 97: | ||
===dbus-send-pause-panucci=== | ===dbus-send-pause-panucci=== | ||
- | dbus-send --type= | + | dbus-send --type=method_call --dest=org.panucci.panucciInterface /panucciInterface org.panucci.panucciInterface.playPause |
===Reboot=== | ===Reboot=== | ||
- | dbus-send --system --type=method_call --dest= | + | dbus-send --system --type=method_call --dest=com.nokia.mce --print-reply "/com/nokia/mce/request" com.nokia.mce.request.req_reboot |
This is same as rebooting from power key menu (needs uncommenting in certain XML file to appear) and has been identified as insecure way to reboot the device (no file system synchronization, etc.). Better command is to simply enter "reboot" in terminal. | This is same as rebooting from power key menu (needs uncommenting in certain XML file to appear) and has been identified as insecure way to reboot the device (no file system synchronization, etc.). Better command is to simply enter "reboot" in terminal. | ||
Line 114: | Line 112: | ||
===Shutdown=== | ===Shutdown=== | ||
- | dbus-send --system --type=method_call --dest= | + | dbus-send --system --type=method_call --dest=com.nokia.mce --print-reply "/com/nokia/mce/request" com.nokia.mce.request.req_shutdown |
See warning at reboot dbus call (needs testing). | See warning at reboot dbus call (needs testing). | ||
===Turn loudspeaker on=== | ===Turn loudspeaker on=== | ||
- | dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker. | + | dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_loudspeaker_off |
===Turn loudspeaker off=== | ===Turn loudspeaker off=== | ||
- | dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker. | + | dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_loudspeaker_on |
===Show dashboard=== | ===Show dashboard=== | ||
- | dbus-send | + | dbus-send /com/nokia/hildon_desktop com.nokia.hildon_desktop.exit_app_view |
===Lock screen and keys=== | ===Lock screen and keys=== | ||
Line 154: | Line 152: | ||
===Set profiles=== | ===Set profiles=== | ||
- | dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string: | + | dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:'general' |
Change "general" to "silent" if needed. | Change "general" to "silent" if needed. |
Revision as of 09:11, 22 March 2010
Please be aware that the recommended way to use the phone functionality is Telepathy: |
D-Bus
These D-Bus commands can be run from terminal or as shell scripts. Useful for scheduling events with fcron, executing from Desktop Command Execution Widget, startup events, install scripts, etc. They should be run as:
run-standalone.sh SCRIPT.sh run-standalone.sh dbus-send COMMAND
This is important to set up the environment correctly otherwise they may barf. If run as user "user" this is not needed.
Also note that most commands don't need "--print-reply" option. Those that don't need it should be tested without it and this page should be edited.
Make a phone call
dbus-send --system --dest=com.nokia.csd.Call --type=method_call --print-reply /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:'$1' uint32:0
With this fantastic command you can make a phone call from the command line. Change $1 to whatever number you want, or if you put this in a shell script, run it and use the number you want to call as the option, ala:
dbus-send-call 15555551234
Python:
import dbus def place_call(number): bus = dbus.SystemBus() csd_call = dbus.Interface(bus.get_object('com.nokia.csd', '/com/nokia/csd/call'), 'com.nokia.csd.Call') csd_call.CreateWith(str(number), dbus.UInt32(0))
Open Phone application
dbus-send --print-reply --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:'rtcom-call-ui'
End current phone call
dbus-send --system --dest=com.nokia.csd.Call --print-reply /com/nokia/csd/call com.nokia.csd.Call.Release
This will release/end/hangup/reject the current call (or possibly all calls if more then one call is active - needs testing to verify behavior when more then 1 call active) or do nothing if no calls are active.
Activate LEDs
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_activate string:PatternCommunicationIM
Deactivate LEDs
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_deactivate string:PatternCommunicationIM
New e-mail
dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.MailTo string:mailto:
Send and receive e-mail
dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive
Get IMEI
dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.SIM /com/nokia/phone/SIM/security Phone.Sim.Security.get_imei
Open link in browser
dbus-send --system --type=method_call --dest=com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser.load_url string:"google.com"
dbus-send-im-here
dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string:'I'm here'
Lock (secure) the device
dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:'com.nokia.mce' string:'/com/nokia/mce/request' string:'com.nokia.mce.request' string:'devlock_callback' uint32:'3'
Unlock the device
dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_close string:'com.nokia.mce' string:'/com/nokia/mce/request' string:'com.nokia.mce.request' string:'devlock_callback' uint32:'0'
dbus-send-media-play
dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:'file:///$1'
Pause what's currently playing
dbus-send --dest=com.nokia.osso_media_server /com/nokia/osso_media_server com.nokia.osso_media_server.music.pause
N900
dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.pause
Send notification (orange one line popup)
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'NOTIFICATION'
Send dialog notification (orange multi line popup requiring user interaction)
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:"QUESTION?" uint32:0 string:'OK'
Not sure what string "OK" does, but it is needed and can be anything.
Python:
import dbus def show_notification_dialog(message, mode="single"): bus = dbus.SystemBus() iface = dbus.Interface(bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications'), 'org.freedesktop.Notifications') if mode == "single": iface.SystemNoteInfoprint(message) elif mode == "multiline": iface.SystemNoteDialog(str(message), dbus.UInt32(0), 'Ok')
This function allows you to show notification either with multiline (on maemo pre-5 it will show a dialog with an "Ok" button) or single line (tiny notifications hiding automatically).
dbus-send-pause-panucci
dbus-send --type=method_call --dest=org.panucci.panucciInterface /panucciInterface org.panucci.panucciInterface.playPause
Reboot
dbus-send --system --type=method_call --dest=com.nokia.mce --print-reply "/com/nokia/mce/request" com.nokia.mce.request.req_reboot
This is same as rebooting from power key menu (needs uncommenting in certain XML file to appear) and has been identified as insecure way to reboot the device (no file system synchronization, etc.). Better command is to simply enter "reboot" in terminal.
dbus-send-regist-status
dbus-send --system --print-reply --type=method_call --dest='com.nokia.phone.net' /com/nokia/phone/net Phone.Net.get_registration_status
Connect (show change connection UI)
dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:false
If "boolean:true" at the end, one-line notification saying "No saved connections available" appears. Maybe affects more than that?
Shutdown
dbus-send --system --type=method_call --dest=com.nokia.mce --print-reply "/com/nokia/mce/request" com.nokia.mce.request.req_shutdown
See warning at reboot dbus call (needs testing).
Turn loudspeaker on
dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_loudspeaker_off
Turn loudspeaker off
dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_loudspeaker_on
Show dashboard
dbus-send /com/nokia/hildon_desktop com.nokia.hildon_desktop.exit_app_view
Lock screen and keys
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:locked
Unlock screen and keys
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:unlocked
Connect to specific saved connection
dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:IAP_ID uint32:0
IAP_ID is internet access point identifier and can be obtained with the following command:
gconftool -R /system/osso/connectivity/IAP
Find lines which matches /system/osso/connectivity/IAP/<IAP_ID>
If <IAP_ID> is a string (for GPRS connections as example, use double quotes in the command and replace @32@ by a space)
Keep in mind that phone has to be disconnected in order to connect via this call.
Disconnect internet
dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
Set phone radio mode
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:0
byte: 0=Dual, 1=2G, 2=3G
Set profiles
dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:'general'
Change "general" to "silent" if needed.
Enable cellular radio
dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:true
Disable cellular radio
dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false
GConf
Reset GPRS data counter
gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_rx_bytes gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_tx_bytes gconftool-2 -s /system/osso/connectivity/network_type/GPRS/gprs_reset_time --type=string $(date +%s)