TODO 1.4 KB

12345678910111213141516171819202122
  1. == Interface inconsistency ==
  2. - enum_id member of ftdm_event_t is inconsistent. Most of the time is just for OOB events, the only other
  3. type of event as of now is FTDM_EVENT_DTMF and is not using the enum_id member. I think we can get rid
  4. of the FTDM_EVENT_DTMF and create ftdm_dtmf_event_t type instead of reusing ftdm_event_t
  5. then ftdm_event_t would be renamed to ftdm_oob_event_t and the enum_id renamed to type, then ftdm_span_next_event()
  6. will only return OOB events
  7. - Deprecate last_error members.
  8. It requires a lot of discipline to set the last_error string for every failure.
  9. It does not add much value to the user either, most of the errors are criptic and
  10. cannot be shown to end users, we already provide extensive logging for problem
  11. troubleshooting.
  12. - Implement threaded IO.
  13. Currently IO modules only work on-demand, where the user (ie, FreeSWITCH) drives the read/write
  14. of media. If the user stops reading, some functions are not possible
  15. (DTMF detection or Hangup tone detection). It would be useful to implement a FreeTDM mode
  16. where the media is driven by a group of threads that are always reading (and possibly writing)
  17. then when the user does ftdm_channel_read(), the media would be read from the buffers filled
  18. by the media thread and not from the underlying IO device, this gives a chance to FreeTDM to
  19. still perform hangup detection or other media services even if the application is not reading.