Difference between revisions of "PmIpcDispatch"

From WebOS Internals
Jump to navigation Jump to search
(New page: schulman will flesh this out :-) 11:10 schulman: PmIpcDispatch phone tel.dial s=5551231414 s=5551231414 makes the phone call that number)
 
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
schulman will flesh this out :-)
+
== Usage ==
  
11:10 schulman: PmIpcDispatch phone tel.dial s=5551231414 s=5551231414 makes the phone call that number
+
Usage: PmIpcDispatch [OPTION...] INTERFACE CMD [CMD-PARAM...] [-o OUT_TYPE...]
 +
Usage: PmIpcDispatch [OPTION...] -x ALIAS [PARAM...]
 +
 +
PmIpcDispatch can be used for development testing
 +
  to send commands to a component that is a Palm IPC server.
 +
 +
Options:
 +
  -help    Show usage information
 +
  -helpx    Show alias usage information
 +
  -outex    Print outputs as shell export commands
 +
  -showt    Show time taken by IPC dispatch.
 +
  -t <n>    Specify timeout in seconds (default is no timeout)
 +
  -v        Turn on verbose output
 +
 +
Command parameters are specified as <DATA-TYPE>=<VALUE>.
 +
Output types are specified as <DATA-TYPE>.
 +
Data types:
 +
  B  | BOOL    => FALSE|TRUE
 +
  I8  | INT8    => <integer>
 +
  U8  | UINT8    => <integer>
 +
  I16 | INT16    => <integer>
 +
  U16 | UINT16  => <integer>
 +
  I32 | INT32    => <integer>
 +
  U32 | UINT32  => <integer>
 +
  S  | STRING  => <string>
 +
 +
WARNING: PmIpcLib will crash if the parameter types or output
 +
types passed are not correct! Use at your own risk!
 +
 
 +
 
 +
== Tips ==
 +
# Run the IPC server program (e.g. TelephonyInterfaceLayerCdma) in a console
 +
# Find the interface name for the server program in the DEBUG messages (e.g. "phone")
 +
# Use strings on the server program binary to find the IPC method names (e.g. "tel.dial")
 +
# Run the method without any parameters and at least one output string (e.g. PmIpcDispach phone tel.dial -o s)
 +
# Look at the WARNING before the server segfaults (ha!) and see what input parameters this method expects (e.g. [ss])
 +
# Guess what those strings should be (e.g. PmIpcDispatch phone tel.dial s=555123999 s=555123999 -o s) and see what happens.
 +
# Try more output parameters if you are not seeing the output you expect, once you get it wrong PmIpcDispatch will tell you what the actual output parameters are.
 +
 
 +
=== DEBUG output parameter type -> PmIpcDispatch parameter type ===
 +
* y -> i8
 +
* s -> s
 +
 
 +
 
 +
Many of the functions that look like they toggle something take "enable" and "disable" as a parameter.
 +
 
 +
== Limitations ==
 +
PmIpcDispatch can only take 6 parameters, some IPCs take more than 6 parameters (e.g. tel.sendsms).
 +
 
 +
== TelephonyInterfaceLayer IPCs ==
 +
From '>strings /usr/bin/TelephonyInterfaceLayerCdma | grep "tel\."
 +
 
 +
* tel.chargerstatusnotification
 +
* tel.enablingflightmodenotification
 +
* tel.flightmodenotification
 +
* tel.modemresetnotification
 +
* tel.chargerresetnotification
 +
* tel.networktimenotification
 +
* tel.nitzwithtimestamp
 +
* tel.callstatusnotification
 +
* tel.displayinfonotification
 +
* tel.otaspnotification
 +
* tel.newvoicemailnotification
 +
* tel.gpsstatechangenotification
 +
* tel.gpsmtfixrequestnotification
 +
* tel.gpsfixnotification
 +
* tel.audiomodemtuningnotification
 +
* tel.flightmode
 +
* tel.poweroffmodem
 +
* tel.getflightmode
 +
* tel.getradiotype
 +
* tel.charging
 +
* tel.getchargersetting
 +
* tel.getchargerstatus
 +
