#include "main.h"
#include "myisdn.h"
-
-#include <mISDN/mISDNcompat.h>
-int __af_isdn = MISDN_AF_ISDN;
#include <mISDN/q931.h>
#undef offsetof
static int mISDN_upqueue(struct lcr_fd *fd, unsigned int what, void *instance, int i);
static int mISDN_timeout(struct lcr_timer *timer, void *instance, int i);
+static int my_mISDNlib_debug(const char *file, int line, const char *func, int level, const char *fmt, va_list va)
+{
+ int ret = 0;
+
+ if (debug_fp > 0)
+ ret = vfprintf(debug_fp, fmt, va);
+ return ret;
+}
+
+static struct mi_ext_fn_s myfn;
+
int mISDN_initialize(void)
{
char filename[256];
+ int ver;
/* try to open raw socket to check kernel */
mISDNsocket = socket(PF_ISDN, SOCK_RAW, ISDN_P_BASE);
}
/* init mlayer3 */
- init_layer3(4); // buffer of 4
+ // set debug printout function
+ myfn.prt_debug = my_mISDNlib_debug;
+
+ ver = init_layer3(4, &myfn); // buffer of 4
/* open debug, if enabled and not only stack debugging */
if (options.deb) {
debug_fp = fopen(filename, "a");
}
- if (options.deb & DEBUG_STACK) {
- SPRINT(filename, "%s/debug_mISDN.log", LOG_DIR);
- mISDN_debug_init(0xfffffeff, filename, filename, filename);
- } else
- mISDN_debug_init(0, NULL, NULL, NULL);
+ if (options.deb & DEBUG_STACK)
+ mISDN_set_debug_level(0xfffffeff);
+ else
+ mISDN_set_debug_level(0);
if (pipe(upqueue_pipe) < 0)
FATAL("Failed to open pipe\n");
{
cleanup_layer3();
- mISDN_debug_close();
-
if (debug_fp)
fclose(debug_fp);
debug_fp = NULL;
chan_trace_header(mISDNport, isdnport, "MESSAGE_BCHANNEL (from remote application)", DIRECTION_NONE);
add_trace("type", NULL, "export request");
end_trace();
- isdnport->p_m_remote_ref = joinremote->j_serial;
+ isdnport->p_m_remote_ref = joinremote->j_remote_ref;
isdnport->p_m_remote_id = joinremote->j_remote_id;
if (mISDNport && i>=0) {
bchannel_event(mISDNport, i, B_EVENT_EXPORTREQUEST);
if ((cont&(~DTMF_TONE_MASK)) == DTMF_TONE_VAL) {
chan_trace_header(p_m_mISDNport, this, "BCHANNEL control", DIRECTION_IN);
add_trace("DTMF", NULL, "%c", cont & DTMF_TONE_MASK);
+ if (!p_m_dtmf)
+ add_trace("info", NULL, "DTMF is disabled");
end_trace();
+ if (!p_m_dtmf)
+ return;
message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_DTMF);
message->param.dtmf = cont & DTMF_TONE_MASK;
PDEBUG(DEBUG_PORT, "PmISDN(%s) PH_CONTROL INDICATION DTMF digit '%c'\n", p_name, message->param.dtmf);