*
*/
#include <switch.h>
+#include <g711.h>
SWITCH_MODULE_LOAD_FUNCTION(mod_esf_load);
SWITCH_MODULE_DEFINITION(mod_esf, mod_esf_load, NULL, NULL);
if (ready == SEND_TYPE_RTP) {
if (read_impl.ianacode != 0) {
if (switch_core_codec_init(&codec,
- "PCMU",
+ "L16",
NULL,
8000,
20,
continue;
}
if (ready == SEND_TYPE_RTP) {
+ short *dbuf;
+ unsigned char *ebuf;
+ uint32_t i;
+ unsigned char encoded_data[4192];
+
+ dbuf = read_frame->data;
+ ebuf = encoded_data;
+
+ for (i = 0; i < read_frame->datalen / sizeof(short); i++) {
+ ebuf[i] = linear_to_ulaw(dbuf[i]);
+ }
+ read_frame->data = encoded_data;
+ read_frame->datalen = read_frame->datalen / 2;
switch_rtp_write_frame(rtp_session, read_frame);
+ read_frame->data = dbuf;
+ read_frame->datalen = read_frame->datalen * 2;
} else {
bytes = read_frame->packetlen;
switch_socket_sendto(socket, audio_addr, 0, read_frame->packet, &bytes);