* tel.radiodebugmode
 +
* tel.getvoicemailnumber
 +
* tel.getdataconnectionstatus
 +
* tel.getvoiceprivacy
 +
* tel.getmsinfostring
 +
* tel.getfwcarrierdbinfo
 +
* tel.gethomenetworkname
 +
* tel.getnetworklist
 +
* tel.cancelgetnetworklist
 +
* tel.setnetwork
 +
* tel.setmodepreference
 +
* tel.getmodepreference
 +
* tel.getnetworkmodeselection
 +
* tel.getactivedatainterruptmode
 +
* tel.setactivedatainterruptmode
 +
* tel.resetradio
 +
* tel.gotodefaultstate
 +
* tel.enterprogrammode
 +
* tel.exitprogrammode
 +
* tel.getactivationinfo
 +
* tel.setactivationinfo
 +
* tel.restoreradionvdefaults
 +
* tel.getpdpprofile
 +
* tel.setpdpprofile
 +
* tel.getactivepdp
 +
* tel.setactivepdp
 +
* tel.getnetworkband
 +
* tel.setnetworkband
 +
* tel.getprovisioningstatus
 +
* tel.setphonelock
 +
* tel.getphonelock
 +
* tel.changephonelockpwd
 +
* tel.exittil
 +
* tel.activatetil
 +
* tel.sendrssi
 +
* tel.supportcharging
 +
* tel.getipcinterfaceversion
 +
* tel.getoperatorname
 +
* tel.setsystemtime
 +
* tel.getnetworkid
 +
* tel.suspend
 +
* tel.dial [input s=(phone number) s=(possibly also phone number)] [output s]
 +
* tel.endcall
 +
* tel.answercall
 +
* tel.forwardcalls
 +
* tel.getforwardcalls
 +
* tel.setforwardingstatus
 +
* tel.setcallwait
 +
* tel.getcallwait
 +
* tel.sendussd
 +
* tel.cancelussd
 +
* tel.sendussdresponse
 +
* tel.conferencecalls
 +
* tel.extractcall
 +
* tel.swapcalls
 +
* tel.senddtmf
 +
* tel.endemergencymode
 +
* tel.getdtmfduration
 +
* tel.setdtmfduration
 +
* tel.startcontinuousdtmf
 +
* tel.stopcontinuousdtmf
 +
* tel.setcallbarringstatus
 +
* tel.getcallbarringstatus
 +
* tel.changecallbarringpassword
 +
* tel.getclirsettings
 +
* tel.getclipsettings
 +
* tel.getcnapsettings
 +
* tel.getactiveline
 +
* tel.setactiveline
 +
* tel.sendflash
 +
* tel.mute
 +
* tel.getforwardcallsfromsim
 +
* tel.sendsms
 +
* tel.setsmsdelivery
 +
* tel.getsmsserviceoptions
 +
* tel.setsmsserviceoptions
 +
* tel.resetvoicemailcount
 +
* tel.gpsgetfix
 +
* tel.gpscancelfix
 +
* tel.gpsclearassistancedata
 +
* tel.gpslogging
 +
* tel.gpsmtfixresponse
 +
* tel.getcelllist
 +
* tel.getbsinfo
 +
* tel.getlocationprivacy
 +
* tel.setlocationprivacy
 +
* tel.getgpsmsassistedmode
 +
* tel.gpsinjectposition
 +
* tel.gpsgetstate
 +
* tel.setaudioprofile
 +
* tel.getaudioprofile
 +
* tel.setttymode
 +
* tel.getttymode
 +
* tel.setaudiomodemtuning
 +
* tel.getaudiomodemtuning
 +
* tel.getsupportedaudiodevices
 +
* tel.setvoiceprivacy
 +
* tel.setakey
 +
* tel.setprotocolrevision
 +
* tel.getevdodatamode
 +
* tel.setevdodatamode
 +
* tel.setloopbackmode
 +
* tel.getroamingmode
 +
* tel.setroamingmode
 +
* tel.getrtndisplayfields
 +
* tel.getcarrierid
 +
* tel.getdataadvancedfields
 +
* tel.setdataadvancedfields
 +
