[asterisk-dev] Streaming audio to asterisk
Darren Sessions
dmsessions at gmail.com
Tue Jul 15 16:14:17 CDT 2008
Basically, the app I'm writing uses the Asterisk ODBC code to pull in
binary audio data from the database using a custom query, and then I
need to write that audio data to the channel. I've got the database
stuff nailed already along with the core of the application itself,
just getting it to the channel now is what I'm interested in doing.
My inexperience with the asterisk audio code here is going to shine
through; basically, I'm still not 100% sure how to get set all the
frame parameters via the frame struct and then getting that to
ast_write. Like I said, still a bit fuzzy on the asterisk audio code,
but it's slowly starting to make more sense. Most of my reference
material has been looking over the app_swift code.
This is the meat of the code; presented as below, aud_buffer will have
the entire binary audio stored in it when this runs. It's what I need
to do with it after that.
I hope I'm making sense.
Thanks,
- Darren Sessions
obj = ast_odbc_request_obj(odbc_database, 1);
if (obj) {
do {
snprintf(sql, sizeof(sql), "%s", query);
stmt = ast_odbc_prepare_and_execute(obj, generic_prepare, &gps);
if (!stmt) {
ast_log(LOG_WARNING, "SQL execute error!\n[%s]\n\n", sql);
break;
}
res = SQLFetch(stmt);
if (res == SQL_NO_DATA) {
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
break;
} else if ((res != SQL_SUCCESS) && (res !=
SQL_SUCCESS_WITH_INFO)) {
ast_log(LOG_WARNING, "SQL fetch error!\n[%s]\n\n", sql);
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
break;
}
res = SQLGetData(stmt, 1, SQL_BINARY, aud_buffer,
sizeof(aud_buffer), &colsize);
if (res == SQL_SUCCESS || res == SQL_SUCCESS_WITH_INFO) {
<<something goes here>>
}
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
} while (0);
ast_odbc_release_obj(obj);
} else {
ast_log(LOG_WARNING, "Failed to obtain database object for '%s'!
\n", odbc_database);
}
On Jul 15, 2008, at 2:05 PM, Russell Bryant wrote:
> Darren Sessions wrote:
>> Is there a simple code example (C based of course) anywhere of
>> streaming audio to Asterisk from within an app (i.e. not from a
>> file)?
>> I think the way I'm doing it is pretty cumbersome and/or unclean and
>> I'd like to see if there are any other methods or cleaner ways of
>> doing it. Just looking for something basic.
>
> Here are some places to look ...
>
> - Non-file based Music On Hold
> - EAGI
> - app_ices
> - app_jack
>
> Someone may be able to provide more useful advice if you give more
> information on what you're trying to accomplish.
>
> --
> Russell Bryant
> Senior Software Engineer
> Open Source Team Lead
> Digium, Inc.
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> AstriCon 2008 - September 22 - 25 Phoenix, Arizona
> Register Now: http://www.astricon.net
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
More information about the asterisk-dev
mailing list