Telephony Stack
This article is a collection of telephony stack definitions relavent to Cell Broadcast support
[edit] definitions from /usr/lib/libisi.so.1.4.0
struct isi_client_t { void *clientptr; //opaque pointer int unk; //unknown }; struct comm_channel_info_t { void *commptrs; //opaque pointer }; struct callbacks { void *func1; //function pointer, unknown prototype void *unk1; void *unk2; void *func2; //function pointer, unknown prototype void *func3; //function pointer, unknown prototype void *func4; //function pointer, unknown prototype }; void isi_client_cancel_timeout(isi_client_t *self); void isi_client_cleanup(isi_client_t *self); void isi_client_run(isi_client_t *self); int isi_client_init(isi_client_t *self, callbacks *callbackptrs, comm_channel_info_t *cinfo, int channel); void isi_client_set_timeout(isi_client_t *self, int timeout); void isi_client_start(isi_client_t *self); void isi_client_stop(isi_client_t *self); void socket_cinfo_init(comm_channel_info_t *cinfo); int isi_client_sendto_resource(isi_client_t *self, void *buffer, char unknown, char resource); int isi_client_process_isi_version_resp(isi_client_t *self, int version); int isi_client_subscribe_indications(isi_client_t *self, char unknown, void *data, signed int size); int isi_client_cancel_indications(isi_client_t *self, char unknown); int sb_id_get(void *buf); int sb_length_get(void *buf); void *msgbuf_init(void *buffer, unsigned int size, int unknown); void *msgbuf_add_ptr(void *buffer, unsigned int size); void *msgbuf_get_ptr(void *buffer, unsigned int size); pn_route_subscribe //definition not identified yet pn_route_unsubscribe //definition not identified yet
[edit] definitions from /usr/sbin/csd
struct CSDResourceContext { int unknown; DBusConnection *connection; DBusPreallocatedSend *send; DBusMessage *message; }; struct CSDObject { //guessed definition, not sure about the size or layout of this one int unknown; char *path; int unknown2; int unknown3; int unknown4; }; struct CSDPlugin { //size may be wrong char *name; void *configure; //function pointer, unknown prototype void *start; //function pointer, unknown prototype void *stop; //function pointer, unknown prototype int unknown1; int unknown2; int unknown3; int unknown4; }; int csd_dbus_error(DBusError *error, const char *format, const char *name); void csd_dbus_free_resource_context(CSDResourceContext *context); unsigned int csd_dbus_register_object(DBusConnection *connection, CSDObject *object); unsigned int csd_dbus_unregister_object(DBusConnection *connection, CSDObject *object); void csd_dbus_save_resource_context(CSDResourceContext *context1, CSDResourceContext *context2) void csd_dbus_send_message(CSDResourceContext *context); DBusConnection *csd_get_dbus_connection(); void csd_service_started(const char **bus); void csd_service_stopped(const char **bus, char *service); csd_dbus_introspectable_interface //a pointer to an unknown data structure // All csd plugins export a function install which looks like this: CSDPlugin *install();
[edit] libsms.so.0 notes
Functions sms_gsm_cb_routing_ntf
, sms_gsm_cb_routing_req
and sms_gsm_cb_routing_resp
may also be of value for Cell Broadcast. Analysis of libsms.so.0
and libcsd-sms.so
may reveal just how high up the stack the Cell Broadcast support goes and how much work is needed to make it work (references exist in libsms.so.0
to strings like "Incoming cell broadcast" so libsms.so.0
at least must be doing something with cell broadcast messages. Unclear what libsms.so.0
is doing with those messages or whether libcsd-sms.so
is doing anything with them (and what has to be done at the higher levels to get working CBSMS support)
- This page was last modified on 21 January 2011, at 10:06.
- This page has been accessed 3,793 times.