* tel.setmrd
 +
* tel.getcurrentnai
 +
* tel.settetheredmode
 +
* tel.gettetheredmode
 +
* tel.setdataextinfo
 +
* tel.getdataextinfo
 +
* tel.getomadmnode
 +
* tel.setomadmnode
 +
* tel.wapnotification
 +
* tel.newsmsnotification
 +
* tel.voiceprivacynotification
 +
* tel.newradiodebugdatanotification
 +
* tel.datastatusnotification
 +
* tel.dataregistrationnotification
 +
* tel.phonelockstatusnotification
 +
* tel.emergencymodenotification
 +
* tel.networkstatusnotification
 +
* tel.signalstrengthnotification
 +
* tel.dataconnectionnotification
 +
* tel.tetheredmodenotification

Latest revision as of 02:04, 3 February 2010

Usage

Usage: PmIpcDispatch [OPTION...] INTERFACE CMD [CMD-PARAM...] [-o OUT_TYPE...]
Usage: PmIpcDispatch [OPTION...] -x ALIAS [PARAM...]

PmIpcDispatch can be used for development testing
 to send commands to a component that is a Palm IPC server.

Options:
 -help     Show usage information
 -helpx    Show alias usage information
 -outex    Print outputs as shell export commands
 -showt    Show time taken by IPC dispatch.
 -t <n>    Specify timeout in seconds (default is no timeout)
 -v        Turn on verbose output

Command parameters are specified as <DATA-TYPE>=<VALUE>.
Output types are specified as <DATA-TYPE>.
Data types:
 B   | BOOL     => FALSE|TRUE
 I8  | INT8     => <integer>
 U8  | UINT8    => <integer>
 I16 | INT16    => <integer>
 U16 | UINT16   => <integer>
 I32 | INT32    => <integer>
 U32 | UINT32   => <integer>
 S   | STRING   => <string>

WARNING: PmIpcLib will crash if the parameter types or output
types passed are not correct! Use at your own risk!


Tips

  1. Run the IPC server program (e.g. TelephonyInterfaceLayerCdma) in a console
  2. Find the interface name for the server program in the DEBUG messages (e.g. "phone")
  3. Use strings on the server program binary to find the IPC method names (e.g. "tel.dial")
  4. Run the method without any parameters and at least one output string (e.g. PmIpcDispach phone tel.dial -o s)
  5. Look at the WARNING before the server segfaults (ha!) and see what input parameters this method expects (e.g. [ss])
  6. Guess what those strings should be (e.g. PmIpcDispatch phone tel.dial s=555123999 s=555123999 -o s) and see what happens.
  7. Try more output parameters if you are not seeing the output you expect, once you get it wrong PmIpcDispatch will tell you what the actual output parameters are.

DEBUG output parameter type -> PmIpcDispatch parameter type

  • y -> i8
  • s -> s


Many of the functions that look like they toggle something take "enable" and "disable" as a parameter.

Limitations

PmIpcDispatch can only take 6 parameters, some IPCs take more than 6 parameters (e.g. tel.sendsms).

TelephonyInterfaceLayer IPCs

