\r
\r
static switch_status_t on_hangup(switch_core_session_t *session);\r
+static switch_status_t on_destroy(switch_core_session_t *session);\r
\r
\r
static switch_io_routines_t opalfs_io_routines = {\r
/*.on_routing */ FSConnection::on_routing,\r
/*.on_execute */ FSConnection::on_execute,\r
/*.on_hangup */ on_hangup,\r
- /*.on_loopback */ FSConnection::on_loopback,\r
- /*.on_transmit */ FSConnection::on_transmit,\r
- /*.on_soft_execute */ NULL,\r
+ /*.on_exchange_media */ FSConnection::on_exchange_media,\r
+ /*.on_soft_execute */ FSConnection::on_soft_execute,\r
/*.on_consume_media*/ NULL,\r
/*.on_hibernate*/ NULL,\r
/*.on_reset*/ NULL,\r
OpalLocalConnection::OnEstablished();\r
}\r
\r
+PBoolean FSConnection::SendUserInputTone(char tone, unsigned duration)\r
+{\r
+ switch_dtmf_t dtmf = { tone, duration };\r
+\r
+ return (switch_channel_queue_dtmf(m_fsChannel, &dtmf) == SWITCH_STATUS_SUCCESS) ? true : false;\r
+}\r
\r
OpalMediaFormatList FSConnection::GetMediaFormats() const\r
{\r
}\r
\r
\r
-switch_status_t FSConnection::on_loopback()\r
+switch_status_t FSConnection::on_exchange_media()\r
{\r
PTRACE(3, "mod_opal\tLoopback on connection " << *this);\r
return SWITCH_STATUS_SUCCESS;\r
}\r
\r
\r
-switch_status_t FSConnection::on_transmit()\r
+switch_status_t FSConnection::on_soft_execute()\r
{\r
PTRACE(3, "mod_opal\tTransmit on connection " << *this);\r
return SWITCH_STATUS_SUCCESS;\r
virtual OpalMediaStream *CreateMediaStream(const OpalMediaFormat &, unsigned, PBoolean);
virtual PBoolean OnOpenMediaStream(OpalMediaStream & stream);
virtual OpalMediaFormatList GetMediaFormats() const;
+ virtual PBoolean SendUserInputTone(char tone, unsigned duration);
void SetCodecs();
DECLARE_CALLBACK0(on_execute);
//DECLARE_CALLBACK0(on_hangup);
- DECLARE_CALLBACK0(on_loopback);
- DECLARE_CALLBACK0(on_transmit);
+ DECLARE_CALLBACK0(on_exchange_media);
+ DECLARE_CALLBACK0(on_soft_execute);
DECLARE_CALLBACK1(kill_channel, int, sig);
DECLARE_CALLBACK1(send_dtmf, const switch_dtmf_t *, dtmf);