From '>strings /usr/bin/TelephonyInterfaceLayerCdma | grep "tel\."

  • tel.chargerstatusnotification
  • tel.enablingflightmodenotification
  • tel.flightmodenotification
  • tel.modemresetnotification
  • tel.chargerresetnotification
  • tel.networktimenotification
  • tel.nitzwithtimestamp
  • tel.callstatusnotification
  • tel.displayinfonotification
  • tel.otaspnotification
  • tel.newvoicemailnotification
  • tel.gpsstatechangenotification
  • tel.gpsmtfixrequestnotification
  • tel.gpsfixnotification
  • tel.audiomodemtuningnotification
  • tel.flightmode
  • tel.poweroffmodem
  • tel.getflightmode
  • tel.getradiotype
  • tel.charging
  • tel.getchargersetting
  • tel.getchargerstatus
  • tel.radiodebugmode
  • tel.getvoicemailnumber
  • tel.getdataconnectionstatus
  • tel.getvoiceprivacy
  • tel.getmsinfostring
  • tel.getfwcarrierdbinfo
  • tel.gethomenetworkname
  • tel.getnetworklist
  • tel.cancelgetnetworklist
  • tel.setnetwork
  • tel.setmodepreference
  • tel.getmodepreference
  • tel.getnetworkmodeselection
  • tel.getactivedatainterruptmode
  • tel.setactivedatainterruptmode
  • tel.resetradio
  • tel.gotodefaultstate
  • tel.enterprogrammode
  • tel.exitprogrammode
  • tel.getactivationinfo
  • tel.setactivationinfo
  • tel.restoreradionvdefaults
  • tel.getpdpprofile
  • tel.setpdpprofile
  • tel.getactivepdp
  • tel.setactivepdp
  • tel.getnetworkband
  • tel.setnetworkband
  • tel.getprovisioningstatus
  • tel.setphonelock
  • tel.getphonelock
  • tel.changephonelockpwd
  • tel.exittil
  • tel.activatetil
  • tel.sendrssi
  • tel.supportcharging
  • tel.getipcinterfaceversion
  • tel.getoperatorname
  • tel.setsystemtime
  • tel.getnetworkid
  • tel.suspend
  • tel.dial [input s=(phone number) s=(possibly also phone number)] [output s]
  • tel.endcall
  • tel.answercall
  • tel.forwardcalls
  • tel.getforwardcalls
  • tel.setforwardingstatus
  • tel.setcallwait
  • tel.getcallwait
  • tel.sendussd
  • tel.cancelussd
  • tel.sendussdresponse
  • tel.conferencecalls
  • tel.extractcall
  • tel.swapcalls
  • tel.senddtmf
  • tel.endemergencymode
  • tel.getdtmfduration
  • tel.setdtmfduration
  • tel.startcontinuousdtmf
  • tel.stopcontinuousdtmf
  • tel.setcallbarringstatus
  • tel.getcallbarringstatus
  • tel.changecallbarringpassword
  • tel.getclirsettings
  • tel.getclipsettings
  • tel.getcnapsettings
  • tel.getactiveline
  • tel.setactiveline
  • tel.sendflash
  • tel.mute
  • tel.getforwardcallsfromsim
  • tel.sendsms
  • tel.setsmsdelivery
  • tel.getsmsserviceoptions
  • tel.setsmsserviceoptions
  • tel.resetvoicemailcount
  • tel.gpsgetfix
  • tel.gpscancelfix
  • tel.gpsclearassistancedata
  • tel.gpslogging
  • tel.gpsmtfixresponse
  • tel.getcelllist
  • tel.getbsinfo
  • tel.getlocationprivacy
  • tel.setlocationprivacy
  • tel.getgpsmsassistedmode
  • tel.gpsinjectposition
  • tel.gpsgetstate
  • tel.setaudioprofile
  • tel.getaudioprofile
  • tel.setttymode
  • tel.getttymode
  • tel.setaudiomodemtuning
  • tel.getaudiomodemtuning
  • tel.getsupportedaudiodevices
  • tel.setvoiceprivacy
  • tel.setakey
  • tel.setprotocolrevision
  • tel.getevdodatamode
  • tel.setevdodatamode
  • tel.setloopbackmode
  • tel.getroamingmode
  • tel.setroamingmode
  • tel.getrtndisplayfields
  • tel.getcarrierid
  • tel.getdataadvancedfields
  • tel.setdataadvancedfields
  • tel.setmrd
  • tel.getcurrentnai
  • tel.settetheredmode
  • tel.gettetheredmode
  • tel.setdataextinfo
  • tel.getdataextinfo
  • tel.getomadmnode
  • tel.setomadmnode
  • tel.wapnotification
  • tel.newsmsnotification
  • tel.voiceprivacynotification
  • tel.newradiodebugdatanotification
  • tel.datastatusnotification
  • tel.dataregistrationnotification
  • tel.phonelockstatusnotification
  • tel.emergencymodenotification
  • tel.networkstatusnotification
  • tel.signalstrengthnotification
  • tel.dataconnectionnotification
  • tel.tetheredmodenotification